t: add t0016-oidmap.sh

Add actual tests for operations using `struct oidmap` from oidmap.{c,h}.

Helped-by: SZEDER Gábor <szeder.dev@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Christian Couder 2019-06-15 12:07:00 +02:00 committed by Junio C Hamano
parent 11510decd0
commit c1f7f53834

84
t/t0016-oidmap.sh Executable file
View File

@ -0,0 +1,84 @@
#!/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 'iterate' '
test_oidmap "put one 1
put two 2
put three 3
iterate" "NULL
NULL
NULL
$(git rev-parse two) 2
$(git rev-parse one) 1
$(git rev-parse three) 3"
'
test_done