mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-02 12:20:51 +00:00
Add more sanity tests for grep, egrep, and fgrep
The test suite currently lacks basic sanity checks to ensure that egrep, fgrep, and grep are actually matching the right expression types, i.e. passing the right flags to regcomp(3). Amend the test suite to make sure that not only are the individual versions doing the right thing, but also that we don't have some kind of frankenregex situation happening where egrep is accepting a BRE or grep an ERE. I've chosen to not expand the 'basic' test but to add the 'grep_sanity' checks to their own test case since this is testing for more than just 'grep matches things', but actual expression types. Differential Revision: D10444 Reviewed by: emaste, ngie Submitted by: Kyle Evans <kevans91@ksu.edu> Tested with: bsdgrep, gnu grep (base, ports) Sponsored by: Dell EMC Isilon
This commit is contained in:
parent
3be4e97d2b
commit
5199917cc6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=317299
@ -379,6 +379,66 @@ zerolen_body()
|
||||
|
||||
atf_check -o inline:"Eggs\nCheese\n" grep -v -e "^$" test1
|
||||
}
|
||||
|
||||
atf_test_case fgrep_sanity
|
||||
fgrep_sanity_head()
|
||||
{
|
||||
atf_set "descr" "Check for fgrep sanity, literal expressions only"
|
||||
}
|
||||
fgrep_sanity_body()
|
||||
{
|
||||
printf "Foo" > test1
|
||||
|
||||
atf_check -o inline:"Foo\n" fgrep -e "Foo" test1
|
||||
|
||||
atf_check -s exit:1 -o empty fgrep -e "Fo." test1
|
||||
}
|
||||
|
||||
atf_test_case egrep_sanity
|
||||
egrep_sanity_head()
|
||||
{
|
||||
atf_set "descr" "Check for egrep sanity, EREs only"
|
||||
}
|
||||
egrep_sanity_body()
|
||||
{
|
||||
printf "Foobar(ed)" > test1
|
||||
printf "M{1}" > test2
|
||||
|
||||
atf_check -o inline:"Foo\n" egrep -o -e "F.." test1
|
||||
|
||||
atf_check -o inline:"Foobar\n" egrep -o -e "F[a-z]*" test1
|
||||
|
||||
atf_check -o inline:"Fo\n" egrep -o -e "F(o|p)" test1
|
||||
|
||||
atf_check -o inline:"(ed)\n" egrep -o -e "\(ed\)" test1
|
||||
|
||||
atf_check -o inline:"M\n" egrep -o -e "M{1}" test2
|
||||
|
||||
atf_check -o inline:"M{1}\n" egrep -o -e "M\{1\}" test2
|
||||
}
|
||||
|
||||
atf_test_case grep_sanity
|
||||
grep_sanity_head()
|
||||
{
|
||||
atf_set "descr" "Check for basic grep sanity, BREs only"
|
||||
}
|
||||
grep_sanity_body()
|
||||
{
|
||||
printf "Foobar(ed)" > test1
|
||||
printf "M{1}" > test2
|
||||
|
||||
atf_check -o inline:"Foo\n" grep -o -e "F.." test1
|
||||
|
||||
atf_check -o inline:"Foobar\n" grep -o -e "F[a-z]*" test1
|
||||
|
||||
atf_check -o inline:"Fo\n" grep -o -e "F\(o\)" test1
|
||||
|
||||
atf_check -o inline:"(ed)\n" grep -o -e "(ed)" test1
|
||||
|
||||
atf_check -o inline:"M{1}\n" grep -o -e "M{1}" test2
|
||||
|
||||
atf_check -o inline:"M\n" grep -o -e "M\{1\}" test2
|
||||
}
|
||||
# End FreeBSD
|
||||
|
||||
atf_init_test_cases()
|
||||
@ -407,5 +467,8 @@ atf_init_test_cases()
|
||||
atf_add_test_case escmap
|
||||
atf_add_test_case egrep_empty_invalid
|
||||
atf_add_test_case zerolen
|
||||
atf_add_test_case fgrep_sanity
|
||||
atf_add_test_case egrep_sanity
|
||||
atf_add_test_case grep_sanity
|
||||
# End FreeBSD
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user