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