diff options
author | Pádraig Brady <P@draigBrady.com> | 2016-10-31 13:29:34 +0000 |
---|---|---|
committer | Pádraig Brady <P@draigBrady.com> | 2016-11-22 20:04:24 +0000 |
commit | ea94589e9ef02624a3837f97f80efd7d3dcf56bf (patch) | |
tree | 5f3f96ca978e3e43c485d914bf95c8ffdeeb41dd /tests | |
parent | 373ba16f332d0632f2ce987893ed67bb4334c5d2 (diff) | |
download | coreutils-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')
-rw-r--r-- | tests/local.mk | 1 | ||||
-rwxr-xr-x | tests/misc/b2sum.sh | 49 | ||||
-rwxr-xr-x | tests/misc/md5sum-bsd.sh | 10 |
3 files changed, 55 insertions, 5 deletions
diff --git a/tests/local.mk b/tests/local.mk index 86de37603..af34e2428 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -296,6 +296,7 @@ all_tests = \ tests/misc/head-pos.sh \ tests/misc/head-write-error.sh \ tests/misc/kill.sh \ + tests/misc/b2sum.sh \ tests/misc/md5sum.pl \ tests/misc/md5sum-bsd.sh \ tests/misc/md5sum-newline.pl \ 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 |