|  | #!/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 |