You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
171 lines
2.6 KiB
171 lines
2.6 KiB
#!/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 |
|
' |
|
|
|
test_expect_success 'line buffer' ' |
|
echo HELLO >expected1 && |
|
printf "%s\n" "" HELLO >expected2 && |
|
echo >expected3 && |
|
printf "%s\n" "" Q | q_to_nul >expected4 && |
|
printf "%s\n" foo "" >expected5 && |
|
printf "%s\n" "" foo >expected6 && |
|
|
|
test-line-buffer <<-\EOF >actual1 && |
|
5 |
|
HELLO |
|
EOF |
|
|
|
test-line-buffer <<-\EOF >actual2 && |
|
0 |
|
|
|
5 |
|
HELLO |
|
EOF |
|
|
|
q_to_nul <<-\EOF | |
|
1 |
|
Q |
|
EOF |
|
test-line-buffer >actual3 && |
|
|
|
q_to_nul <<-\EOF | |
|
0 |
|
|
|
1 |
|
Q |
|
EOF |
|
test-line-buffer >actual4 && |
|
|
|
test-line-buffer <<-\EOF >actual5 && |
|
5 |
|
foo |
|
EOF |
|
|
|
test-line-buffer <<-\EOF >actual6 && |
|
0 |
|
|
|
5 |
|
foo |
|
EOF |
|
|
|
test_cmp expected1 actual1 && |
|
test_cmp expected2 actual2 && |
|
test_cmp expected3 actual3 && |
|
test_cmp expected4 actual4 && |
|
test_cmp expected5 actual5 && |
|
test_cmp expected6 actual6 |
|
' |
|
|
|
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 |
|
' |
|
|
|
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 |
|
' |
|
|
|
test_done
|
|
|