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"