22
33test_description=" Test the svn importer's input handling routines.
44
5- These tests exercise the line_buffer library, but their real purpose
6- is to check the assumptions that library makes of the platform's input
7- routines. Processes engaged in bi-directional communication would
8- hang if fread or fgets is too greedy.
5+ These tests provide some simple checks that the line_buffer API
6+ behaves as advertised.
97
108While at it, check that input of newlines and null bytes are handled
119correctly.
1210"
1311. ./test-lib.sh
1412
15- test -n " $GIT_REMOTE_SVN_TEST_BIG_FILES " && test_set_prereq EXPENSIVE
16-
17- generate_tens_of_lines () {
18- tens=$1 &&
19- line=$2 &&
20-
21- i=0 &&
22- while test $i -lt " $tens "
23- do
24- for j in a b c d e f g h i j
25- do
26- echo " $line "
27- done &&
28- : $(( i = $i + 1 )) ||
29- return
30- done
31- }
32-
33- long_read_test () {
34- : each line is 10 bytes, including newline &&
35- line=abcdefghi &&
36- echo " $line " > expect &&
37-
38- if ! test_declared_prereq PIPE
39- then
40- echo >&4 " long_read_test: need to declare PIPE prerequisite"
41- return 127
42- fi &&
43- tens_of_lines=$(( $1 / 100 + 1 )) &&
44- lines=$(( $tens_of_lines * 10 )) &&
45- readsize=$(( ($lines - 1 ) * 10 + 3 )) &&
46- copysize=7 &&
47- rm -f input &&
48- mkfifo input &&
49- {
50- (
51- generate_tens_of_lines $tens_of_lines " $line " &&
52- exec sleep 100
53- ) > input &
54- } &&
55- test-line-buffer input << -EOF >output &&
56- binary $readsize
57- copy $copysize
58- EOF
59- kill $! &&
60- test_line_count = $lines output &&
61- tail -n 1 < output > actual &&
62- test_cmp expect actual
63- }
64-
65- test_expect_success ' setup: have pipes?' '
66- rm -f frob &&
67- if mkfifo frob
68- then
69- test_set_prereq PIPE
70- fi
71- '
72-
7313test_expect_success ' hello world' '
7414 echo ">HELLO" >expect &&
7515 test-line-buffer <<-\EOF >actual &&
@@ -79,21 +19,6 @@ test_expect_success 'hello world' '
7919 test_cmp expect actual
8020'
8121
82- test_expect_success PIPE ' 0-length read, no input available' '
83- printf ">" >expect &&
84- rm -f input &&
85- mkfifo input &&
86- {
87- sleep 100 >input &
88- } &&
89- test-line-buffer input <<-\EOF >actual &&
90- binary 0
91- copy 0
92- EOF
93- kill $! &&
94- test_cmp expect actual
95- '
96-
9722test_expect_success ' 0-length read, send along greeting' '
9823 echo ">HELLO" >expect &&
9924 test-line-buffer <<-\EOF >actual &&
@@ -104,33 +29,6 @@ test_expect_success '0-length read, send along greeting' '
10429 test_cmp expect actual
10530'
10631
107- test_expect_success PIPE ' 1-byte read, no input available' '
108- printf ">%s" ab >expect &&
109- rm -f input &&
110- mkfifo input &&
111- {
112- (
113- printf "%s" a &&
114- printf "%s" b &&
115- exec sleep 100
116- ) >input &
117- } &&
118- test-line-buffer input <<-\EOF >actual &&
119- binary 1
120- copy 1
121- EOF
122- kill $! &&
123- test_cmp expect actual
124- '
125-
126- test_expect_success PIPE ' long read (around 8192 bytes)' '
127- long_read_test 8192
128- '
129-
130- test_expect_success PIPE,EXPENSIVE ' longer read (around 65536 bytes)' '
131- long_read_test 65536
132- '
133-
13432test_expect_success ' read from file descriptor' '
13533 rm -f input &&
13634 echo hello >expect &&
0 commit comments