1#!/bin/sh
2
3test_description='check infrastructure for svn importer'
4
5. ./test-lib.sh
6uint32_max=4294967295
7
8test_expect_success 'obj pool: store data' '
9 cat <<-\EOF >expected &&
10 0
11 1
12 EOF
13
14 test-obj-pool <<-\EOF >actual &&
15 alloc one 16
16 set one 13
17 test one 13
18 reset one
19 EOF
20 test_cmp expected actual
21'
22
23test_expect_success 'obj pool: NULL is offset ~0' '
24 echo "$uint32_max" >expected &&
25 echo null one | test-obj-pool >actual &&
26 test_cmp expected actual
27'
28
29test_expect_success 'obj pool: out-of-bounds access' '
30 cat <<-EOF >expected &&
31 0
32 0
33 $uint32_max
34 $uint32_max
35 16
36 20
37 $uint32_max
38 EOF
39
40 test-obj-pool <<-\EOF >actual &&
41 alloc one 16
42 alloc two 16
43 offset one 20
44 offset two 20
45 alloc one 5
46 offset one 20
47 free one 1
48 offset one 20
49 reset one
50 reset two
51 EOF
52 test_cmp expected actual
53'
54
55test_expect_success 'obj pool: high-water mark' '
56 cat <<-\EOF >expected &&
57 0
58 0
59 10
60 20
61 20
62 20
63 EOF
64
65 test-obj-pool <<-\EOF >actual &&
66 alloc one 10
67 committed one
68 alloc one 10
69 commit one
70 committed one
71 alloc one 10
72 free one 20
73 committed one
74 reset one
75 EOF
76 test_cmp expected actual
77'
78
79test_expect_success 'treap sort' '
80 cat <<-\EOF >unsorted &&
81 68
82 12
83 13
84 13
85 68
86 13
87 13
88 21
89 10
90 11
91 12
92 13
93 13
94 EOF
95 sort unsorted >expected &&
96
97 test-treap <unsorted >actual &&
98 test_cmp expected actual
99'
100
101test_done