diff options
Diffstat (limited to 'testsuite/sed.tests')
-rwxr-xr-x | testsuite/sed.tests | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/testsuite/sed.tests b/testsuite/sed.tests index 3301a25f8..61551e31c 100755 --- a/testsuite/sed.tests +++ b/testsuite/sed.tests | |||
@@ -80,10 +80,18 @@ test x"$SKIP_KNOWN_BUGS" = x"" && { | |||
80 | # Query: how does this interact with no newline at EOF? | 80 | # Query: how does this interact with no newline at EOF? |
81 | testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \ | 81 | testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \ |
82 | "a\nb\nb\nc\n" "" "a\nb\nc\n" | 82 | "a\nb\nb\nc\n" "" "a\nb\nc\n" |
83 | # N does _not_ flush pattern space, therefore c is still in there @ script end. | ||
84 | testing "sed N (doesn't flush pattern space when terminating)" "sed -e 'N;p'" \ | ||
85 | "a\nb\na\nb\nc\n" "" "a\nb\nc\n" | ||
86 | } | 83 | } |
84 | # non-GNU sed: N does _not_ flush pattern space, therefore c is eaten @ script end | ||
85 | # GNU sed: N flushes pattern space, therefore c is printed too @ script end | ||
86 | testing "sed N (flushes pattern space (GNU behavior))" "sed -e 'N;p'" \ | ||
87 | "a\nb\na\nb\nc\n" "" "a\nb\nc\n" | ||
88 | |||
89 | testing "sed N test2" "sed ':a;N;s/\n/ /;ta'" \ | ||
90 | "a b c\n" "" "a\nb\nc\n" | ||
91 | |||
92 | testing "sed N test3" "sed 'N;s/\n/ /'" \ | ||
93 | "a b\nc\n" "" "a\nb\nc\n" | ||
94 | |||
87 | testing "sed address match newline" 'sed "/b/N;/b\\nc/i woo"' \ | 95 | testing "sed address match newline" 'sed "/b/N;/b\\nc/i woo"' \ |
88 | "a\nwoo\nb\nc\nd\n" "" "a\nb\nc\nd\n" | 96 | "a\nwoo\nb\nc\nd\n" "" "a\nb\nc\nd\n" |
89 | 97 | ||
@@ -270,11 +278,16 @@ testing "sed a cmd ended by double backslash" \ | |||
270 | | two \\ | 278 | | two \\ |
271 | ' | 279 | ' |
272 | 280 | ||
273 | # fisrt three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges | 281 | # first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges |
274 | testing "sed with N skipping lines past ranges on next cmds" \ | 282 | testing "sed with N skipping lines past ranges on next cmds" \ |
275 | "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \ | 283 | "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \ |
276 | "4\n4\n" "" "1\n2\n3\n4\n" | 284 | "4\n4\n" "" "1\n2\n3\n4\n" |
277 | 285 | ||
286 | testing "sed -i with address modifies all files, not only first" \ | ||
287 | "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \ | ||
288 | "bar\nbar\n" "foo\n" "" | ||
289 | |||
290 | |||
278 | # testing "description" "arguments" "result" "infile" "stdin" | 291 | # testing "description" "arguments" "result" "infile" "stdin" |
279 | 292 | ||
280 | exit $FAILCOUNT | 293 | exit $FAILCOUNT |