#!/bin/sh

# SUSv3 compliant sed tests.
# Copyright 2005 by Rob Landley <rob@landley.net>
# Licensed under GPL v2, see file LICENSE for details.

. ./testing.sh

# testing "description" "arguments" "result" "infile" "stdin"

# Corner cases
testing "sed no files (stdin)" 'sed ""' "hello\n" "" "hello\n"
testing "sed explicit stdin" 'sed "" -' "hello\n" "" "hello\n"
testing "sed handles empty lines" "sed -e 's/\$/@/'" "@\n" "" "\n"
testing "sed stdin twice" 'sed "" - -' "hello" "" "hello"

# Trailing EOF.
#	Match $, at end of each file or all files?

# -e corner cases
#	without -e
#	multiple -e
#		interact with a
#	-eee arg1 arg2 arg3
# -f corner cases
#	-e -f -e
# -n corner cases
#	no newline at EOF?
# -r corner cases
#	Just make sure it works.
# -i corner cases:
#	sed -i -
#	permissions
#	-i on a symlink
#	on a directory
#       With $ last-line test
# Continue with \
#       End of script with trailing \

# command list
testing "sed accepts blanks before command" "sed -e '1 d'" "" "" ""
testing "sed accepts newlines in -e" "sed -e 'i\
1
a\
3'" "1\n2\n3\n" "" "2\n"
testing "sed accepts multiple -e" "sed -e 'i\' -e '1' -e 'a\' -e '3'" \
	"1\n2\n3\n" "" "2\n"

# substitutions
testing "sed -n" "sed -n -e s/foo/bar/ -e s/bar/baz/" "" "" "foo\n"
testing "sed s//p" "sed -e s/foo/bar/p -e s/bar/baz/p" "bar\nbaz\nbaz\n" \
	"" "foo\n"
testing "sed -n s//p" "sed -ne s/abc/def/p" "def\n" "" "abc\n"
test x"$SKIP_KNOWN_BUGS" = x"" && {
testing "sed s//g (exhaustive)" "sed -e 's/[[:space:]]*/,/g'" ",1,2,3,4,5,\n" \
	"" "12345\n"
}
testing "sed s arbitrary delimiter" "sed -e 's woo boing '" "boing\n" "" "woo\n"
testing "sed s chains" "sed -e s/foo/bar/ -e s/bar/baz/" "baz\n" "" "foo\n"
testing "sed s chains2" "sed -e s/foo/bar/ -e s/baz/nee/" "bar\n" "" "foo\n"
testing "sed s [delimiter]" "sed -e 's@[@]@@'" "onetwo" "" "one@two"
testing "sed s with \\t (GNU ext)" "sed 's/\t/ /'" "one two" "" "one\ttwo"

# branch
testing "sed b (branch)" "sed -e 'b one;p;: one'" "foo\n" "" "foo\n"
testing "sed b (branch with no label jumps to end)" "sed -e 'b;p'" \
	"foo\n" "" "foo\n"

# test and branch
testing "sed t (test/branch)" "sed -e 's/a/1/;t one;p;: one;p'" \
	"1\n1\nb\nb\nb\nc\nc\nc\n" "" "a\nb\nc\n"
testing "sed t (test/branch clears test bit)" "sed -e 's/a/b/;:loop;t loop'" \
	"b\nb\nc\n" "" "a\nb\nc\n"
testing "sed T (!test/branch)" "sed -e 's/a/1/;T notone;p;: notone;p'" \
	"1\n1\n1\nb\nb\nc\nc\n" "" "a\nb\nc\n"

test x"$SKIP_KNOWN_BUGS" = x"" && {
# Normal sed end-of-script doesn't print "c" because n flushed the pattern
# space.  If n hits EOF, pattern space is empty when script ends.
# Query: how does this interact with no newline at EOF?
testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \
	"a\nb\nb\nc\n" "" "a\nb\nc\n"
# N does _not_ flush pattern space, therefore c is still in there @ script end.
testing "sed N (doesn't flush pattern space when terminating)" "sed -e 'N;p'" \
	"a\nb\na\nb\nc\n" "" "a\nb\nc\n"
}
testing "sed address match newline" 'sed "/b/N;/b\\nc/i woo"' \
	"a\nwoo\nb\nc\nd\n" "" "a\nb\nc\nd\n"

# Multiple lines in pattern space
testing "sed N (stops at end of input) and P (prints to first newline only)" \
	"sed -n 'N;P;p'" "a\na\nb\n" "" "a\nb\nc\n"

