[PATCH v4 04/20] t: adapt `test_copy_bytes()` to not use Perl
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Apr 3, 2025, 05:05 UTC
- Message-ID
- <20250403-b4-pks-t-perlless-v4-4-be20ac3db39a@pks.im>
- In-Reply-To
- <20250403-b4-pks-t-perlless-v4-0-be20ac3db39a@pks.im>
The `test_copy_bytes()` helper function copies up to N bytes from stdin to stdout. This is implemented using Perl, but it can be trivially adapted to instead use dd(1).
Refactor the helper accordingly, which allows a bunch of tests to pass when Perl is not available.
Signed-off-by: Patrick Steinhardt <ps@pks.im> --- t/test-lib-functions.sh | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 377f08a1428..c4b4d3a4c7f 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -1640,17 +1640,7 @@ test_match_signal () { # Read up to "$1" bytes (or to EOF) from stdin and write them to stdout. test_copy_bytes () { - perl -e ' - my $len = $ARGV[1]; - while ($len > 0) { - my $s; - my $nread = sysread(STDIN, $s, $len); - die "cannot read: $!" unless defined($nread); - last unless $nread; - print $s; - $len -= $nread; - } - ' - "$1" + dd ibs=1 count="$1" 2>/dev/null } # run "$@" inside a non-git directory
-- 2.49.0.604.gff1f9ca942.dirty