view scripts/test/cksum.test @ 1189:95ae2805622f draft

Add Szabolcs Nagy's deflate/inflate code from git://git.suckless.org/flate Confirmed with him on IRC it's ok to use under toybox license, glued the files together and hammered square peg into round hole, no other changes yet.
author Rob Landley <rob@landley.net>
date Fri, 31 Jan 2014 06:01:30 -0600
parents fa3293dda216
children
line wrap: on
line source

#!/bin/bash

[ -f testing.sh ] && . testing.sh


#testing "name" "command" "result" "infile" "stdin"

# Default behavior on stdin and on files.
testing "cksum on stdin" "echo -n hello | cksum" "3287646509 5\n" "" ""
echo -n "hello" > tmpfile
testing "cksum on file" "cksum tmpfile" "3287646509 5 tmpfile\n" "" ""
rm -f tmpfile
touch one two
testing "cksum on multiple files" "cksum one two" "4294967295 0 one\n4294967295 0 two\n" "" ""
rm -f one two

# Check the length suppression, both calculate the CRC on 'abc' but the second
# option has length suppression on and has the length concatenated to 'abc'.
testing "cksum on abc including length" "echo -n 'abc' | cksum" "1219131554 3\n" "" ""
testing "cksum on abc excluding length" "echo -ne 'abc\x3' | cksum -N" "1219131554 4\n" "" ""

# cksum on no contents gives 0xffffffff (=4294967295)
testing "cksum on no data post-inversion" "echo -n "" | cksum" "4294967295 0\n" "" ""
# If we do preinversion we will then get 0.
testing "cksum on no data pre+post-inversion" "echo -n "" | cksum -P" "0 0\n" "" ""
# If we skip the post-inversion we also get 0
testing "cksum on no data no inversion" "echo -n "" | cksum -I" "0 0\n" "" ""
# Two wrongs make a right.
testing "cksum on no data pre-inversion" "echo -n "" | cksum -PI" "4294967295 0\n" "" ""