summaryrefslogtreecommitdiff
path: root/tests/misc
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2016-10-31 13:29:34 +0000
committerPádraig Brady <P@draigBrady.com>2016-11-22 20:04:24 +0000
commitea94589e9ef02624a3837f97f80efd7d3dcf56bf (patch)
tree5f3f96ca978e3e43c485d914bf95c8ffdeeb41dd /tests/misc
parent373ba16f332d0632f2ce987893ed67bb4334c5d2 (diff)
downloadcoreutils-ea94589e9ef02624a3837f97f80efd7d3dcf56bf.tar.xz
b2sum: a new checksum utility with md5sum like interface
Note we don't support the --algorithm option of the b2sum command in the external BLAKE2 project, as that was deemed too confusing for users. "BLAKE2b" was chosen as the default algorithm to use, which is single threaded but performs well on 64 bit. * src/blake2: CC0 source copied from external project. * cfg.mk[VC_LIST_ALWAYS_EXCLUDE_REGEX]: Exclude blake2/ from syntax checks, make update-copyright, etc. * src/local.mk: Reference the sources for b2sum, and set the compilation flags. * doc/coreutils.texi (b2sum invocation): Reference the md5sum invocation node, and add descriptions of -l. * tests/misc/b2sum.sh: Add new test. * tests/local.mk: Reference new test. * AUTHORS: Add new binary. * README: Likewise. * build-aux/gen-lists-of-programs.sh: Likewise. * man/.gitignore: Likewise. * scripts/git-hooks/commit-msg: Likewise. * man/b2sum.x: New man page template. * man/local.mk: Reference new template. * src/.gitignore: Ignore new binaries. * src/blake2/.gitignore: Ignore new build atrifacts. * src/md5sum.c (usage): Describe the new -l option. * NEWS: Mention the new program.
Diffstat (limited to 'tests/misc')
-rwxr-xr-xtests/misc/b2sum.sh49
-rwxr-xr-xtests/misc/md5sum-bsd.sh10
2 files changed, 54 insertions, 5 deletions
diff --git a/tests/misc/b2sum.sh b/tests/misc/b2sum.sh
new file mode 100755
index 000000000..d254e0e7a
--- /dev/null
+++ b/tests/misc/b2sum.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+# 'b2sum' tests
+
+# Copyright (C) 2016 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
+print_ver_ b2sum
+
+# Ensure we can --check the --tag format we produce
+rm check.b2sum
+for i in 'a' ' b' '*c' '44' ' '; do
+ echo "$i" > "$i"
+ for l in 0 128; do
+ b2sum -l $l --tag "$i" >> check.b2sum
+ done
+done
+# Note -l is infered from the tags in the mixed format file
+b2sum --strict -c check.b2sum || fail=1
+# Also ensure the openssl tagged variant works
+sed 's/ //; s/ =/=/' < check.b2sum > openssl.b2sum || framework_failure_
+b2sum --strict -c openssl.b2sum || fail=1
+
+# Ensure we can check non tagged format
+for l in 0 128; do
+ b2sum -l $l /dev/null | tee -a check.vals > check.b2sum
+ b2sum -l $l --strict -c check.b2sum || fail=1
+ b2sum --strict -c check.b2sum || fail=1
+done
+
+# Ensure the checksum values are correct. The reference
+# check.vals was created with the upstream SSE reference implementation.
+b2sum -l 128 check.vals > out || fail=1
+printf '%s\n' '796485dd32fe9b754ea5fd6c721271d9 check.vals' > exp
+compare exp out || fail=1
+
+Exit $fail
diff --git a/tests/misc/md5sum-bsd.sh b/tests/misc/md5sum-bsd.sh
index e86434cf0..9f9a9a771 100755
--- a/tests/misc/md5sum-bsd.sh
+++ b/tests/misc/md5sum-bsd.sh
@@ -28,7 +28,7 @@ print_ver_ md5sum
# I.e., one not starting with ' ' or '*'
for i in 'a' ' b' '*c' 'dd' ' '; do
echo "$i" > "$i"
- md5sum "$i" >> check.md5sum
+ md5sum "$i" >> check.md5sum || fail=1
done
sed 's/ / /' check.md5sum > check.md5
@@ -59,7 +59,7 @@ returns_ 1 md5sum --tag --text /dev/null || fail=1
rm check.md5
for i in 'a' ' b' '*c' 'dd' ' '; do
echo "$i" > "$i"
- md5sum --tag "$i" >> check.md5
+ md5sum --tag "$i" >> check.md5 || fail=1
done
md5sum --strict -c check.md5 || fail=1
@@ -70,8 +70,8 @@ nl='
tab=' '
rm check.md5
for i in 'a\b' 'a\' "a${nl}b" "a${tab}b"; do
- > "$i"
- md5sum --tag "$i" >> check.md5
+ : > "$i"
+ md5sum --tag "$i" >> check.md5 || fail=1
done
md5sum --strict -c check.md5 || fail=1
@@ -82,7 +82,7 @@ ex_file='test
ex_output='\MD5 (test\n\\\\file) = d41d8cd98f00b204e9800998ecf8427e'
touch "$ex_file"
printf "%s\n" "$ex_output" > exp
-md5sum --tag "$ex_file" > out
+md5sum --tag "$ex_file" > out || fail=1
compare exp out || fail=1
Exit $fail