1#!/usr/bin/perl 2# Test "sha256sum". 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 = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"; 27 28my @Tests = 29 ( 30 ['s1', {IN=> {f=> ''}}, 31 {OUT=>"$sha_degenerate f\n"}], 32 ['s2', {IN=> {f=> 'a'}}, 33 {OUT=>"ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb f\n"}], 34 ['s3', {IN=> {f=> 'abc'}}, 35 {OUT=>"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad f\n"}], 36 ['s4', 37 {IN=> {f=> 'abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq'}}, 38 {OUT=>"248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1 f\n"}], 39 ['s8', {IN=> {f=> 'a' x 1000000}}, 40 {OUT=>"cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0 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 = 'sha256sum'; 54my $fail = run_tests ($program_name, $prog, \@Tests, $save_temps, $verbose); 55exit $fail; 56