aboutsummaryrefslogtreecommitdiff
path: root/testsuite/sed.tests
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/sed.tests')
-rwxr-xr-xtestsuite/sed.tests21
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?
81testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \ 81testing "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.
84testing "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
86testing "sed N (flushes pattern space (GNU behavior))" "sed -e 'N;p'" \
87 "a\nb\na\nb\nc\n" "" "a\nb\nc\n"
88
89testing "sed N test2" "sed ':a;N;s/\n/ /;ta'" \
90 "a b c\n" "" "a\nb\nc\n"
91
92testing "sed N test3" "sed 'N;s/\n/ /'" \
93 "a b\nc\n" "" "a\nb\nc\n"
94
87testing "sed address match newline" 'sed "/b/N;/b\\nc/i woo"' \ 95testing "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
274testing "sed with N skipping lines past ranges on next cmds" \ 282testing "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
286testing "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
280exit $FAILCOUNT 293exit $FAILCOUNT