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