aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMoritz Röhrich <moritz@ildefons.de>2021-08-19 22:47:37 +0200
committerRob Landley <rob@landley.net>2021-10-03 15:09:44 -0500
commit6e6b6eb6fa68d5b764751e9658c4fd15b7555b95 (patch)
treeade7594f8c927a20cf3c315387d38ae650532a5a /tests
parent5a82dad22212b163323e23bb0383f3f7cd9002be (diff)
downloadtoybox-6e6b6eb6fa68d5b764751e9658c4fd15b7555b95.tar.gz
new toy: Simple hexdump implementation
- Add simple hexdump implementation - Add tests for hexdump
Diffstat (limited to 'tests')
-rwxr-xr-xtests/hexdump.test135
1 files changed, 135 insertions, 0 deletions
diff --git a/tests/hexdump.test b/tests/hexdump.test
new file mode 100755
index 00000000..e319957c
--- /dev/null
+++ b/tests/hexdump.test
@@ -0,0 +1,135 @@
+#!/bin/bash
+
+[ -f testing.sh ] && . testing.sh
+
+testcmd "simple file" "input" "0000000 6973 706d 656c 000a\n0000007\n" "simple\\n" ""
+testcmd "simple file -b" "-b input" "0000000 163 151 155 160 154 145 012\n0000007\n" "simple\\n" ""
+testcmd "simple file -c" "-c input" "0000000 s i m p l e \\\\n\n0000007\n" "simple\\n" ""
+testcmd "simple file -d" "-d input" "0000000 26995 28781 25964 00010\n0000007\n" "simple\\n" ""
+testcmd "simple file -o" "-o input" "0000000 064563 070155 062554 000012\n0000007\n" "simple\\n" ""
+testcmd "simple file -x" "-x input" "0000000 6973 706d 656c 000a\n0000007\n" "simple\\n" ""
+
+testcmd \
+ "simple file canonical output -C" \
+ "-C input" \
+ "\
+00000000 73 69 6d 70 6c 65 0a |simple.|\n\
+00000007\n" \
+ "simple\n" \
+ ""
+testcmd \
+ "simple file canonical output -C multiline" \
+ "-C input" \
+ "\
+00000000 73 69 6d 70 6c 65 0a 62 61 72 66 6f 6f 62 61 72 |simple.barfoobar|\n\
+00000010 66 6f 6f 62 61 72 0a |foobar.|\n\
+00000017\n" \
+ "\
+simple\n\
+barfoobarfoobar\n" \
+ ""
+
+testcmd \
+ "head of file -n 10" \
+ "-n 10 input" \
+ "\
+0000000 6973 706d 656c 730a 6d69\n\
+000000a\n" \
+ "simple\nsimple\n" \
+ ""
+testcmd \
+ "skip head of file -s 10" \
+ "-s 10 input" \
+ "\
+000000a 6c70 0a65\n\
+000000e\n" \
+ "simple\nsimple\n" \
+ ""
+
+testcmd \
+ "squeeze repeating lines" \
+ "input" \
+ "\
+0000000 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+*\n\
+0000070 6f66 006f\n\
+0000073\n" \
+ "\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+foo" \
+ ""
+testcmd \
+ "squeeze repeating lines" \
+ "input" \
+ "\
+0000000 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+*\n\
+0000030 6262 6262 6262 6262 6262 6262 6262 0a62\n\
+0000040 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+*\n\
+0000070 6262 6262 6262 6262 6262 6262 6262 0a62\n\
+0000080\n" \
+ "\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+bbbbbbbbbbbbbbb\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+bbbbbbbbbbbbbbb\n" \
+ ""
+testcmd \
+ "don't squeeze repeating lines" \
+ "-v input" \
+ "\
+0000000 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+0000010 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+0000020 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+0000030 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+0000040 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+0000050 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+0000060 6161 6161 6161 6161 6161 6161 6161 0a61\n\
+0000070 6f66 006f\n\
+0000073\n" \
+ "\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+aaaaaaaaaaaaaaa\n\
+foo" \
+ ""
+
+for _ in {1..25}; do echo "foobar" >> file1; done
+for _ in {1..25}; do echo "buzzbar" >> file2; done
+
+testcmd \
+ "accumulate offset accross files" \
+ "file1 file2" \
+ "0000000 6f66 626f 7261 660a 6f6f 6162 0a72 6f66\n\
+0000010 626f 7261 660a 6f6f 6162 0a72 6f66 626f\n\
+0000020 7261 660a 6f6f 6162 0a72 6f66 626f 7261\n\
+0000030 660a 6f6f 6162 0a72 6f66 626f 7261 660a\n\
+0000040 6f6f 6162 0a72 6f66 626f 7261 660a 6f6f\n\
+0000050 6162 0a72 6f66 626f 7261 660a 6f6f 6162\n\
+0000060 0a72 6f66 626f 7261 660a 6f6f 6162 0a72\n\
+0000070 6f66 626f 7261 660a 6f6f 6162 0a72 6f66\n\
+0000080 626f 7261 660a 6f6f 6162 0a72 6f66 626f\n\
+0000090 7261 660a 6f6f 6162 0a72 6f66 626f 7261\n\
+00000a0 660a 6f6f 6162 0a72 6f66 626f 7261 620a\n\
+00000b0 7a75 627a 7261 620a 7a75 627a 7261 620a\n\
+*\n\
+0000170 7a75 627a 7261 000a\n\
+0000177\n" \
+ "" \
+ ""
+rm file1 file2