]> git.ipfire.org Git - thirdparty/git.git/blob - t/t0016-oidmap.sh
Sync with Git 2.45.1
[thirdparty/git.git] / t / t0016-oidmap.sh
1 #!/bin/sh
2
3 test_description='test oidmap'
4
5 TEST_PASSES_SANITIZE_LEAK=true
6 . ./test-lib.sh
7
8 # This purposefully is very similar to t0011-hashmap.sh
9
10 test_oidmap () {
11 echo "$1" | test-tool oidmap $3 >actual &&
12 echo "$2" >expect &&
13 test_cmp expect actual
14 }
15
16
17 test_expect_success 'setup' '
18
19 test_commit one &&
20 test_commit two &&
21 test_commit three &&
22 test_commit four
23
24 '
25
26 test_expect_success 'put' '
27
28 test_oidmap "put one 1
29 put two 2
30 put invalidOid 4
31 put three 3" "NULL
32 NULL
33 Unknown oid: invalidOid
34 NULL"
35
36 '
37
38 test_expect_success 'replace' '
39
40 test_oidmap "put one 1
41 put two 2
42 put three 3
43 put invalidOid 4
44 put two deux
45 put one un" "NULL
46 NULL
47 NULL
48 Unknown oid: invalidOid
49 2
50 1"
51
52 '
53
54 test_expect_success 'get' '
55
56 test_oidmap "put one 1
57 put two 2
58 put three 3
59 get two
60 get four
61 get invalidOid
62 get one" "NULL
63 NULL
64 NULL
65 2
66 NULL
67 Unknown oid: invalidOid
68 1"
69
70 '
71
72 test_expect_success 'remove' '
73
74 test_oidmap "put one 1
75 put two 2
76 put three 3
77 remove one
78 remove two
79 remove invalidOid
80 remove four" "NULL
81 NULL
82 NULL
83 1
84 2
85 Unknown oid: invalidOid
86 NULL"
87
88 '
89
90 test_expect_success 'iterate' '
91 test-tool oidmap >actual.raw <<-\EOF &&
92 put one 1
93 put two 2
94 put three 3
95 iterate
96 EOF
97
98 # sort "expect" too so we do not rely on the order of particular oids
99 sort >expect <<-EOF &&
100 NULL
101 NULL
102 NULL
103 $(git rev-parse one) 1
104 $(git rev-parse two) 2
105 $(git rev-parse three) 3
106 EOF
107
108 sort <actual.raw >actual &&
109 test_cmp expect actual
110 '
111
112 test_done