#!/bin/echo Run scripts/test.sh

#testing "name" "command" "result" "infile" "stdin"

testing 'sed as cat' 'sed ""' "one\ntwo\nthree" "" "one\ntwo\nthree"
# This segfaults ubuntu 12.04's sed. No really.
SKIP_HOST=1 testing 'sed - - twice' 'sed "" - -' "hello\n" "" "hello\n"
testing 'sed -n' 'sed -n ""' "" "" "one\ntwo\nthree"
testing 'sed -n p' 'sed -n p' "one\ntwo\nthree" "" "one\ntwo\nthree"
testing 'sed explicit pattern' 'sed -e p -n' "one\ntwo\nthree" "" \
	"one\ntwo\nthree"

# Exploring the wonders of sed addressing modes
testing '' 'sed -n 1p' "one\n" "" "one\ntwo\nthree"
testing '' 'sed 2p' "one\ntwo\ntwo\nthree" "" "one\ntwo\nthree"
testing '' 'sed -n 2p' "two\n" "" "one\ntwo\nthree"
testing 'sed -n $p' 'sed -n \$p' "three" "" "one\ntwo\nthree"
testing 'sed as cat #2' "sed -n '1,\$p'" "one\ntwo\nthree" "" "one\ntwo\nthree"
testing 'sed no input means no last line' "sed '\$a boing'" "" "" ""
testing 'sed -n $,$p' 'sed -n \$,\$p' 'three' '' 'one\ntwo\nthree'
testing '' 'sed -n 1,2p' "one\ntwo\n" "" "one\ntwo\nthree"
testing '' 'sed -n 2,3p' "two\nthree" "" "one\ntwo\nthree"
testing '' 'sed -n 2,1p' "two\n" "" "one\ntwo\nthree"
testing 'sed $ with 2 inputs' 'sed -n \$p - input' "four\n" "four\n" \
	"one\ntwo\nthree"
testing '' 'sed -n /two/p' "two\n" "" "one\ntwo\nthree"
testing '' 'sed -n 1,/two/p' 'one\ntwo\n' '' 'one\ntwo\nthree'
testing '' 'sed -n /one/,2p' 'one\ntwo\n' '' 'one\ntwo\nthree'
testing '' 'sed -n 1,/one/p' 'one\ntwo\nthree' '' 'one\ntwo\nthree'
testing '' 'sed -n /one/,1p' 'one\n' '' 'one\ntwo\nthree'
testing 'sed -n /two/,$p' 'sed -n /two/,\$p' 'two\nthree' '' 'one\ntwo\nthree'


# Fun with newlines!
testing '' 'sed -n 3p' "three" "" "one\ntwo\nthree"
testing 'sed prodigal newline' "sed -n '1,\$p' - input" \
	"one\ntwo\nthree\nfour\n" "four\n" "one\ntwo\nthree"
testing 'sed Newline only added if further output' "sed -n 3p - input" "three" \
	"four\n" "one\ntwo\nthree"

# Fun with match delimiters and escapes
testing 'sed match \t tab' "sed -n '/\t/p'" "\tx\n" "" "\tx\n"
testing 'sed match t delim disables \t tab' "sed -n '\t\txtp'" "" "" "\tx\n"
testing 'sed match t delim makes \t literal t' \
	"sed -n '\t\txtp'" "tx\n" "" "tx\n"
testing 'sed match n delim' "sed -n '\n\txnp'" "\tx\n" "" "\tx\n"
testing 'sed match n delim disables \n newline' "sed -n '\n\nxnp'" "" "" "\nx\n"
SKIP_HOST=1 testing 'sed match \n literal n' "sed -n '\n\nxnp'" "nx\n" "" "nx\n"
testing 'sed end match does not check starting match line' \
	"sed -n '/two/,/two/p'" "two\nthree" "" "one\ntwo\nthree"
testing 'sed end match/start match mixing number/letter' \
	"sed -n '2,/two/p'" "two\nthree" "" "one\ntwo\nthree"
testing 'sed num then regex' 'sed -n 2,/d/p' 'b\nc\nd\n' '' 'a\nb\nc\nd\ne\nf\n'
testing 'sed regex then num' 'sed -n /b/,4p' 'b\nc\nd\n' '' 'a\nb\nc\nd\ne\nf\n'
testing 'sed multiple regex address match' 'sed -n /on/,/off/p' \
	'bone\nturtle\scoff\ntron\nlurid\noffer\n'  "" \
	'zap\nbone\nturtle\scoff\nfred\ntron\nlurid\noffer\nbecause\n'
testing 'sed regex address overlap' 'sed -n /on/,/off/p' "on\nzap\noffon\n" "" \
	'on\nzap\noffon\nping\noff\n'

# gGhHlnNpPqrstwxy:=
# s///#comment
# abcdDi

testing 'sed prodigaler newline' 'sed -e a\\ -e woo' 'one\nwoo\n' '' 'one'
testing "aci" \
	"sed -e '3a boom' -e '/hre/i bang' -e '3a whack' -e '3c bong'" \
	"one\ntwo\nbang\nbong\nboom\nwhack\nfour\n" "" \
	"one\ntwo\nthree\nfour\n"
