Subject: Re: [PATCH 1/2] sha1-array: add test-sha1-array and basic tests

From: René Scharfe <[email-masked]>
Date: Wed, 01 Oct 2014 16:21:22 +0200

Am 01.10.2014 um 16:11 schrieb Eric Sunshine:
> On Wed, Oct 1, 2014 at 5:40 AM, René Scharfe <[email-masked]> wrote:
>> Signed-off-by: Rene Scharfe <[email-masked]>
>> ---
>> diff --git a/t/t0064-sha1-array.sh b/t/t0064-sha1-array.sh
>> new file mode 100755
>> index 0000000..bd68789
>> --- /dev/null
>> +++ b/t/t0064-sha1-array.sh
>> @@ -0,0 +1,64 @@
>> +#!/bin/sh
>> +
>> +test_description='basic tests for the SHA1 array implementation'
>> +. ./test-lib.sh
>> +
>> +echo20() {
>> +       prefix="$1"
>> +       shift
>> +       while test $# -gt 0
>> +       do
>> +               echo "$prefix$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1"
>
> Each caller of echo20() manually includes a space at the end of
> $prefix. Would it make sense to instead have echo20() do this on
> behalf of the caller?
>
>      echo "$prefix $1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1$1"

That wouldn't work if the prefix is the empty string; we don't want a 
space in that case (see the next echo20 call below).

But ${prefix:+$prefix } would do the trick.  Thanks for the idea. :)

>
>> +               shift
>> +       done
>> +}
>> +
>> +test_expect_success 'ordered enumeration' '
>> +       echo20 "" 44 55 88 aa >expect &&
>> +       {
>> +               echo20 "append " 88 44 aa 55 &&
>
> Which would slightly reduce the burden on the caller and make it read
> (very slightly) nicer:
>
>      echo20 append 88 44 aa 55 &&
>
>> +               echo for_each_unique
>> +       } | test-sha1-array >actual &&
>> +       test_cmp expect actual
>> +'
>> +
>> +test_expect_success 'ordered enumeration with duplicate suppression' '
>> +       echo20 "" 44 55 88 aa >expect &&
>> +       {
>> +               echo20 "append " 88 44 aa 55 &&
>> +               echo20 "append " 88 44 aa 55 &&
>> +               echo for_each_unique
>> +       } | test-sha1-array >actual &&
>> +       test_cmp expect actual
>> +'
>> +
>> +test_expect_success 'lookup' '
>> +       {
>> +               echo20 "append " 88 44 aa 55 &&
>> +               echo20 "lookup " 55
>> +       } | test-sha1-array >actual &&
>> +       n=$(cat actual) &&
>> +       test "$n" -eq 1
>> +'
>> +
>> +test_expect_success 'lookup non-existing entry' '
>> +       {
>> +               echo20 "append " 88 44 aa 55 &&
>> +               echo20 "lookup " 33
>> +       } | test-sha1-array >actual &&
>> +       n=$(cat actual) &&
>> +       test "$n" -lt 0
>> +'
>> +
>> +test_expect_success 'lookup with duplicates' '
>> +       {
>> +               echo20 "append " 88 44 aa 55 &&
>> +               echo20 "append " 88 44 aa 55 &&
>> +               echo20 "lookup " 55
>> +       } | test-sha1-array >actual &&
>> +       n=$(cat actual) &&
>> +       test "$n" -ge 2 &&
>> +       test "$n" -le 3
>> +'
>> +
>> +test_done