Lines of
example/main.tcl
from check-in fa71466879
that are changed by the sequence of edits moving toward
check-in ad7092b843:
fa71466879 2019-09-14 1: set dir "//xvfs:/example"
fa71466879 2019-09-14 2: set dirNative [file join [pwd] example]
fa71466879 2019-09-14 3: #set dir $dirNative
fa71466879 2019-09-14 4: set file "${dir}/foo"
fa71466879 2019-09-14 5:
fa71466879 2019-09-14 6: set fd [open $file]
fa71466879 2019-09-14 7: seek $fd 0 end
fa71466879 2019-09-14 8: seek $fd -1 current
fa71466879 2019-09-14 9: set check [read $fd 1]
fa71466879 2019-09-14 10: if {$check != "\n"} {
fa71466879 2019-09-14 11: error "EXPECTED: (new line); GOT: [binary encode hex $check]"
fa71466879 2019-09-14 12: }
fa71466879 2019-09-14 13: close $fd
fa71466879 2019-09-14 14:
fa71466879 2019-09-14 15: set fd1 [open $file]
fa71466879 2019-09-14 16: set fd2 [open $file]
fa71466879 2019-09-14 17: set data1 [read $fd1]
fa71466879 2019-09-14 18: close $fd1
fa71466879 2019-09-14 19: set data2 [read $fd2]
fa71466879 2019-09-14 20: close $fd2
fa71466879 2019-09-14 21: if {$data1 != $data2} {
fa71466879 2019-09-14 22: error "EXPECTED match, differs"
fa71466879 2019-09-14 23: }
fa71466879 2019-09-14 24:
fa71466879 2019-09-14 25: set fd [open $file]
fa71466879 2019-09-14 26: seek $fd 0 end
fa71466879 2019-09-14 27: set size [tell $fd]
fa71466879 2019-09-14 28: close $fd
fa71466879 2019-09-14 29: set fd [open $file]
fa71466879 2019-09-14 30: set done false
fa71466879 2019-09-14 31: set calls 0
fa71466879 2019-09-14 32: set output ""
fa71466879 2019-09-14 33: fileevent $fd readable [list apply {{fd} {
fa71466879 2019-09-14 34: set pos [tell $fd]
fa71466879 2019-09-14 35: set x [read $fd 1]
fa71466879 2019-09-14 36: if {[string length $x] == 0} {
fa71466879 2019-09-14 37: set ::done true
fa71466879 2019-09-14 38: fileevent $fd readable ""
fa71466879 2019-09-14 39: }
fa71466879 2019-09-14 40:
fa71466879 2019-09-14 41: lappend ::output $pos
fa71466879 2019-09-14 42: incr ::calls
fa71466879 2019-09-14 43: }} $fd]
fa71466879 2019-09-14 44: vwait done
fa71466879 2019-09-14 45: if {$calls != ($size + 1)} {
fa71466879 2019-09-14 46: error "EXPECTED [expr {$size + 1}], got $calls"
fa71466879 2019-09-14 47: }
fa71466879 2019-09-14 48: if {[lsort -integer $output] != $output} {
fa71466879 2019-09-14 49: error "EXPECTED [lsort -integer $output], GOT $output"
fa71466879 2019-09-14 50: }
fa71466879 2019-09-14 51: close $fd
fa71466879 2019-09-14 52: update idle
fa71466879 2019-09-14 53:
54:
55: proc glob_verify {args} {
fa71466879 2019-09-14 56: set rv [glob -nocomplain -directory $::dir {*}$args]
fa71466879 2019-09-14 57: set verify [glob -nocomplain -directory $::dirNative {*}$args]
58:
59: if {[llength $rv] != [llength $verify]} {
60: error "VERIFY FAILED: glob ... $args ($rv versus $verify)"
61: }
62:
63: return $rv
64: }
65:
fa71466879 2019-09-14 66: set check [glob_verify *]
fa71466879 2019-09-14 67: if {[llength $check] < 2} {
fa71466879 2019-09-14 68: error "EXPECTED >=2, GOT [llength $check] ($check)"
fa71466879 2019-09-14 69: }
fa71466879 2019-09-14 70:
fa71466879 2019-09-14 71: set check [glob_verify f*]
fa71466879 2019-09-14 72: if {[llength $check] != 1} {
fa71466879 2019-09-14 73: error "EXPECTED 1, GOT [llength $check] ($check)"
fa71466879 2019-09-14 74: }
fa71466879 2019-09-14 75:
fa71466879 2019-09-14 76: set check [glob_verify ./f*]
fa71466879 2019-09-14 77: if {[llength $check] != 1} {
fa71466879 2019-09-14 78: error "EXPECTED 1, GOT [llength $check] ($check)"
fa71466879 2019-09-14 79: }
fa71466879 2019-09-14 80:
fa71466879 2019-09-14 81: set check [glob_verify -type f ./f*]
fa71466879 2019-09-14 82: if {[llength $check] != 1} {
fa71466879 2019-09-14 83: error "EXPECTED 1, GOT [llength $check] ($check)"
fa71466879 2019-09-14 84: }
fa71466879 2019-09-14 85:
fa71466879 2019-09-14 86: set check [glob_verify -type d ./f*]
fa71466879 2019-09-14 87: if {[llength $check] != 0} {
fa71466879 2019-09-14 88: error "EXPECTED 0, GOT [llength $check] ($check)"
fa71466879 2019-09-14 89: }
fa71466879 2019-09-14 90:
fa71466879 2019-09-14 91: set check [glob_verify x*]
fa71466879 2019-09-14 92: if {[llength $check] != 0} {
fa71466879 2019-09-14 93: error "EXPECTED 0, GOT [llength $check] ($check)"
fa71466879 2019-09-14 94: }
fa71466879 2019-09-14 95:
fa71466879 2019-09-14 96: set check [glob_verify lib/*]
fa71466879 2019-09-14 97: if {[llength $check] != 1} {
fa71466879 2019-09-14 98: error "EXPECTED 1, GOT [llength $check] ($check)"
fa71466879 2019-09-14 99: }
fa71466879 2019-09-14 100:
fa71466879 2019-09-14 101: set check [lindex $check 0]
fa71466879 2019-09-14 102: if {![string match $dir/* $check]} {
fa71466879 2019-09-14 103: error "EXPECTED \"$dir/*\", GOT $check"
fa71466879 2019-09-14 104: }
fa71466879 2019-09-14 105:
fa71466879 2019-09-14 106: set check [glob_verify -type d *]
fa71466879 2019-09-14 107: if {[llength $check] != 1} {
fa71466879 2019-09-14 108: error "EXPECTED 1, GOT [llength $check] ($check)"
fa71466879 2019-09-14 109: }
fa71466879 2019-09-14 110:
fa71466879 2019-09-14 111: set check [glob_verify -type d lib/*]
fa71466879 2019-09-14 112: if {[llength $check] != 1} {
fa71466879 2019-09-14 113: error "EXPECTED 1, GOT [llength $check] ($check)"
fa71466879 2019-09-14 114: }
fa71466879 2019-09-14 115:
fa71466879 2019-09-14 116: cd $dir
fa71466879 2019-09-14 117: cd lib
fa71466879 2019-09-14 118: glob *
fa71466879 2019-09-14 119:
fa71466879 2019-09-14 120:
fa71466879 2019-09-14 121: # XXX:TODO:CURRENTLY BROKEN
fa71466879 2019-09-14 122: if {0} {
fa71466879 2019-09-14 123: lappend auto_path ${dir}/lib
fa71466879 2019-09-14 124: package require hello
125: }
126:
127: puts "ALL TESTS PASSED"