# Hold space
testing "sed G (append hold space to pattern space)" 'sed G' "a\n\nb\n\nc\n\n" \
	"" "a\nb\nc\n"
#testing "sed g/G (swap/append hold and patter space)"
#testing "sed g (swap hold/pattern space)"

testing "sed d ends script iteration" \
	"sed -e '/ook/d;s/ook/ping/p;i woot'" "" "" "ook\n"
testing "sed d ends script iteration (2)" \
	"sed -e '/ook/d;a\' -e 'bang'" "woot\nbang\n" "" "ook\nwoot\n"

# Multiple files, with varying newlines and NUL bytes
test x"$SKIP_KNOWN_BUGS" = x"" && {
testing "sed embedded NUL" "sed -e 's/woo/bang/'" "\0bang\0woo\0" "" \
	"\0woo\0woo\0"
}
testing "sed embedded NUL g" "sed -e 's/woo/bang/g'" "bang\0bang\0" "" \
	"woo\0woo\0"
test x"$SKIP_KNOWN_BUGS" = x"" && {
echo -e "/woo/a he\0llo" > sed.commands
testing "sed NUL in command" "sed -f sed.commands" "woo\nhe\0llo\n" "" "woo"
rm sed.commands
}

# sed has funky behavior with newlines at the end of file.  Test lots of
# corner cases with the optional newline appending behavior.

testing "sed normal newlines" "sed -e 's/woo/bang/' input -" "bang\nbang\n" \
	"woo\n" "woo\n"
testing "sed leave off trailing newline" "sed -e 's/woo/bang/' input -" \
	"bang\nbang" "woo\n" "woo"
testing "sed autoinsert newline" "sed -e 's/woo/bang/' input -" "bang\nbang" \
	"woo" "woo"
testing "sed empty file plus cat" "sed -e 's/nohit//' input -" "one\ntwo" \
	"" "one\ntwo"
testing "sed cat plus empty file" "sed -e 's/nohit//' input -" "one\ntwo" \
	"one\ntwo" ""
test x"$SKIP_KNOWN_BUGS" = x"" && {
testing "sed append autoinserts newline" "sed -e '/woot/a woo' -" \
	"woot\nwoo\n" "" "woot"
}
testing "sed insert doesn't autoinsert newline" "sed -e '/woot/i woo' -" \
	"woo\nwoot" "" "woot"
testing "sed print autoinsert newlines" "sed -e 'p' -" "one\none" "" "one"
testing "sed print autoinsert newlines two files" "sed -e 'p' input -" \
	"one\none\ntwo\ntwo" "one" "two"
testing "sed noprint, no match, no newline" "sed -ne 's/woo/bang/' input" \
	"" "no\n" ""
testing "sed selective matches with one nl" "sed -ne 's/woo/bang/p' input -" \
	"a bang\nc bang\n" "a woo\nb no" "c woo\nd no"
testing "sed selective matches insert newline" \
	"sed -ne 's/woo/bang/p' input -" "a bang\nb bang\nd bang" \
	"a woo\nb woo" "c no\nd woo"
testing "sed selective matches noinsert newline" \
	"sed -ne 's/woo/bang/p' input -" "a bang\nb bang" "a woo\nb woo" \
	"c no\nd no"
test x"$SKIP_KNOWN_BUGS" = x"" && {
testing "sed clusternewline" \
	"sed -e '/one/a 111' -e '/two/i 222' -e p input -" \
	"one\none\n111\n222\ntwo\ntwo" "one" "two"
}
testing "sed subst+write" \
	"sed -e 's/i/z/' -e 'woutputw' input -; echo -n X; cat outputw" \
	"thzngy\nagaznXthzngy\nagazn" "thingy" "again"
rm outputw
testing "sed trailing NUL" \
	"sed 's/i/z/' input -" \
	"a\0b\0\nc" "a\0b\0" "c"
testing "sed escaped newline in command" \
	"sed 's/a/z\\
z/' input" \
	"z\nz" "a" ""

# Test end-of-file matching behavior

testing "sed match EOF" "sed -e '"'$p'"'" "hello\nthere\nthere" "" \
	"hello\nthere"
testing "sed match EOF two files" "sed -e '"'$p'"' input -" \
	"one\ntwo\nthree\nfour\nfour" "one\ntwo" "three\nfour"
