summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 232087f)
raw | patch | inline | side by side (parent: 232087f)
author | Jonathan Nieder <jrnieder@gmail.com> | |
Mon, 3 Jan 2011 00:52:28 +0000 (18:52 -0600) | ||
committer | Jonathan Nieder <jrnieder@gmail.com> | |
Sat, 26 Feb 2011 10:57:59 +0000 (04:57 -0600) |
Do not expect an implicit newline after each input record.
Use a separate command to exercise buffer_skip_bytes.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Use a separate command to exercise buffer_skip_bytes.
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
t/t0081-line-buffer.sh | patch | blob | history | |
test-line-buffer.c | patch | blob | history |
diff --git a/t/t0081-line-buffer.sh b/t/t0081-line-buffer.sh
index 13ac735b550777447c2969e56b9973306aad434c..68d616399548effd6285d26278eee29aa33f245d 100755 (executable)
--- a/t/t0081-line-buffer.sh
+++ b/t/t0081-line-buffer.sh
test_expect_success 'read greeting' '
echo HELLO >expect &&
test-line-buffer <<-\EOF >actual &&
- read 5
+ read 6
HELLO
EOF
test_cmp expect actual
'
test_expect_success '0-length read, send along greeting' '
- printf "%s\n" "" HELLO >expect &&
+ echo HELLO >expect &&
test-line-buffer <<-\EOF >actual &&
read 0
-
- copy 5
+ copy 6
HELLO
EOF
test_cmp expect actual
'
-test_expect_success 'buffer_read_string copes with trailing null byte' '
- echo >expect &&
+test_expect_success 'buffer_read_string copes with null byte' '
+ >expect &&
q_to_nul <<-\EOF | test-line-buffer >actual &&
- read 1
+ read 2
Q
EOF
test_cmp expect actual
'
-test_expect_success '0-length read, copy null byte' '
- printf "%s\n" "" Q | q_to_nul >expect &&
+test_expect_success 'skip, copy null byte' '
+ echo Q | q_to_nul >expect &&
q_to_nul <<-\EOF | test-line-buffer >actual &&
- read 0
-
- copy 1
+ skip 2
+ Q
+ copy 2
Q
EOF
test_cmp expect actual
'
test_expect_success 'long reads are truncated' '
- printf "%s\n" foo "" >expect &&
+ echo foo >expect &&
test-line-buffer <<-\EOF >actual &&
read 5
foo
test_expect_success 'long copies are truncated' '
printf "%s\n" "" foo >expect &&
test-line-buffer <<-\EOF >actual &&
- read 0
+ read 1
copy 5
foo
diff --git a/test-line-buffer.c b/test-line-buffer.c
index 383f35bba6422e29099745f7e9c1f5d2b35e5cc7..da0bc6502cd609814035083f3bc4bde8a598629d 100644 (file)
--- a/test-line-buffer.c
+++ b/test-line-buffer.c
@@ -19,14 +19,18 @@ static void handle_command(const char *command, const char *arg, struct line_buf
switch (*command) {
case 'c':
if (!prefixcmp(command, "copy ")) {
- buffer_copy_bytes(buf, strtouint32(arg) + 1);
+ buffer_copy_bytes(buf, strtouint32(arg));
return;
}
case 'r':
if (!prefixcmp(command, "read ")) {
const char *s = buffer_read_string(buf, strtouint32(arg));
- printf("%s\n", s);
- buffer_skip_bytes(buf, 1); /* consume newline */
+ fputs(s, stdout);
+ return;
+ }
+ case 's':
+ if (!prefixcmp(command, "skip ")) {
+ buffer_skip_bytes(buf, strtouint32(arg));
return;
}
default: