OSDN Git Service

basename: fix segfault on null input; add tests
[android-x86/external-toybox.git] / tests / cksum.test
1 #!/bin/bash
2
3 [ -f testing.sh ] && . testing.sh
4
5
6 #testing "name" "command" "result" "infile" "stdin"
7
8 # Default behavior on stdin and on files.
9 testing "on stdin" "echo -n hello | cksum" "3287646509 5\n" "" ""
10 echo -n "hello" > tmpfile
11 testing "on file" "cksum tmpfile" "3287646509 5 tmpfile\n" "" ""
12 rm -f tmpfile
13 touch one two
14 testing "on multiple files" "cksum one two" "4294967295 0 one\n4294967295 0 two\n" "" ""
15 rm -f one two
16
17 # Check the length suppression, both calculate the CRC on 'abc' but the second
18 # option has length suppression on and has the length concatenated to 'abc'.
19 testing "on abc including length" "echo -n 'abc' | cksum" "1219131554 3\n" "" ""
20 testing "on abc excluding length" "echo -ne 'abc\x3' | cksum -N" "1219131554 4\n" "" ""
21
22 # cksum on no contents gives 0xffffffff (=4294967295)
23 testing "on no data post-inversion" "echo -n "" | cksum" "4294967295 0\n" "" ""
24 # If we do preinversion we will then get 0.
25 testing "on no data pre+post-inversion" "echo -n "" | cksum -P" "0 0\n" "" ""
26 # If we skip the post-inversion we also get 0
27 testing "on no data no inversion" "echo -n "" | cksum -I" "0 0\n" "" ""
28 # Two wrongs make a right.
29 testing "on no data pre-inversion" "echo -n "" | cksum -PI" "4294967295 0\n" "" ""