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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
# -------------------------------------------------------------------------
# memchan.test -*- tcl -*-
# (C) 2017 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
}
testing {
useLocal memchan.tcl tcl::chan::memchan
}
# -------------------------------------------------------------------------
test tcl-chan-memchan-1.0 {constructor wrong\#args} -body {
tcl::chan::memchan X
} -returnCodes error \
-result {wrong # args: should be "tcl::chan::memchan"}
# -------------------------------------------------------------------------
test tcl-chan-memchan-2.0 {tell, initial, empty} -setup {
set c [tcl::chan::memchan]
} -body {
tell $c
} -cleanup {
close $c
unset c
} -result 0
test tcl-chan-memchan-2.1 {seek from start, expand, tell} -setup {
set c [tcl::chan::memchan]
} -body {
seek $c 10
tell $c
} -cleanup {
close $c
unset c
} -result 10
test tcl-chan-memchan-2.2 {seek from end, eof, empty, tell} -setup {
set c [tcl::chan::memchan]
} -body {
seek $c 0 end
tell $c
} -cleanup {
close $c
unset c
} -result 0
test tcl-chan-memchan-2.3 {seek from end, eof, non-empty, tell} -setup {
set c [tcl::chan::memchan]
chan configure $c -translation lf
puts $c Hello
} -body {
seek $c 0 end
tell $c
} -cleanup {
close $c
unset c
} -result 6
test tcl-chan-memchan-2.4 {seek from end, non-eof, non-empty, tell} -setup {
set c [tcl::chan::memchan]
chan configure $c -translation lf
puts $c Hello
} -body {
seek $c -6 end
tell $c
} -cleanup {
close $c
unset c
} -result 0
# -------------------------------------------------------------------------
# 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:
|