summaryrefslogtreecommitdiff
path: root/testsuite/md5sum.tests
blob: 5bbdb3b58e7e9bd08f14982262c58fdcb0248517 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/sh
# Used by {ms5,shaN}sum

# We pipe texts 0...999 bytes long, {md5,shaN}sum them,
# then {md5,shaN}sum the resulting list.
# Then we compare the result with expected result.
#
# Here are the expected results:
# efe30c482e0b687e0cca0612f42ca29b
# d41337e834377140ae7f98460d71d908598ef04f
# 8e1d3ed57ebc130f0f72508446559eeae06451ae6d61b1e8ce46370cfb8963c3
# fe413e0f177324d1353893ca0772ceba83fd41512ba63895a0eebb703ef9feac2fb4e92b2cb430b3bda41b46b0cb4ea8307190a5cc795157cfb680a9cd635d0f

if ! test "$1"; then
	set -- md5sum efe30c482e0b687e0cca0612f42ca29b
fi

sum="$1"
expected="$2"

mkdir testdir 2>/dev/null

result=`(
cd testdir || { echo "cannot cd testdir!" >&2; exit 1; }

text="The quick brown fox jumps over the lazy dog"

n=0
while test $n -le 999; do
	yes "$text" | head -c $n | "$sum"
	: $((n++))
done | "$sum"

)`

rm -rf testdir

FAILCOUNT=0

if test x"$result" = x"$expected  -"; then
    echo "PASS: $sum"
    exit 0
fi

echo "FAIL: $sum (r:$result exp:$expected)"
exit 1