diff options
author | Jiang Xin <worldhello.net@gmail.com> | 2020-12-21 07:10:19 +0800 |
---|---|---|
committer | Jiang Xin <worldhello.net@gmail.com> | 2020-12-21 07:10:19 +0800 |
commit | 3104153d5ea3bd0e68166e02ec847a895f9a76e6 (patch) | |
tree | 8b65383c203c550fab3f6ffea51cd474168ac34b /t/t0064-oid-array.sh | |
parent | l10n: Update Catalan translation (diff) | |
parent | Git 2.30-rc1 (diff) | |
download | tgif-3104153d5ea3bd0e68166e02ec847a895f9a76e6.tar.xz |
Merge remote-tracking branch 'github/master' into git-po-master
* github/master: (42 commits)
Git 2.30-rc1
git-gui: use gray background for inactive text widgets
Another batch before 2.30-rc1
git-gui: Fix selected text colors
Makefile: conditionally include GIT-VERSION-FILE
git-gui: fix colored label backgrounds when using themed widgets
config.mak.uname: remove old NonStop compatibility settings
diff: correct interaction between --exit-code and -I<pattern>
t/perf: fix test_export() failure with BSD `sed`
style: do not "break" in switch() after "return"
compat-util: pretend that stub setitimer() always succeeds
strmap: make callers of strmap_remove() to call it in void context
doc: mention Python 3.x supports
index-format.txt: document v2 format of file system monitor extension
docs: multi-pack-index: remove note about future 'verify' work
init: provide useful advice about init.defaultBranch
get_default_branch_name(): prepare for showing some advice
branch -m: allow renaming a yet-unborn branch
init: document `init.defaultBranch` better
t7900: use --fixed-value in git-maintenance tests
...
Diffstat (limited to 't/t0064-oid-array.sh')
-rwxr-xr-x | t/t0064-oid-array.sh | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/t/t0064-oid-array.sh b/t/t0064-oid-array.sh new file mode 100755 index 0000000000..2e5438ccda --- /dev/null +++ b/t/t0064-oid-array.sh @@ -0,0 +1,102 @@ +#!/bin/sh + +test_description='basic tests for the oid array implementation' +. ./test-lib.sh + +echoid () { + prefix="${1:+$1 }" + shift + while test $# -gt 0 + do + echo "$prefix$ZERO_OID" | sed -e "s/00/$1/g" + shift + done +} + +test_expect_success 'ordered enumeration' ' + echoid "" 44 55 88 aa >expect && + { + echoid append 88 44 aa 55 && + echo for_each_unique + } | test-tool oid-array >actual && + test_cmp expect actual +' + +test_expect_success 'ordered enumeration with duplicate suppression' ' + echoid "" 44 55 88 aa >expect && + { + echoid append 88 44 aa 55 && + echoid append 88 44 aa 55 && + echoid append 88 44 aa 55 && + echo for_each_unique + } | test-tool oid-array >actual && + test_cmp expect actual +' + +test_expect_success 'lookup' ' + { + echoid append 88 44 aa 55 && + echoid lookup 55 + } | test-tool oid-array >actual && + n=$(cat actual) && + test "$n" -eq 1 +' + +test_expect_success 'lookup non-existing entry' ' + { + echoid append 88 44 aa 55 && + echoid lookup 33 + } | test-tool oid-array >actual && + n=$(cat actual) && + test "$n" -lt 0 +' + +test_expect_success 'lookup with duplicates' ' + { + echoid append 88 44 aa 55 && + echoid append 88 44 aa 55 && + echoid append 88 44 aa 55 && + echoid lookup 55 + } | test-tool oid-array >actual && + n=$(cat actual) && + test "$n" -ge 3 && + test "$n" -le 5 +' + +test_expect_success 'lookup non-existing entry with duplicates' ' + { + echoid append 88 44 aa 55 && + echoid append 88 44 aa 55 && + echoid append 88 44 aa 55 && + echoid lookup 66 + } | test-tool oid-array >actual && + n=$(cat actual) && + test "$n" -lt 0 +' + +test_expect_success 'lookup with almost duplicate values' ' + # n-1 5s + root=$(echoid "" 55) && + root=${root%5} && + { + id1="${root}5" && + id2="${root}f" && + echo "append $id1" && + echo "append $id2" && + echoid lookup 55 + } | test-tool oid-array >actual && + n=$(cat actual) && + test "$n" -eq 0 +' + +test_expect_success 'lookup with single duplicate value' ' + { + echoid append 55 55 && + echoid lookup 55 + } | test-tool oid-array >actual && + n=$(cat actual) && + test "$n" -ge 0 && + test "$n" -le 1 +' + +test_done |