Divya Kothari | a0f56be | 2014-06-26 07:25:20 -0500 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | # Copyright 2013 Robin Mittal <robinmittal.it@gmail.com> |
| 4 | # Copyright 2013 Divya Kothari <divya.s.kothari@gmail.com> |
| 5 | |
| 6 | [ -f testing.sh ] && . testing.sh |
| 7 | |
| 8 | # 'dd' command, stderr prints redirecting to /dev/null |
| 9 | opt="2>/dev/null" |
| 10 | |
| 11 | #testing "name" "command" "result" "infile" "stdin" |
| 12 | |
| 13 | testing "dd if=(file)" "dd if=input $opt" "I WANT\n" "I WANT\n" "" |
| 14 | testing "dd of=(file)" "dd of=file $opt && cat file" "I WANT\n" "" "I WANT\n" |
| 15 | testing "dd if=file of=file" "dd if=input of=foo $opt && cat foo && rm -f foo" \ |
| 16 | "I WANT\n" "I WANT\n" "" |
| 17 | testing "dd if=file | dd of=file" "dd if=input $opt | dd of=foo $opt && |
| 18 | cat foo && rm -f foo" "I WANT\n" "I WANT\n" "" |
| 19 | testing "dd (stdout)" "dd $opt" "I WANT\n" "" "I WANT\n" |
| 20 | testing "dd sync,noerror" \ |
| 21 | "dd if=input of=outFile seek=8860 bs=1M conv=sync,noerror $opt && |
| 22 | stat -c \"%s\" outFile && rm -f outFile" "9291431936\n" "I WANT\n" "" |
| 23 | testing "dd if=file of=(null)" \ |
| 24 | "dd if=input of=/dev/null $opt && echo 'yes'" "yes\n" "I WANT\n" "" |
| 25 | testing "dd with if of bs" \ |
| 26 | "dd if=/dev/zero of=sda.txt bs=512 count=1 $opt && |
| 27 | stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" "" |
| 28 | testing "dd with if of ibs obs" \ |
| 29 | "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=1 $opt && |
| 30 | stat -c '%s' sda.txt && rm -f sda.txt" "512\n" "" "" |
| 31 | testing "dd with if of ibs obs count" \ |
| 32 | "dd if=/dev/zero of=sda.txt ibs=512 obs=256 count=3 $opt && |
| 33 | stat -c '%s' sda.txt && rm -f sda.txt" "1536\n" "" "" |
| 34 | |
| 35 | ln -s input softlink |
| 36 | testing "dd if=softlink" "dd if=softlink $opt" "I WANT\n" "I WANT\n" "" |
| 37 | unlink softlink |
| 38 | |
| 39 | ln -s file softlink |
| 40 | testing "dd if=file of=softlink" "dd if=input of=softlink $opt && |
| 41 | [ -f file -a -L softlink ] && cat softlink" "I WANT\n" "I WANT\n" "" |
| 42 | unlink softlink && rm -f file |
| 43 | |
| 44 | testing "dd if=file of=file (same file)" "dd if=input of=input $opt && |
| 45 | [ -f input ] && cat input && echo 'yes'" "yes\n" "I WANT\n" "" |
| 46 | |
| 47 | testing "dd with ibs obs bs" "dd ibs=2 obs=5 bs=9 $opt" "I WANT\n" "" "I WANT\n" |
| 48 | testing "dd with ibs obs bs if" "dd ibs=2 obs=5 bs=9 if=input $opt" \ |
| 49 | "I WANT\n" "I WANT\n" "" |
| 50 | |
| 51 | testing "dd with ibs obs count" "dd ibs=1 obs=1 count=1 $opt" "I" "" "I WANT\n" |
| 52 | testing "dd with ibs obs count if" "dd ibs=1 obs=1 count=3 if=input $opt" \ |
| 53 | "I W" "I WANT\n" "" |
| 54 | |
| 55 | testing "dd with count" "dd count=1 $opt" "I WANT\n" "" "I WANT\n" |
| 56 | testing "dd with count if" "dd count=1 if=input $opt" "I WANT\n" "I WANT\n" "" |
| 57 | |
| 58 | testing "dd with skip" "dd skip=0 $opt" "I WANT\n" "" "I WANT\n" |
| 59 | testing "dd with skip if" "dd skip=0 if=input $opt" "I WANT\n" "I WANT\n" "" |
| 60 | |
| 61 | testing "dd with seek" "dd seek=0 $opt" "I WANT\n" "" "I WANT\n" |
| 62 | testing "dd with seek if" "dd seek=0 if=input $opt" "I WANT\n" "I WANT\n" "" |
| 63 | |
| 64 | # These type of conv is not supported in toybox: 'ascii', 'ebcdic', 'ibm', |
| 65 | # 'block', 'unblock', 'nocreat', 'notronc', 'lcase', 'ucase', 'excl', 'swab' |
| 66 | |
| 67 | # Testing only 'notrunc', 'noerror', 'fsync', 'sync' |
| 68 | |
| 69 | testing "dd conv=notrunc" "dd conv=notrunc $opt" "I WANT\n" "" "I WANT\n" |
| 70 | testing "dd conv=notrunc with IF" "dd conv=notrunc if=input $opt" "I WANT\n" \ |
| 71 | "I WANT\n" "" |
| 72 | |
| 73 | testing "dd conv=noerror" "dd conv=noerror $opt" "I WANT\n" "" "I WANT\n" |
| 74 | testing "dd conv=noerror with IF" "dd conv=noerror if=input $opt" "I WANT\n" \ |
| 75 | "I WANT\n" "" |
| 76 | |
| 77 | testing "dd conv=fsync" "dd conv=fsync $opt" "I WANT\n" "" "I WANT\n" |
| 78 | testing "dd conv=fsync with IF" "dd conv=fsync if=input $opt" "I WANT\n" \ |
| 79 | "I WANT\n" "" |
| 80 | |
| 81 | testing "dd conv=sync" "dd conv=sync $opt | head -n 1" "I WANT\n" "" "I WANT\n" |
| 82 | testing "dd conv=sync with IF" "dd conv=sync if=input $opt | head -n 1" "I WANT\n" \ |
| 83 | "I WANT\n" "" |