Convert dd tests to testcmd and replace $obs with an exec redirect.
(Each command.test runs as a separate child process now.)
This commit is contained in:
parent
f906363500
commit
8630292af6
122
tests/dd.test
122
tests/dd.test
@ -6,106 +6,106 @@
|
||||
[ -f testing.sh ] && . testing.sh
|
||||
|
||||
# 'dd' command, stderr prints redirecting to /dev/null
|
||||
opt="2>/dev/null"
|
||||
exec 2>/dev/null
|
||||
|
||||
#testing "name" "command" "result" "infile" "stdin"
|
||||
|
||||
# Test suffixed number parsing; `count` is representative.
|
||||
testing "count=2" "dd if=input count=2 ibs=1 $opt" "hi" "high\n" ""
|
||||
testing "count= 2" "dd if=input 'count= 2' ibs=1 $opt" "hi" "high\n" ""
|
||||
toyonly testing "count=0x2" "dd if=input 'count=0x2' ibs=1 $opt" "hi" \
|
||||
"high\n" ""
|
||||
testing 'posix 2x3x4' "dd if=input count=2x3x4 ibs=1 $opt" \
|
||||
testcmd "count=2" "if=input count=2 ibs=1" "hi" "high\n" ""
|
||||
testcmd "count= 2" "if=input 'count= 2' ibs=1" "hi" "high\n" ""
|
||||
toyonly testcmd "count=0x2" "if=input 'count=0x2' ibs=1" "hi" "high\n" ""
|
||||
testcmd 'posix 2x3x4' "if=input count=2x3x4 ibs=1" \
|
||||
'abcdefghijklmnopqrstuvwx' 'abcdefghijklmnopqrstuvwxyz' ''
|
||||
testing "count=-2" "dd if=input 'count=-2' ibs=1 2>/dev/null || echo errored" "errored\n" "" ""
|
||||
testcmd "count=-2" "if=input 'count=-2' ibs=1 || echo errored" "errored\n" "" ""
|
||||
|
||||
testing "if=(file)" "dd if=input $opt" "I WANT\n" "I WANT\n" ""
|
||||
testing "of=(file)" "dd of=file $opt && cat file" "I WANT\n" "" "I WANT\n"
|
||||
testing "if=file of=file" "dd if=input of=foo $opt && cat foo && rm -f foo" \
|
||||
testcmd "if=(file)" "if=input" "I WANT\n" "I WANT\n" ""
|
||||
testcmd "of=(file)" "of=file && cat file" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "if=file of=file" "if=input of=foo && cat foo && rm -f foo" \
|
||||
"I WANT\n" "I WANT\n" ""
|
||||
testing "if=file | dd of=file" "dd if=input $opt | dd of=foo $opt &&
|
||||
cat foo && rm -f foo" "I WANT\n" "I WANT\n" ""
|
||||
testing "(stdout)" "dd $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "sync,noerror" \
|
||||
"dd if=input of=outFile seek=8860 bs=1M conv=sync,noerror $opt &&
|
||||
testcmd "if=file | dd of=file" "if=input | dd of=foo && cat foo && rm -f foo" \
|
||||
"I WANT\n" "I WANT\n" ""
|
||||
testcmd "(stdout)" '' "I WANT\n" "" "I WANT\n"
|
||||
testcmd "sync,noerror" \
|
||||
"if=input of=outFile seek=8860 bs=1M conv=sync,noerror &&
|
||||
stat -c \"%s\" outFile && rm -f outFile" "9291431936\n" "I WANT\n" ""
|
||||
testing "if=file of=(null)" \
|
||||
"dd if=input of=/dev/null $opt && echo 'yes'" "yes\n" "I WANT\n" ""
|
||||
testing "with if of bs" \
|
||||
"dd if=/dev/zero of=sda.txt bs=512 count=1 $opt &&
|
||||
testcmd "if=file of=(null)" "if=input of=/dev/null && echo 'yes'" "yes\n" \
|
||||
"I WANT\n" ""
|
||||
testcmd "with if of bs" \
|
||||
"if=/dev/zero of=sda.txt bs=512 count=1 &&
|
||||
stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
|
||||
testing "with if of ibs obs" \
|
||||
"dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=1 $opt &&
|
||||
testcmd "with if of ibs obs" \
|
||||
"if=/dev/zero of=sda.txt ibs=512 obs=256 count=1 &&
|
||||
stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" ""
|
||||
testing "with if of ibs obs count" \
|
||||
"dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=3 $opt &&
|
||||
testcmd "with if of ibs obs count" \
|
||||
"if=/dev/zero of=sda.txt ibs=512 obs=256 count=3 &&
|
||||
stat -c '%s' sda.txt && rm -f sda.txt" "1536\n" "" ""
|
||||
|
||||
ln -s input softlink
|
||||
testing "if=softlink" "dd if=softlink $opt" "I WANT\n" "I WANT\n" ""
|
||||
unlink softlink
|
||||
testcmd "if=softlink" "if=softlink" "I WANT\n" "I WANT\n" ""
|
||||
rm -f softlink
|
||||
|
||||
ln -s file softlink
|
||||
testing "if=file of=softlink" "dd if=input of=softlink $opt &&
|
||||
testcmd "if=file of=softlink" "if=input of=softlink &&
|
||||
[ -f file -a -L softlink ] && cat softlink" "I WANT\n" "I WANT\n" ""
|
||||
unlink softlink && rm -f file
|
||||
rm -f softlink file
|
||||
|
||||
testing "if=file of=file (same file)" "dd if=input of=input $opt &&
|
||||
testcmd "if=file of=file (same file)" "if=input of=input &&
|
||||
[ -f input ] && cat input && echo 'yes'" "yes\n" "I WANT\n" ""
|
||||
testing "same file notrunc" \
|
||||
"dd if=input of=input conv=notrunc $opt && cat input" \
|
||||
"I WANT\n" "I WANT\n" ""
|
||||
testcmd "same file notrunc" \
|
||||
"if=input of=input conv=notrunc && cat input" "I WANT\n" "I WANT\n" ""
|
||||
|
||||
testing "with ibs obs bs" "dd ibs=2 obs=5 bs=9 $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "with ibs obs bs if" "dd ibs=2 obs=5 bs=9 if=input $opt" \
|
||||
"I WANT\n" "I WANT\n" ""
|
||||
testcmd "with ibs obs bs" "ibs=2 obs=5 bs=9" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "with ibs obs bs if" "ibs=2 obs=5 bs=9 if=input" "I WANT\n" "I WANT\n"\
|
||||
""
|
||||
|
||||
testing "with ibs obs count" "dd ibs=1 obs=1 count=1 $opt" "I" "" "I WANT\n"
|
||||
testing "with ibs obs count if" "dd ibs=1 obs=1 count=3 if=input $opt" \
|
||||
"I W" "I WANT\n" ""
|
||||
testcmd "with ibs obs count" "ibs=1 obs=1 count=1" "I" "" "I WANT\n"
|
||||
testcmd "with ibs obs count if" "ibs=1 obs=1 count=3 if=input" "I W" "I WANT\n"\
|
||||
""
|
||||
|
||||
testing "with count" "dd count=1 $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "with count if" "dd count=1 if=input $opt" "I WANT\n" "I WANT\n" ""
|
||||
testcmd "with count" "count=1" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "with count if" "count=1 if=input" "I WANT\n" "I WANT\n" ""
|
||||
|
||||
testing "with skip" "dd skip=0 $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "with skip if" "dd skip=0 if=input $opt" "I WANT\n" "I WANT\n" ""
|
||||
testcmd "with skip" "skip=0" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "with skip if" "skip=0 if=input" "I WANT\n" "I WANT\n" ""
|
||||
|
||||
testing "with seek" "dd seek=0 $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "with seek if" "dd seek=0 if=input $opt" "I WANT\n" "I WANT\n" ""
|
||||
testcmd "with seek" "seek=0" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "with seek if" "seek=0 if=input" "I WANT\n" "I WANT\n" ""
|
||||
|
||||
# Testing only 'notrunc', 'noerror', 'fsync', 'sync'
|
||||
|
||||
testing "conv=notrunc" "dd conv=notrunc $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "conv=notrunc with IF" "dd conv=notrunc if=input $opt" "I WANT\n" \
|
||||
testcmd "conv=notrunc" "conv=notrunc" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "conv=notrunc with IF" "conv=notrunc if=input" "I WANT\n" \
|
||||
"I WANT\n" ""
|
||||
|
||||
testing "conv=noerror" "dd conv=noerror $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "conv=noerror with IF" "dd conv=noerror if=input $opt" "I WANT\n" \
|
||||
testcmd "conv=noerror" "conv=noerror" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "conv=noerror with IF" "conv=noerror if=input" "I WANT\n" \
|
||||
"I WANT\n" ""
|
||||
|
||||
testing "conv=fsync" "dd conv=fsync $opt" "I WANT\n" "" "I WANT\n"
|
||||
testing "conv=fsync with IF" "dd conv=fsync if=input $opt" "I WANT\n" \
|
||||
testcmd "conv=fsync" "conv=fsync" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "conv=fsync with IF" "conv=fsync if=input" "I WANT\n" \
|
||||
"I WANT\n" ""
|
||||
|
||||
testing "conv=sync" "dd conv=sync $opt | head -n 1" "I WANT\n" "" "I WANT\n"
|
||||
testing "conv=sync with IF" "dd conv=sync if=input $opt | head -n 1" "I WANT\n" \
|
||||
testcmd "conv=sync" "conv=sync | head -n 1" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "conv=sync with IF" "conv=sync if=input | head -n 1" "I WANT\n" \
|
||||
"I WANT\n" ""
|
||||
|
||||
# status=noxfer|none
|
||||
testing "status=noxfer" "dd if=input status=noxfer ibs=1 2>&1" "input\n6+0 records in\n0+1 records out\n" "input\n" ""
|
||||
testing "status=none" "dd if=input status=none ibs=1 2>&1" "input\n" "input\n" ""
|
||||
testcmd "status=noxfer" "if=input status=noxfer ibs=1 2>&1" \
|
||||
"input\n6+0 records in\n0+1 records out\n" "input\n" ""
|
||||
testcmd "status=none" "if=input status=none ibs=1 2>&1" \
|
||||
"input\n" "input\n" ""
|
||||
|
||||
testing "seek stdout" "yes 2> /dev/null | dd bs=8 seek=2 count=1 > out 2> /dev/null && xxd -p out" \
|
||||
testing "seek stdout" "yes | dd bs=8 seek=2 count=1 > out && xxd -p out" \
|
||||
"00000000000000000000000000000000790a790a790a790a\n" "" ""
|
||||
|
||||
# Duplicated options are fine.
|
||||
testing "conv=sync,sync" "dd conv=sync,sync $opt | head -n 1" "I WANT\n" "" "I WANT\n"
|
||||
testcmd "conv=sync,sync" "conv=sync,sync | head -n 1" "I WANT\n" "" "I WANT\n"
|
||||
|
||||
# _bytes options
|
||||
testing "iflag=count_bytes" \
|
||||
"dd if=input count=2 ibs=4096 iflag=count_bytes $opt" "hi" "high" ""
|
||||
testing "iflag=skip_bytes" \
|
||||
"dd if=input skip=2 ibs=4096 iflag=skip_bytes $opt" "gh" "high" ""
|
||||
testing "oflag=seek_bytes" \
|
||||
"dd if=input of=output seek=2 obs=4096 oflag=seek_bytes status=none && \
|
||||
testcmd "iflag=count_bytes" "if=input count=2 ibs=4096 iflag=count_bytes" "hi"\
|
||||
"high" ""
|
||||
testcmd "iflag=skip_bytes" "if=input skip=2 ibs=4096 iflag=skip_bytes" "gh" \
|
||||
"high" ""
|
||||
testcmd "oflag=seek_bytes" \
|
||||
"if=input of=output seek=2 obs=4096 oflag=seek_bytes status=none && \
|
||||
xxd -p output" "000030313233\n" "0123" ""
|
||||
|
Loading…
Reference in New Issue
Block a user