Annotation For example/main.tcl

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"