| #!/bin/sh | 
 |  | 
 | test_description='test oidmap' | 
 |  | 
 | TEST_PASSES_SANITIZE_LEAK=true | 
 | . ./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 |