90 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/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
 |