git/t/t0016-oidmap.sh
Christian Couder c1f7f53834 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>
2019-06-17 18:11:41 -07:00

85 lines
1,006 B
Bash
Executable file

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