mirror of
https://github.com/git/git.git
synced 2026-03-04 06:27:36 +01:00
Add stream helper library
This library provides thread-unsafe fgets()- and fread()-like functions where the caller does not have to supply a buffer. It maintains a couple of static buffers and provides an API to use them. [rr: allow input from files other than stdin] [jn: with tests, documentation, and error handling improvements] Signed-off-by: David Barr <david.barr@cordelta.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
1d73b52f5b
commit
3bbaec00a8
@@ -76,6 +76,60 @@ test_expect_success 'obj pool: high-water mark' '
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_expect_success 'line buffer' '
|
||||
echo HELLO >expected1 &&
|
||||
printf "%s\n" "" HELLO >expected2 &&
|
||||
echo >expected3 &&
|
||||
printf "%s\n" "" Q | q_to_nul >expected4 &&
|
||||
printf "%s\n" foo "" >expected5 &&
|
||||
printf "%s\n" "" foo >expected6 &&
|
||||
|
||||
test-line-buffer <<-\EOF >actual1 &&
|
||||
5
|
||||
HELLO
|
||||
EOF
|
||||
|
||||
test-line-buffer <<-\EOF >actual2 &&
|
||||
0
|
||||
|
||||
5
|
||||
HELLO
|
||||
EOF
|
||||
|
||||
q_to_nul <<-\EOF |
|
||||
1
|
||||
Q
|
||||
EOF
|
||||
test-line-buffer >actual3 &&
|
||||
|
||||
q_to_nul <<-\EOF |
|
||||
0
|
||||
|
||||
1
|
||||
Q
|
||||
EOF
|
||||
test-line-buffer >actual4 &&
|
||||
|
||||
test-line-buffer <<-\EOF >actual5 &&
|
||||
5
|
||||
foo
|
||||
EOF
|
||||
|
||||
test-line-buffer <<-\EOF >actual6 &&
|
||||
0
|
||||
|
||||
5
|
||||
foo
|
||||
EOF
|
||||
|
||||
test_cmp expected1 actual1 &&
|
||||
test_cmp expected2 actual2 &&
|
||||
test_cmp expected3 actual3 &&
|
||||
test_cmp expected4 actual4 &&
|
||||
test_cmp expected5 actual5 &&
|
||||
test_cmp expected6 actual6
|
||||
'
|
||||
|
||||
test_expect_success 'string pool' '
|
||||
echo a does not equal b >expected.differ &&
|
||||
echo a equals a >expected.match &&
|
||||
|
||||
Reference in New Issue
Block a user