1#!/usr/bin/perl 2# Test "sha384sum". 3 4# Copyright (C) 2005-2023 Free Software Foundation, Inc. 5 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19use strict; 20 21(my $program_name = $0) =~ s|.*/||; 22 23# Turn off localization of executable's output. 24@ENV{qw(LANGUAGE LANG LC_ALL)} = ('C') x 3; 25 26my $sha_degenerate = "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b"; 27 28my @Tests = 29 ( 30 ['s1', {IN=> {f=> ''}}, 31 {OUT=>"$sha_degenerate f\n"}], 32 ['s2', {IN=> {f=> 'a'}}, 33 {OUT=>"54a59b9f22b0b80880d8427e548b7c23abd873486e1f035dce9cd697e85175033caa88e6d57bc35efae0b5afd3145f31 f\n"}], 34 ['s3', {IN=> {f=> 'abc'}}, 35 {OUT=>"cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7 f\n"}], 36 ['s4', 37 {IN=> {f=> 'abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu'}}, 38 {OUT=>"09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039 f\n"}], 39 ['s8', {IN=> {f=> 'a' x 1000000}}, 40 {OUT=>"9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985 f\n"}], 41 ); 42 43# Insert the '--text' argument for each test. 44my $t; 45foreach $t (@Tests) 46 { 47 splice @$t, 1, 0, '--text' unless @$t[1] =~ /--check/; 48 } 49 50my $save_temps = $ENV{DEBUG}; 51my $verbose = $ENV{VERBOSE}; 52 53my $prog = 'sha384sum'; 54my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose); 55exit $fail; 56