⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc.exp

📁 xmodem.tar.gz Linux X-Modem Up/Down Client Source
💻 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 + -