# sed match EOF inline: gnu sed 4.1.5 outputs this:
#00000000  6f 6e 65 0a 6f 6f 6b 0a  6f 6f 6b 0a 74 77 6f 0a  |one.ook.ook.two.|
#00000010  0a 74 68 72 65 65 0a 6f  6f 6b 0a 6f 6f 6b 0a 66  |.three.ook.ook.f|
#00000020  6f 75 72                                          |our|
# which looks buggy to me.
$ECHO -ne "three\nfour" > input2
testing "sed match EOF inline" \
	"sed -e '"'$i ook'"' -i input input2 && cat input input2" \
	"one\nook\ntwothree\nook\nfour" "one\ntwo" ""
rm input2

# Test lie-to-autoconf

testing "sed lie-to-autoconf" "sed --version | grep -o 'GNU sed version '" \
	"GNU sed version \n" "" ""

# Jump to nonexistent label
test x"$SKIP_KNOWN_BUGS" = x"" && {
# Incompatibility: illegal jump is not detected if input is ""
# (that is, no lines at all). GNU sed 4.1.5 complains even in this case
testing "sed nonexistent label" "sed -e 'b walrus' 2>/dev/null || echo yes" \
	"yes\n" "" ""
}

testing "sed backref from empty s uses range regex" \
	"sed -e '/woot/s//eep \0 eep/'" "eep woot eep" "" "woot"

testing "sed backref from empty s uses range regex with newline" \
	"sed -e '/woot/s//eep \0 eep/'" "eep woot eep\n" "" "woot\n"

# -i with no filename

touch ./-  # Detect gnu failure mode here.
testing "sed -i with no arg [GNUFAIL]" "sed -e '' -i 2> /dev/null || echo yes" \
	"yes\n" "" ""
rm ./-     # Clean up

testing "sed s/xxx/[/" "sed -e 's/xxx/[/'" "[\n" "" "xxx\n"

# Ponder this a bit more, why "woo not found" from gnu version?
#testing "sed doesn't substitute in deleted line" \
#	"sed -e '/ook/d;s/ook//;t woo;a bang;'" "bang" "" "ook\n"

# This makes both seds very unhappy.  Why?
#testing "sed -g (exhaustive)" "sed -e 's/[[:space:]]*/,/g'" ",1,2,3,4,5," \
#	"" "12345"

# testing "description" "arguments" "result" "infile" "stdin"

testing "sed n command must reset 'substituted' bit" \
	"sed 's/1/x/;T;n;: next;s/3/y/;t quit;n;b next;: quit;q'" \
	"0\nx\n2\ny\n" "" "0\n1\n2\n3\n"

testing "sed d does not break n,m matching" \
	"sed -n '1d;1,3p'" \
	"second\nthird\n" "" "first\nsecond\nthird\nfourth\n"

testing "sed d does not break n,regex matching" \
	"sed -n '1d;1,/hir/p'" \
	"second\nthird\n" "" "first\nsecond\nthird\nfourth\n"

testing "sed d does not break n,regex matching #2" \
	"sed -n '1,5d;1,/hir/p'" \
	"second2\nthird2\n" "" \
	"first\nsecond\nthird\nfourth\n""first2\nsecond2\nthird2\nfourth2\n"

testing "sed 2d;2,1p (gnu compat)" \
	"sed -n '2d;2,1p'" \
	"third\n" "" \
	"first\nsecond\nthird\nfourth\n"

# Regex means: "match / at BOL or nothing, then one or more not-slashes".
# The bug was that second slash in /usr/lib was treated as "at BOL" too.
testing "sed beginning (^) matches only once" \
	"sed 's,\(^/\|\)[^/][^/]*,>\0<,g'" \
	">/usr</>lib<\n" "" \
	"/usr/lib\n"

testing "sed c" \
	"sed 'crepl'" \
	"repl\nrepl\n" "" \
	"first\nsecond\n"

testing "sed nested {}s" \
	"sed '/asd/ { p; /s/ { s/s/c/ }; p; q }'" \
	"qwe\nasd\nacd\nacd\n" "" \
	"qwe\nasd\nzxc\n"

testing "sed a cmd ended by double backslash" \
	"sed -e '/| one /a \\
	| three \\\\' -e '/| one-/a \\
	| three-* \\\\'" \
'	| one \\
	| three \\
	| two \\
' '' \
'	| one \\
	| two \\
'

# testing "description" "arguments" "result" "infile" "stdin"

exit $FAILCOUNT
