7 set objdir [absolute $objdir]
8 set srcdir [absolute $srcdir]
10 set srcdir2 [exec sh -c "cd $srcdir/.. && pwd"]
11 set objdir2 [exec sh -c "cd $objdir/.. && pwd"]
13 set SZBUFSIZE "-B 524288"
14 set RZBUFSIZE "-B 524288"
16 #puts "LANG=$env(LANG)"
18 foreach i [glob -nocomplain $srcdir/../src/l?z.c] {
19 set z_test_files "$z_test_files $i"
20 set x_test_files "$x_test_files $i"
22 foreach i [glob -nocomplain $objdir/../src/l?z] {
23 set z_test_files "$z_test_files $i"
24 set y_test_files "$y_test_files $i"
26 foreach i [glob -nocomplain /pub/gnu/emacs-*.tar.gz] {
27 set z8_test_files "$z8_test_files $i"
29 #puts "objdir=$objdir\n"
30 #puts "srcdir=$srcdir\n"
31 #puts "x_test_files=$x_test_files\n"
32 #puts "y_test_files=$y_test_files\n"
33 #puts "z_test_files=$z_test_files\n"
34 #puts "z8_test_files=$z8_test_files\n"
37 set TMPDIR [getenv TMPDIR]
39 if [string compare "x$TMPDIR" "x"] then {
45 set testdir "$MYTEMP/test.lrzsz"
48 exec sh -c "mkfifo $testdir/pipe || mknod $testdir/pipe p"
50 proc runthem_internal { name sz szopts rz rzopts files flags up} {
57 if {[string match "*mkdir*" $flags] == 1} {
58 exec mkdir $testdir/$name
62 catch "exec sh -c \"($sz $szopts $files) <$testdir/pipe | \
63 (cd $testdir/$name ; exec $rz $rzopts >>../pipe)\"" dummy
68 if {[string match "*compare*" $flags] == 1} {
69 set res [catch "exec cmp $i $testdir/$name/$bn" dummy]
72 if {[string match "*delete*" $flags] == 1} {
73 catch "file delete $testdir/$name/$bn" dummy
76 send_log "$i: not identical: cmp told\n"
81 if {[string match "*delete*" $flags] == 1} {
82 catch "file delete $testdir/$name/$bn" dummy
86 if {[string match "*rmdir*" $flags] == 1} {
87 set res [catch "exec rmdir $testdir/$name" dummy]
89 send_log "rmdir failed: $dummy\n"
93 if [info exists "fail_is_ok"] {
104 # own test function for xmodem: xmodem can't transfer file names
105 proc runxmodem { name sz szopts rz rzopts files } {
110 verbose "Testing $name" 1
111 exec mkdir $testdir/$name
115 set bn [file tail $i]
116 set output [catch "set done [exec sh -c "($sz $szopts --xmodem $i 2>/dev/null) \
118 (cd $testdir/$name ; exec $rz $rzopts --xmodem $bn >>../pipe 2>/dev/null)"]]"]
119 set res [catch "exec cmp $i $testdir/$name/$bn" dummy]
121 catch "file delete $testdir/$name/$bn" dummy
123 send_log "$i: not identical: cmp told\n"
128 set res [catch "exec rmdir $testdir/$name" dummy]
130 send_log "rmdir: $dummy\n"
141 proc runthem { name sz szopts rz rzopts files } {
142 verbose "Testing $name" 1
143 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \
144 "$files" "mkdir,compare,delete,rmdir" dummy]
152 proc runabuse { name sz szopts rz rzopts files } {
157 verbose "Testing $name" 1
158 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \
159 "$files" "mkdir" output]
160 if {$fails == 1 && [string match "*ZRINIT*" $output]} {
163 if {$fails == 1 && [string match "*Broken pipe*" $output]} {
166 if {$fails == 1 && [string match "*caught signal*" $output]} {
169 if {$fails == 1 && [string match "*exited abnormally*" $output]} {
173 exec rm -rf "$testdir/$name"
182 proc runthem0 { name sz szopts rz rzopts files } {
183 verbose "Testing $name (write to /dev/null)" 1
184 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \
185 "$files" "mkdir,rmdir" dummy]
193 proc runappend { name sz szopts rz rzopts file} {
195 verbose "Testing $name" 1
196 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \
197 "$file $file" "mkdir" dummy]
199 set compare "$testdir/$name/compare"
200 set bn [file tail $file]
202 exec cp $file $compare
203 exec cat $file >>$compare
205 set res [catch "exec cmp $testdir/$name/$bn $compare" dummy]
209 catch "file delete $testdir/$name/$bn" dummy
210 catch "file delete $compare" dummy
214 set res [catch "exec rmdir $testdir/$name" dummy]
228 proc runrename { name sz szopts rz rzopts files} {
230 verbose "Testing $name" 1
231 exec mkdir $testdir/$name
233 set bn [file tail $i]
234 exec touch "$testdir/$name/$bn"
235 exec echo "1234" ">$testdir/$name/$bn.0"
237 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \
241 set bn [file tail $i]
242 set f "$testdir/$name/$bn"
243 if {[file size $f] != 0} {
245 send_log "$f: size !=0\n"
247 set s [file size $f.0]
248 if {$s == 0 || $s>5} {
250 send_log "$f: size !=5\n"
253 set res [catch "exec cmp $i $compare" dummy]
256 send_log "$f: compare failed\n"
258 catch "file delete $f" dummy
259 catch "file delete $f.0" dummy
260 catch "file delete $f.1" dummy
267 set res [catch "exec rmdir $testdir/$name" dummy]
280 proc runresume { name sz szopts rz rzopts files} {
283 verbose "Testing $name" 1
284 exec mkdir $testdir/$name
285 set trash $srcdir/../src/Makefile.in
287 set bn [file tail $i]
288 catch "exec dd if=$trash of=$testdir/$name/$bn bs=256 count=5" dummy
291 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \
295 set bn [file tail $i]
296 set f "$testdir/$name/$bn"
297 set res [catch "exec cmp $i $f" dummy]
299 send_log "receiver did not resume but file is OK\n"
300 puts "receiver did not resume but file is OK - error, but not critical"
303 catch "exec dd if=$i of=$f.1 bs=256 count=5" dummy
304 catch "exec dd if=$f bs=256 skip=5 >>$f.1" dummy
305 set res [catch "exec cmp $i $f.1" dummy]
307 catch "file delete $f" dummy
308 catch "file delete $f.1" dummy
310 send_log "sender resumed, but files differ. This is really bad\n"
311 puts "sender resumed, but files differ. This is really bad"
318 set res [catch "exec rmdir $testdir/$name" dummy]
332 proc runprotect { name sz szopts rz rzopts files} {
334 verbose "Testing $name" 1
335 exec mkdir $testdir/$name
337 set bn [file tail $i]
338 exec touch "$testdir/$name/$bn"
340 set fails [runthem_internal "$name" "$sz" "$szopts" "$rz" "$rzopts" \
343 set bn [file tail $i]
344 set f "$testdir/$name/$bn"
345 if {[file size $f] != 0} {
347 send_log "$f: size !=0 - overwritten, nit protected\n"
349 catch "file delete $f" dummy
353 set res [catch "exec rmdir $testdir/$name" dummy]