testing "b loop" "sed ':woo;=;b woo' | head -n 5" '1\n1\n1\n1\n1\n' "" "X"
testing "b skip" "sed -n '2b zap;d;:zap;p'" "two\n" "" "one\ntwo\nthree"
testing "b end" "sed -n '2b;p'" "one\nthree" "" "one\ntwo\nthree"
testing "c range" "sed '2,4c blah'" "one\nblah\nfive\nsix" "" \
	"one\ntwo\nthree\nfour\nfive\nsix"
testing "c {range}" "sed -e '2,4{c blah' -e '}'" \
	"one\nblah\nblah\nblah\nfive\nsix" \
        "" "one\ntwo\nthree\nfour\nfive\nsix"
testing "c multiple continuation" \
	"sed -e 'c\\' -e 'two\\' -e ''" "two\n\n" "" "hello"
# NOTE: will print 'unfinished c' to stderr and exit 1
testing "c empty continuation" \
	"sed -e 'c\\'" "" "" "hello"
testing "D further processing depends on whether line is blank" \
	"sed -e '/one/,/three/{' -e 'i meep' -e'N;2D;}'" \
	"meep\nmeep\ntwo\nthree\n" "" "one\ntwo\nthree\n"
testing 'sed newline staying away' 'sed s/o/x/' 'xne\ntwx' '' 'one\ntwo'

# Why on _earth_ is this not an error? There's a \ with no continuation!
#testing 'sed what, _really_?' 'sed -e a\\ && echo yes really' \
#	'one\nyes really\n' '' 'one\n'

# all the s/// test

testing "match empty line" "sed -e 's/^\$/@/'" "@\n" "" "\n"

testing 'sed \1' "sed 's/t\\(w\\)o/za\\1py/'" "one\nzawpy\nthree" "" \
	"one\ntwo\nthree"
testing 'sed \1 p' "sed 's/t\\(w\\)o/za\\1py/p'" "one\nzawpy\nzawpy\nthree" \
	"" "one\ntwo\nthree"
testing 'sed \1 no newline' "sed 's/t\\(w\\)o/za\\1py/'" "one\nzawpy" "" \
	"one\ntwo"
testing 'sed \1 p no newline' "sed 's/t\\(w\\)o/za\\1py/p'" \
	"one\nzawpy\nzawpy" "" "one\ntwo"
testing 'sed -n s//\1/p' "sed -n 's/t\\(w\\)o/za\\1py/p'" "zawpy" "" "one\ntwo"
testing 'sed -n s//\1/p no newline' "sed -n 's/t\\(w\\)o/za\\1py/p'" "zawpy" \
	"" "one\ntwo"
testing 'sed backref error' \
	"sed 's/w/ale \2 ha/' >/dev/null 2>/dev/null || echo no" \
	"no\n" "" "one\ntwo\nthree"
testing 'sed empty match after nonempty match' "sed -e 's/a*/c/g'" 'cbcncgc' \
	'' 'baaang'
testing 'sed empty match' "sed -e 's/[^ac]*/A/g'" 'AaAcA' '' 'abcde'
testing 'sed s///#comment' "sed -e 's/TWO/four/i#comment'" "one\nfour\nthree" \
	"" "one\ntwo\nthree"

testing 'sed N flushes pending a and advances match counter' \
	"sed -e 'a woo' -e 'N;\$p'" 'woo\none\ntwo\none\ntwo' "" 'one\ntwo'
testing "delimiter in regex [char range] doesn't count" "sed -e 's/[/]//'" \
	"onetwo\n" "" 'one/two\n'
testing "delete regex range start line after trigger" \
	"sed -e '/one/,/three/{' -e 'i meep' -e '1D;}'" \
	"meep\nmeep\ntwo\nmeep\nthree" "" "one\ntwo\nthree"
testing "blank pattern repeats last pattern" \
	"sed -e '/^three/s//abc&def/'" \
	"one two three\nabcthreedef four five\nfive six seven\n" "" \
	"one two three\nthree four five\nfive six seven\n"

# Different ways of parsing line continuations

testing "" "sed -e '1a\' -e 'huh'" "meep\nhuh\n" "" "meep"
testing "" "sed -f input" "blah\nboom\n" '1a\\\nboom' 'blah'
testing "" "sed '1a\
hello'" "merp\nhello\n" "" "merp"

testing "" "sed -e '/x/c\' -e 'y'" 'y\n' '' 'x\n'
testing "" "sed -e 's/a[([]*b/X/'" 'X' '' 'a[(b'
testing "" "sed 'y/a\\bc/de\f/'" "db\f" "" "abc"
testing "[a-a] (for perl)" "sed '"'s/\([^a-zA-Z0-9.:_\-\/]\)/\\\1/g'"'" \
  'he\ llo' "" "he llo"

# You have to match the first line of a range in order to activate
# the range, numeric and ascii work the same way
testing "skip start of range" "sed -e n -e '1,2s/b/c/'" "a\nb\n" "" "a\nb\n"

#echo meep | sed/sed -e '1a\' -e 'huh'
#echo blah | sed/sed -f <(echo -e "1a\\\\\nboom")
#echo merp | sed/sed "1a\\
#hello"

testing "bonus backslashes" \
  "sed -e 'a \l \x\' -e \"\$(echo -e 'ab\\\nc')\"" \
  "hello\nl x\nab\nc\n" "" "hello\n"
# -i with $ last line test
