Am 01.10.2014 um 16:11 schrieb Eric Sunshine:
On Wed, Oct 1, 2014 at 5:40 AM, René Scharfe <l....@web.de> wrote:
Signed-off-by: Rene Scharfe <l....@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. :)


+               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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to