| #!/bin/sh |
| |
| test_description="Test the svn importer's input handling routines. |
| |
| These tests provide some simple checks that the line_buffer API |
| behaves as advertised. |
| |
| While at it, check that input of newlines and null bytes are handled |
| correctly. |
| " |
| . ./test-lib.sh |
| |
| test_expect_success 'hello world' ' |
| echo ">HELLO" >expect && |
| test-line-buffer <<-\EOF >actual && |
| binary 6 |
| HELLO |
| EOF |
| test_cmp expect actual |
| ' |
| |
| test_expect_success '0-length read, send along greeting' ' |
| echo ">HELLO" >expect && |
| test-line-buffer <<-\EOF >actual && |
| binary 0 |
| copy 6 |
| HELLO |
| EOF |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'read from file descriptor' ' |
| rm -f input && |
| echo hello >expect && |
| echo hello >input && |
| echo copy 6 | |
| test-line-buffer "&4" 4<input >actual && |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'skip, copy null byte' ' |
| echo Q | q_to_nul >expect && |
| q_to_nul <<-\EOF | test-line-buffer >actual && |
| skip 2 |
| Q |
| copy 2 |
| Q |
| EOF |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'read null byte' ' |
| echo ">QhelloQ" | q_to_nul >expect && |
| q_to_nul <<-\EOF | test-line-buffer >actual && |
| binary 8 |
| QhelloQ |
| EOF |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'long reads are truncated' ' |
| echo ">foo" >expect && |
| test-line-buffer <<-\EOF >actual && |
| binary 5 |
| foo |
| EOF |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'long copies are truncated' ' |
| printf "%s\n" ">" foo >expect && |
| test-line-buffer <<-\EOF >actual && |
| binary 1 |
| |
| copy 5 |
| foo |
| EOF |
| test_cmp expect actual |
| ' |
| |
| test_expect_success 'long binary reads are truncated' ' |
| echo ">foo" >expect && |
| test-line-buffer <<-\EOF >actual && |
| binary 5 |
| foo |
| EOF |
| test_cmp expect actual |
| ' |
| |
| test_done |