Annotation For example/main.tcl

Origin for each line in example/main.tcl from check-in 7d74392642:

7d74392642 2019-09-13        rkeene: set file "//xvfs:/example/foo"
7d74392642 2019-09-13        rkeene: 
7d74392642 2019-09-13        rkeene: set fd [open $file]
38bed7cee0 2019-09-13        rkeene: seek $fd 0 end
38bed7cee0 2019-09-13        rkeene: seek $fd -1 current
38bed7cee0 2019-09-13        rkeene: set check [read $fd 1]
38bed7cee0 2019-09-13        rkeene: if {$check != "\n"} {
38bed7cee0 2019-09-13        rkeene: 	error "EXPECTED: (new line); GOT: [binary encode hex $check]"
7d74392642 2019-09-13        rkeene: }
7d74392642 2019-09-13        rkeene: close $fd
7d74392642 2019-09-13        rkeene: 
7d74392642 2019-09-13        rkeene: set fd1 [open $file]
7d74392642 2019-09-13        rkeene: set fd2 [open $file]
7d74392642 2019-09-13        rkeene: set data1 [read $fd1]
7d74392642 2019-09-13        rkeene: close $fd1
7d74392642 2019-09-13        rkeene: set data2 [read $fd2]
7d74392642 2019-09-13        rkeene: close $fd2
7d74392642 2019-09-13        rkeene: if {$data1 != $data2} {
7d74392642 2019-09-13        rkeene: 	error "EXPECTED match, differs"
7d74392642 2019-09-13        rkeene: }
7d74392642 2019-09-13        rkeene: 
7d74392642 2019-09-13        rkeene: set fd [open $file]
7d74392642 2019-09-13        rkeene: seek $fd 0 end
7d74392642 2019-09-13        rkeene: set size [tell $fd]
7d74392642 2019-09-13        rkeene: close $fd
7d74392642 2019-09-13        rkeene: set fd [open $file]
7d74392642 2019-09-13        rkeene: set done false
7d74392642 2019-09-13        rkeene: set calls 0
7d74392642 2019-09-13        rkeene: set output ""
7d74392642 2019-09-13        rkeene: fileevent $fd readable [list apply {{fd} {
7d74392642 2019-09-13        rkeene: 	set pos [tell $fd]
7d74392642 2019-09-13        rkeene: 	set x [read $fd 1]
7d74392642 2019-09-13        rkeene: 	if {[string length $x] == 0} {
7d74392642 2019-09-13        rkeene: 		set ::done true
7d74392642 2019-09-13        rkeene: 		fileevent $fd readable ""
7d74392642 2019-09-13        rkeene: 	}
7d74392642 2019-09-13        rkeene: 
7d74392642 2019-09-13        rkeene: 	lappend ::output $pos
7d74392642 2019-09-13        rkeene: 	incr ::calls
7d74392642 2019-09-13        rkeene: }} $fd]
7d74392642 2019-09-13        rkeene: vwait done
7d74392642 2019-09-13        rkeene: if {$calls != ($size + 1)} {
7d74392642 2019-09-13        rkeene: 	error "EXPECTED [expr {$size + 1}], got $calls"
7d74392642 2019-09-13        rkeene: }
7d74392642 2019-09-13        rkeene: if {[lsort -integer $output] != $output} {
7d74392642 2019-09-13        rkeene: 	error "EXPECTED [lsort -integer $output], GOT $output"
38bed7cee0 2019-09-13        rkeene: }
38bed7cee0 2019-09-13        rkeene: 
38bed7cee0 2019-09-13        rkeene: puts "ALL TESTS PASSED"