File: cat.test

package info (click to toggle)
tcllib 2.0%2Bdfsg-4
  • links: PTS
  • area: main
  • in suites: forky, trixie
  • size: 83,572 kB
  • sloc: tcl: 306,798; ansic: 14,272; sh: 3,035; xml: 1,766; yacc: 1,157; pascal: 881; makefile: 124; perl: 84; f90: 84; python: 33; ruby: 13; php: 11
file content (69 lines) | stat: -rw-r--r-- 1,667 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#- - -- --- ----- -------- ------------- ---------------------
# cat.test -*- tcl -*-
# (C) 2019 Andreas Kupries. BSD licensed.
#- - -- --- ----- -------- ------------- ---------------------

source [file join \
	[file dirname [file dirname [file join [pwd] [info script]]]] \
	devtools testutilities.tcl]

testsNeedTcl     8.5
testsNeedTcltest 2.0
testsNeed        TclOO 1

support {
    use virtchannel_core/core.tcl   tcl::chan::core
    use virtchannel_core/events.tcl tcl::chan::events
    useLocal string.tcl tcl::chan::string
}
testing {
    useLocal cat.tcl tcl::chan::cat
}

#- - -- --- ----- -------- ------------- ---------------------
## No wrong#args, allowed to zero and up

#- - -- --- ----- -------- ------------- ---------------------

test tcl-chan-cat-2.0 {tell, nothing} -setup {
    set c [tcl::chan::cat]
} -body {
    tell $c
} -cleanup {
    close $c
    unset c
} -result -1

test tcl-chan-cat-2.1 {ticket 1975182bdd - file events} -setup {
    # setup a cat'enated channel
    set fa [tcl::chan::string "ABCDE..XYZ"]
    set fb [tcl::chan::string "0123456789"]
    set ch [tcl::chan::cat $fa $fb]
} -body {
    set r {}
    chan event $ch readable {
        if { [eof $ch] } {
            set done .
        } else {
            lappend r [read $ch 4]
        }
    }    
    vwait done
    set r
} -cleanup {
    close $ch
    unset ch fa fb r
} -result {ABCD E..X YZ01 2345 6789 {}}

#- - -- --- ----- -------- ------------- ---------------------
# Explicit cleanup of loaded support classes.

rename tcl::chan::events {}
rename tcl::chan::core   {}
testsuiteCleanup
return

# Local Variables:
#  mode: tcl
#  indent-tabs-mode: nil
# End: