2010-08-10 00:11:11 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
test_description='check infrastructure for svn importer'
|
|
|
|
|
|
|
|
. ./test-lib.sh
|
|
|
|
uint32_max=4294967295
|
|
|
|
|
|
|
|
test_expect_success 'obj pool: store data' '
|
|
|
|
cat <<-\EOF >expected &&
|
|
|
|
0
|
|
|
|
1
|
|
|
|
EOF
|
|
|
|
|
|
|
|
test-obj-pool <<-\EOF >actual &&
|
|
|
|
alloc one 16
|
|
|
|
set one 13
|
|
|
|
test one 13
|
|
|
|
reset one
|
|
|
|
EOF
|
|
|
|
test_cmp expected actual
|
|
|
|
'
|
|
|
|
|
|
|
|
test_expect_success 'obj pool: NULL is offset ~0' '
|
|
|
|
echo "$uint32_max" >expected &&
|
|
|
|
echo null one | test-obj-pool >actual &&
|
|
|
|
test_cmp expected actual
|
|
|
|
'
|
|
|
|
|
|
|
|
test_expect_success 'obj pool: out-of-bounds access' '
|
|
|
|
cat <<-EOF >expected &&
|
|
|
|
0
|
|
|
|
0
|
|
|
|
$uint32_max
|
|
|
|
$uint32_max
|
|
|
|
16
|
|
|
|
20
|
|
|
|
$uint32_max
|
|
|
|
EOF
|
|
|
|
|
|
|
|
test-obj-pool <<-\EOF >actual &&
|
|
|
|
alloc one 16
|
|
|
|
alloc two 16
|
|
|
|
offset one 20
|
|
|
|
offset two 20
|
|
|
|
alloc one 5
|
|
|
|
offset one 20
|
|
|
|
free one 1
|
|
|
|
offset one 20
|
|
|
|
reset one
|
|
|
|
reset two
|
|
|
|
EOF
|
|
|
|
test_cmp expected actual
|
|
|
|
'
|
|
|
|
|
|
|
|
test_expect_success 'obj pool: high-water mark' '
|
|
|
|
cat <<-\EOF >expected &&
|
|
|
|
0
|
|
|
|
0
|
|
|
|
10
|
|
|
|
20
|
|
|
|
20
|
|
|
|
20
|
|
|
|
EOF
|
|
|
|
|
|
|
|
test-obj-pool <<-\EOF >actual &&
|
|
|
|
alloc one 10
|
|
|
|
committed one
|
|
|
|
alloc one 10
|
|
|
|
commit one
|
|
|
|
committed one
|
|
|
|
alloc one 10
|
|
|
|
free one 20
|
|
|
|
committed one
|
|
|
|
reset one
|
|
|
|
EOF
|
|
|
|
test_cmp expected actual
|
|
|
|
'
|
|
|
|
|
2010-08-10 00:34:42 +02:00
|
|
|
test_expect_success 'string pool' '
|
|
|
|
echo a does not equal b >expected.differ &&
|
|
|
|
echo a equals a >expected.match &&
|
|
|
|
echo equals equals equals >expected.matchmore &&
|
|
|
|
|
|
|
|
test-string-pool "a,--b" >actual.differ &&
|
|
|
|
test-string-pool "a,a" >actual.match &&
|
|
|
|
test-string-pool "equals-equals" >actual.matchmore &&
|
|
|
|
test_must_fail test-string-pool a,a,a &&
|
|
|
|
test_must_fail test-string-pool a &&
|
|
|
|
|
|
|
|
test_cmp expected.differ actual.differ &&
|
|
|
|
test_cmp expected.match actual.match &&
|
|
|
|
test_cmp expected.matchmore actual.matchmore
|
|
|
|
'
|
|
|
|
|
2010-08-10 00:17:34 +02:00
|
|
|
test_expect_success 'treap sort' '
|
|
|
|
cat <<-\EOF >unsorted &&
|
|
|
|
68
|
|
|
|
12
|
|
|
|
13
|
|
|
|
13
|
|
|
|
68
|
|
|
|
13
|
|
|
|
13
|
|
|
|
21
|
|
|
|
10
|
|
|
|
11
|
|
|
|
12
|
|
|
|
13
|
|
|
|
13
|
|
|
|
EOF
|
|
|
|
sort unsorted >expected &&
|
|
|
|
|
|
|
|
test-treap <unsorted >actual &&
|
|
|
|
test_cmp expected actual
|
|
|
|
'
|
|
|
|
|
2010-08-10 00:11:11 +02:00
|
|
|
test_done
|