You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
1.4 KiB
110 lines
1.4 KiB
#!/bin/sh |
|
|
|
test_description='test oidmap' |
|
. ./test-lib.sh |
|
|
|
# This purposefully is very similar to t0011-hashmap.sh |
|
|
|
test_oidmap () { |
|
echo "$1" | test-tool oidmap $3 >actual && |
|
echo "$2" >expect && |
|
test_cmp expect actual |
|
} |
|
|
|
|
|
test_expect_success 'setup' ' |
|
|
|
test_commit one && |
|
test_commit two && |
|
test_commit three && |
|
test_commit four |
|
|
|
' |
|
|
|
test_expect_success 'put' ' |
|
|
|
test_oidmap "put one 1 |
|
put two 2 |
|
put invalidOid 4 |
|
put three 3" "NULL |
|
NULL |
|
Unknown oid: invalidOid |
|
NULL" |
|
|
|
' |
|
|
|
test_expect_success 'replace' ' |
|
|
|
test_oidmap "put one 1 |
|
put two 2 |
|
put three 3 |
|
put invalidOid 4 |
|
put two deux |
|
put one un" "NULL |
|
NULL |
|
NULL |
|
Unknown oid: invalidOid |
|
2 |
|
1" |
|
|
|
' |
|
|
|
test_expect_success 'get' ' |
|
|
|
test_oidmap "put one 1 |
|
put two 2 |
|
put three 3 |
|
get two |
|
get four |
|
get invalidOid |
|
get one" "NULL |
|
NULL |
|
NULL |
|
2 |
|
NULL |
|
Unknown oid: invalidOid |
|
1" |
|
|
|
' |
|
|
|
test_expect_success 'remove' ' |
|
|
|
test_oidmap "put one 1 |
|
put two 2 |
|
put three 3 |
|
remove one |
|
remove two |
|
remove invalidOid |
|
remove four" "NULL |
|
NULL |
|
NULL |
|
1 |
|
2 |
|
Unknown oid: invalidOid |
|
NULL" |
|
|
|
' |
|
|
|
test_expect_success 'iterate' ' |
|
test-tool oidmap >actual.raw <<-\EOF && |
|
put one 1 |
|
put two 2 |
|
put three 3 |
|
iterate |
|
EOF |
|
|
|
# sort "expect" too so we do not rely on the order of particular oids |
|
sort >expect <<-EOF && |
|
NULL |
|
NULL |
|
NULL |
|
$(git rev-parse one) 1 |
|
$(git rev-parse two) 2 |
|
$(git rev-parse three) 3 |
|
EOF |
|
|
|
sort <actual.raw >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_done
|
|
|