git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
René Scharfe <l.s.r@web.de>
Date
Oct 1, 2014, 14:21 UTC
Message-ID
<542C0DE2.6060502@web.de>
In-Reply-To
<CAPig+cQxXccnQCwr7oVfccAQn3sTUpv=b=qHEX1H7abng--=0A@mail.gmail.com>
Am 01.10.2014 um 16:11 schrieb Eric Sunshine:
Show 26 quoted lines
> On Wed, Oct 1, 2014 at 5:40 AM, René Scharfe <l.s.r@web.de> wrote:
>> Signed-off-by: Rene Scharfe <l.s.r@web.de>
>> ---
>> 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. :)
Show 60 quoted lines
>
>> +               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
Previous: Eric SunshineNext: Jeff King
Message 8 of 9 in “sha1-array: add test-sha1-array and basic tests”
  1. 1/2 sha1-array: add test-sha1-array and basic testsRené Scharfe, Oct 1, 2014
  2. 2/2 sha1-lookup: fix handling of duplicates in sha1_pos()René Scharfe, Oct 1, 2014
  3. Jeff KingOct 1, 2014
  4. René ScharfeOct 1, 2014
  5. Jeff KingOct 1, 2014
  6. Eric SunshineOct 1, 2014
  7. Eric SunshineOct 1, 2014
  8. René ScharfeOct 1, 2014
  9. Jeff KingOct 1, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.