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

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

testing 'as cat' 'sed ""' "one\ntwo\nthree" "" "one\ntwo\nthree"
# This segfaults ubuntu 12.04's sed. No really.
testing 'sed - - twice' 'sed "" - -' "hello\n" "" "hello\n"
testing '-n' 'sed -n ""' "" "" "one\ntwo\nthree"
testing '-n p' 'sed -n p' "one\ntwo\nthree" "" "one\ntwo\nthree"
testing '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 '-n $p' 'sed -n \$p' "three" "" "one\ntwo\nthree"
testing 'as cat #2' "sed -n '1,\$p'" "one\ntwo\nthree" "" "one\ntwo\nthree"
testing 'no input means no last line' "sed '\$a boing'" "" "" ""
testing '-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 '$ 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 'prodigal newline' "sed -n '1,\$p' - input" \
	"one\ntwo\nthree\nfour\n" "four\n" "one\ntwo\nthree"
testing 'Newline only added if further output' "sed -n 3p - input" "three" \
	"four\n" "one\ntwo\nthree"

# Fun with match delimiters and escapes
testing 'match \t tab' "sed -n '/\t/p'" "\tx\n" "" "\tx\n"
testing 'match t delim disables \t tab' "sed -n '\t\txtp'" "" "" "\tx\n"
testing 'match t delim makes \t literal t' \
	"sed -n '\t\txtp'" "tx\n" "" "tx\n"
testing 'match n delim' "sed -n '\n\txnp'" "\tx\n" "" "\tx\n"
testing 'match n delim disables \n newline' "sed -n '\n\nxnp'" "" "" "\nx\n"
toyonly testing 'match \n literal n' "sed -n '\n\nxnp'" "nx\n" "" "nx\n"
testing 'end match does not check starting match line' \
	"sed -n '/two/,/two/p'" "two\nthree" "" "one\ntwo\nthree"
testing 'end match/start match mixing number/letter' \
	"sed -n '2,/two/p'" "two\nthree" "" "one\ntwo\nthree"
testing 'num then regex' 'sed -n 2,/d/p' 'b\nc\nd\n' '' 'a\nb\nc\nd\ne\nf\n'
testing 'regex then num' 'sed -n /b/,4p' 'b\nc\nd\n' '' 'a\nb\nc\nd\ne\nf\n'
testing '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 'regex address overlap' 'sed -n /on/,/off/p' "on\nzap\noffon\n" "" \
	'on\nzap\noffon\nping\noff\n'
testing 'getdelim with nested [:blah:]' 'sed -n "sa\a[a[:space:]bc]*aXXagp"' \
	"ABXXCDXXEFXXGHXXIXX" "" "ABaaCDa EFaa aGHa a Ia "
testing '[ in [[]' "sed 's@[[]@X@g'" "X" "" "["
testing '[[] with ] as delimiter' "sed 's][[]]X]g'" "X" "" "["
testing '[[] with [ as delimiter' "sed 's[\[\[][X['" "X" "" "["

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

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

testing '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 -f - input" "blah\nboom\n" 'blah' '1a\\\nboom'
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'
toyonly 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"

# Debian bug https://bugs.debian.org/635570 added code to ensure a file
# ends with a newline via "sed -e '$a\'". Apparently all a\ with no additional
# pattern lines after it does (other than making posix throw up) is
# flush the pending newline as _if_ it had added another line. *shrug* Ok?
testing "trailing a\ (for debian)" "sed 'a\\'" "hello\n" "" "hello"

# You have to match the first line of a range in order to activate
# the range, numeric and ascii work the same way
toyonly testing "skip start of range" "sed -e n -e '1,2s/b/c/'" "a\nb\n" "" "a\nb\n"
testing "range +1" "sed -ne '/blah/,+1p'" "blah\n6\n" "" \
  "1\n2\n3\n4\n5\nblah\n6\n7\n8\n9\n"
testing "range +0" "sed -ne '/blah/,+0p'" "blah\n" "" \
  "1\n2\n3\n4\n5\nblah\n6\n7\n8\n9\n"
testing "range +3" "sed -ne '2,+3p'" "2\n3\n4\n5\n" "" \
  "1\n2\n3\n4\n5\nblah\n6\n7\n8\n9\n"

testing "not -s" "sed -n 1p input -" "one" "one" "two"
testing "-s" "sed -sn 1p input -" "one\ntwo" "one\n" "two"

#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"

# toybox saying "no }" here broke the AOSP build.
testing "end b with }" "sed -n '/START/{:a;n;/END/q;p;ba}'" "b\nc\n" \
  "" "a\nSTART\nb\nc\nEND\nd"

testing '-z' 'sed -z "s/\n/-/g"' "a-b-c" "" "a\nb\nc"

# toybox handling of empty capturing groups broke minjail. Check that we
# correctly replace an empty capturing group with the empty string:
testing '\n with empty capture' \
    'sed -E "s/(ARM_)?(NR_)([a-z]*) (.*)/\1\2\3/"' "NR_read" "" "NR_read foo"
# ...but also that we report an error for a backreference to a group that
# isn't in the pattern:
testing '\n too high' \
    'sed -E "s/(.*)/\2/p" 2>/dev/null || echo OK' "OK\n" "" "foo"

# Performance test
X=x; Y=20; while [ $Y -gt 0 ]; do X=$X$X; Y=$(($Y-1)); done
testing 'megabyte s/x/y/g (20 sec timeout)' \
  "timeout 20 sed 's/x/y/g' | sha1sum" \
  '138c1fa7c3f64186203b0192fb4abdb33cb4e98a  -\n' '' "$X\n"
unset X Y

testing 's i and I' 'sed s/o/0/ig' "f00l F00L" "" "fool FOOL"

# -i with $ last line test
