"this is test\nthis is test2\ntest case" ""
testing "grep -o" "grep -o is input" "is\nis\nis\nis\n" \
"this is test\nthis is test2\ntest case" ""
-testing "grep -s" "grep -s hello asdf 2>&1" "" "" ""
+testing "grep -s" "grep -hs hello asdf input 2>&1" "hello\n" "hello\n" ""
testing "grep -v" "grep -v abc input" "1234123asdfas123123\n1ABa\n" \
"1234123asdfas123123\n1ABabc\nabc\n1ABa\nabcde" ""
testing "grep -w" "grep -w abc input" "abc\n" \
"1234123asdfas123123\n1ABabc\nabc\n1ABa\nabcde" ""
+testing "grep -x" "grep -x abc input" "abc\n" \
+ "aabcc\nabc\n" ""
+
+testing "grep -H (standard input)" "grep -H abc" "(standard input):abc\n" \
+ "" "abc\n"
+testing "grep -l (standard input)" "grep -l abc" "(standard input)\n" \
+ "" "abc\n"
+testing "grep -n two inputs" "grep -hn def - input" "2:def\n2:def\n" \
+ "abc\ndef\n" "abc\ndef\n"
+
+testing "grep pattern with newline" "grep 'abc
+def' input" "aabcc\nddeff\n" \
+ "aaaa\naabcc\n\dddd\nddeff\nffff\n" ""
+
+testing "grep -lH" "grep -lH abc input" "input\n" "abc\n" ""
+testing "grep -cn" "grep -cn abc input" "1\n" "abc\n" ""
+testing "grep -qs" "grep -qs abc none input && echo yes" "yes\n" "abc\n" ""
+testing "grep -hl" "grep -hl abc input" "input\n" "abc\n" ""
+testing "grep -b stdin" "grep -b one" "0:one\n4:one\n8:one\n" "" "one\none\none\n"
+testing "grep -o overlap" "grep -bo aaa" "1:aaa\n" "" "baaaa\n"
+testing "grep -co" "grep -co one input" "3\n" "one one one\n" ""
+testing "grep -nom" "grep -nom 2 one" "1:one\n1:one\n1:one\n2:one\n2:one\n" \
+ "" "one one one\none one\none"
+testing "grep -vo" "grep -vo one input" "twothree\n" "onetwoonethreeone\n" ""
+testing "grep no newline" "grep -h one input -" \
+ "hello one\nthere one\n" "hello one" "there one"