t0021: refactor `generate_random_characters()` to not depend on Perl
The `generate_random_characters()` helper function generates N random characters in the range 'a-z' and writes them into a file. The logic currently uses Perl, but it can be adapted rather easily by: - Making `test-tool genrandom` generate an infinite stream. - Using `tr -dc` to strip all characters which aren't in the range of 'a-z'. - Using `test_copy_bytes()` to copy the first N bytes. This allows us to drop the PERL_TEST_HELPERS prerequisite. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Patrick Steinhardt committed
Apr 3, 2025 at 07:06 UTC
88ed7b84cd97a0bafeeecefe6e7649eec090e02b
1 file changed
+3
-4
t/t0021-conversion.sh
+3
-4
@@ -20,8 +20,7 @@ EOF
20
generate_random_characters () {
21
LEN=$1
22
NAME=$2
23
- test-tool genrandom some-seed $LEN |
24
- perl -pe "s/./chr((ord($&) % 26) + ord('a'))/sge" >"$TEST_ROOT/$NAME"
23
+ test-tool genrandom some-seed | tr -dc 'a-z' | test_copy_bytes "$LEN" >"$TEST_ROOT/$NAME"
24
}
25
26
filter_git () {
@@ -619,7 +618,7 @@ test_expect_success 'required process filter should be used only for "clean" ope
618
)
619
'
620
622
-test_expect_success PERL_TEST_HELPERS 'required process filter should process multiple packets' '
621
+test_expect_success 'required process filter should process multiple packets' '
622
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
623
test_config_global filter.protocol.required true &&
624
@@ -684,7 +683,7 @@ test_expect_success PERL_TEST_HELPERS 'required process filter should process mu
683
)
684
'
685
687
-test_expect_success PERL_TEST_HELPERS 'required process filter with clean error should fail' '
686
+test_expect_success 'required process filter with clean error should fail' '
687
test_config_global filter.protocol.process "test-tool rot13-filter --log=debug.log clean smudge" &&
688
test_config_global filter.protocol.required true &&
689
rm -rf repo &&