#!/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 actual && test_cmp expected actual ' test_done