From 55672a39b4e0f82e6f997879724ea37ca7e0d765 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 9 May 2016 11:36:09 -0700 Subject: test-lib-functions.sh: remove misleading comment on test_seq We never used the "letters" form since we came up with "test_seq" to replace use of non-portable "seq" in our test script, which we introduced it at d17cf5f3 (tests: Introduce test_seq, 2012-08-04). We use this helper to either iterate for N times (i.e. the values on the lines do not even matter), or just to get N distinct strings (i.e. the values on the lines themselves do not really matter, but we care that they are different from each other and reproducible). Stop promising that we may allow using "letters"; this would open an easier reimplementation that does not rely on $PERL, if somebody later wants to. Signed-off-by: Junio C Hamano --- t/test-lib-functions.sh | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 't') diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 8f8858a5f0..39b815163d 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -665,20 +665,13 @@ test_cmp_rev () { test_cmp expect.rev actual.rev } -# Print a sequence of numbers or letters in increasing order. This is -# similar to GNU seq(1), but the latter might not be available -# everywhere (and does not do letters). It may be used like: -# -# for i in $(test_seq 100) -# do -# for j in $(test_seq 10 20) -# do -# for k in $(test_seq a z) -# do -# echo $i-$j-$k -# done -# done -# done +# Print a sequence of integers in increasing order, either with +# two arguments (start and end): +# +# test_seq 1 5 -- outputs 1 2 3 4 5 one line at a time +# +# or with one argument (end), in which case it starts counting +# from 1. test_seq () { case $# in -- cgit v1.2.3 From 4df4313532dae11529c7d635e99d67e45dc7777f Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 9 May 2016 12:37:01 -0700 Subject: test-lib-functions.sh: rewrite test_seq without Perl Rewrite the 'seq' imitation using only commands and features that are typically found built into modern POSIX shells, instead of relying on Perl to run a single-liner script. Signed-off-by: Junio C Hamano --- t/test-lib-functions.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 't') diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 39b815163d..9734e32222 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -679,7 +679,12 @@ test_seq () { 2) ;; *) error "bug in the test script: not 1 or 2 parameters to test_seq" ;; esac - perl -le 'print for $ARGV[0]..$ARGV[1]' -- "$@" + test_seq_counter__=$1 + while test "$test_seq_counter__" -le "$2" + do + echo "$test_seq_counter__" + test_seq_counter__=$(( $test_seq_counter__ + 1 )) + done } # This function can be used to schedule some commands to be run -- cgit v1.2.3