| #!/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 |