t: adapt `test_copy_bytes()` to not use Perl
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>main
parent
2df6710097
commit
01486b5de8
|
@ -1640,17 +1640,7 @@ test_match_signal () {
|
||||||
|
|
||||||
# Read up to "$1" bytes (or to EOF) from stdin and write them to stdout.
|
# Read up to "$1" bytes (or to EOF) from stdin and write them to stdout.
|
||||||
test_copy_bytes () {
|
test_copy_bytes () {
|
||||||
perl -e '
|
dd ibs=1 count="$1" 2>/dev/null
|
||||||
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"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# run "$@" inside a non-git directory
|
# run "$@" inside a non-git directory
|
||||||
|
|
Loading…
Reference in New Issue