📄 crc.exp
字号:
load_lib "lrzsz.exp"if $tracelevel then { strace $tracelevel}# ZMCRC test. Belongs to filemanagment ...# Part 1: file exists, same length, crc identical. sender initset name crc-check-sender-equal-crcexec mkdir $testdir/$nameexec cp -p $objdir/../src/lrz $testdir/$name/lrz# this deals with different touch -t conventions. (POSIX/pre-posix-HPUX in this case)catch "exec sh -c \"touch -t 020304051980.06 $testdir/$name/lrz || touch -t 198002030405.06 $testdir/$name/lrz\"" dummycatch "exec ls -l $testdir/$name/lrz 2>/dev/null" timestampset fails [runthem_internal $name "$objdir/../src/lsz -B 10240" "-q --crc-check" \ $objdir/../src/lrz "-q" \ "$objdir/../src/lrz" "" dummy]if {$fails == 0} { set res [catch "exec cmp $objdir/../src/lrz $testdir/$name/lrz" dummy] if {$res == 0} { catch "exec ls -l $testdir/$name/lrz 2>/dev/null" dummy if {0!=[string compare "$dummy" "$timestamp"]} { send_log "timestamp changed\n" send_log "1. $timestamp\n" send_log "2. $dummy\n" incr fails } else { send_log "timestamp ok\n" send_log "1. $timestamp\n" send_log "2. $dummy\n" } } else { send_log "files not identical: cmp told\n" send_log "$dummy\n" incr fails }} else { incr fails}if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummy timestamp# Part 2: file exists, same length, crc identical. sender init. no mmap# (ZCRC code on sender side is different if using mmap)set name crc-check-sender-equal-crc-no-mmapexec mkdir $testdir/$nameexec cp -p $objdir/../src/lrz $testdir/$name/lrzcatch "exec sh -c \"touch -t 020304051980.06 $testdir/$name/lrz || touch -t 198002030405.06 $testdir/$name/lrz\"" dummycatch "exec ls -l $testdir/$name/lrz 2>/dev/null" timestampset fails [runthem_internal $name "/tmp/out $objdir/../src/lsz -B 10240" "-q --crc-check" \ $objdir/../src/lrz "-q" \ "$objdir/../src/lrz" "" dummy]if {$fails == 0} { set res [catch "exec cmp $objdir/../src/lrz $testdir/$name/lrz" dummy] if {$res == 0} { catch "exec ls -l $testdir/$name/lrz 2>/dev/null" dummy if {0!=[string compare "$dummy" "$timestamp"]} { send_log "timestamp changed\n" send_log "1. $timestamp\n" send_log "2. $dummy\n" incr fails } else { send_log "timestamp ok\n" send_log "1. $timestamp\n" send_log "2. $dummy\n" } } else { send_log "files not identical: cmp told\n" send_log "$dummy\n" incr fails }} else { incr fails}if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummy timestamp# Part 3: file exists, same length, crc identical. receiver initset name crc-check-receiver-equal-crcexec mkdir $testdir/$nameexec cp -p $objdir/../src/lrz $testdir/$name/lrzcatch "exec sh -c \"touch -t 020304051980.06 $testdir/$name/lrz || touch -t 198002030405.06 $testdir/$name/lrz\"" dummycatch "exec ls -l $testdir/$name/lrz 2>/dev/null" timestampset fails [runthem_internal $name "$objdir/../src/lsz" "-q" \ $objdir/../src/lrz "-q --crc-check" \ "$objdir/../src/lrz" "" dummy]if {$fails == 0} { set res [catch "exec cmp $objdir/../src/lrz $testdir/$name/lrz" dummy] if {$res == 0} { catch "exec ls -l $testdir/$name/lrz 2>/dev/null" dummy if {0!=[string compare "$dummy" "$timestamp"]} { send_log "timestamp changed\n" send_log "1. $timestamp\n" send_log "2. $dummy\n" incr fails } else { send_log "timestamp ok\n" send_log "1. $timestamp\n" send_log "2. $dummy\n" } } else { send_log "files not identical: cmp told\n" send_log "$dummy\n" incr fails }} else { incr fails}if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummy timestamp# from now on ignore who initiates the crc-check. We know that both sides # can init it, from Part 1 & 2.exec logger 4# Part 4: file exists, same length, crc differs. set name crc-check-diff-crcexec mkdir $testdir/$nameexec cp $objdir/../src/lrz $testdir/$name/lrzcatch "exec dd if=$srcdir/../src/lrz.c of=$testdir/$name/lrz conv=notrunc bs=512 count=1"set fails [runthem_internal $name "$objdir/../src/lsz" "-q --crc-check" \ "$objdir/../src/lrz" "-q" \ "$objdir/../src/lrz" "rmdir,compare,delete" dummy]if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummy# Part 5: file exists, different length, same crc.set name crc-check-diff-lenexec mkdir $testdir/$namecatch "exec dd if=$srcdir/../src/lrz.c of=$testdir/$name/lrz.c conv=notrunc bs=256 count=81"set fails [runthem_internal $name "$objdir/../src/lsz" "-q --crc-check" \ $objdir/../src/lrz "-q" \ "$srcdir/../src/lrz.c" "rmdir,compare,delete" dummy]if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummyexec logger 6# Part 6: file exists, different length, diff crc.set name crc-check-diff-len-crcexec mkdir $testdir/$namecatch "exec dd if=$srcdir/../src/lrz.c of=$testdir/$name/lrz.c conv=notrunc bs=256 count=81"catch "exec dd if=$objdir/../src/lrz of=$testdir/$name/lrz.c conv=notrunc bs=512 count=1"set fails [runthem_internal $name "$objdir/../src/lsz" "-q --crc-check" \ $objdir/../src/lrz "-q" \ "$srcdir/../src/lrz.c" "rmdir,compare,delete" dummy]if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummyexec logger 7# Part 7: file exists, different length, same crc. try resumeset name crc-check-diff-len-resume-senderexec mkdir $testdir/$namecatch "exec dd if=$srcdir/../src/lrz.c of=$testdir/$name/lrz.c conv=notrunc bs=256 count=81"set fails [runthem_internal $name "$objdir/../src/lsz" "-q -r --crc-check" \ $objdir/../src/lrz "-q" \ "$srcdir/../src/lrz.c" "rmdir,compare,delete" dummy]if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummyexec logger part 8# Part 8: file exists, different length, same crc. try resume (receiver)set name crc-check-diff-len-resume-receiverexec mkdir $testdir/$namecatch "exec dd if=$srcdir/../src/lrz.c of=$testdir/$name/lrz.c conv=notrunc bs=256 count=81"set fails [runthem_internal $name "$objdir/../src/lsz" "-q --crc-check" \ $objdir/../src/lrz "-q -r" \ "$srcdir/../src/lrz.c" "rmdir,compare,delete" dummy]if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummyexec logger part 9# Part 9: file exists, different length + crc. try resume (sender)set name crc-check-diff-len-resume-receiverexec mkdir $testdir/$namecatch "exec dd if=$srcdir/../src/lrz.c of=$testdir/$name/lrz.c conv=notrunc bs=256 count=81"catch "exec dd if=$objdir/../src/lrz of=$testdir/$name/lrz.c conv=notrunc bs=512 count=1"set fails [runthem_internal $name "$objdir/../src/lsz" "-q --crc-check -r" \ $objdir/../src/lrz "-q" \ "$srcdir/../src/lrz.c" "rmdir,compare,delete" dummy]if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummyexec logger part 10# Part 9: file exists, different crc, same length. try resume (sender)set name crc-check-diff-crc-resume-receiverexec mkdir $testdir/$namecatch "exec dd if=$srcdir/../src/lrz.c of=$testdir/$name/lrz.c conv=notrunc"catch "exec dd if=$objdir/../src/lrz of=$testdir/$name/lrz.c conv=notrunc bs=512 count=1"set fails [runthem_internal $name "$objdir/../src/lsz" "-q --crc-check -r" \ $objdir/../src/lrz "-q" \ "$srcdir/../src/lrz.c" "rmdir,compare,delete" dummy]if {$fails == 0} { pass "$name" exec rm -rf $testdir/$name} else { fail "$name"}unset name fails dummy
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -