2
2
3
3
test_description=" Test the svn importer's input handling routines.
4
4
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.
9
7
10
8
While at it, check that input of newlines and null bytes are handled
11
9
correctly.
12
10
"
13
11
. ./test-lib.sh
14
12
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
-
73
13
test_expect_success ' hello world' '
74
14
echo ">HELLO" >expect &&
75
15
test-line-buffer <<-\EOF >actual &&
@@ -79,21 +19,6 @@ test_expect_success 'hello world' '
79
19
test_cmp expect actual
80
20
'
81
21
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
-
97
22
test_expect_success ' 0-length read, send along greeting' '
98
23
echo ">HELLO" >expect &&
99
24
test-line-buffer <<-\EOF >actual &&
@@ -104,33 +29,6 @@ test_expect_success '0-length read, send along greeting' '
104
29
test_cmp expect actual
105
30
'
106
31
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
-
134
32
test_expect_success ' read from file descriptor' '
135
33
rm -f input &&
136
34
echo hello >expect &&
0 commit comments