diff options
author | Darren Tucker <dtucker@dtucker.net> | 2021-09-24 08:04:14 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2021-09-24 08:06:48 +1000 |
commit | f7039541570d4b66d76e6f574544db176d8d5c02 (patch) | |
tree | 416f9d064ac1041cd64f74d8db2365215e2ef118 | |
parent | f6a660e5bf28a01962af87568e118a2d2e79eaa0 (diff) |
Replacement function for buggy fgrep.
GNU (f)grep <=2.18, as shipped by FreeBSD<=12 and NetBSD<=9 will
occasionally fail to find ssh host keys in the hostkey-rotate test.
If we have those versions, use awk instead.
-rw-r--r-- | regress/test-exec.sh | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/regress/test-exec.sh b/regress/test-exec.sh index 415422ef..5fcc3fcf 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh @@ -79,6 +79,25 @@ if test "x${EGREP}" != "x"; then } fi +# +# GNU (f)grep <=2.18, as shipped by FreeBSD<=12 and NetBSD<=9 will occasionally +# fail to find ssh host keys in the hostkey-rotate test. If we have those +# versions, use awk instead. +# See # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258616 +# +case `grep --version 2>&1 | awk '/GNU grep/{print $4}'` in +2.19) fgrep=good ;; +1.*|2.?|2.?.?|2.1?) fgrep=bad ;; # stock GNU grep +2.5.1*) fgrep=bad ;; # FreeBSD and NetBSD +*) fgrep=good ;; +esac +if test "x$fgrep" = "xbad"; then + fgrep() +{ + awk 'BEGIN{e=1} {if (index($0,"'$1'")>0){e=0;print}} END{exit e}' $2 +} +fi + SRC=`dirname ${SCRIPT}` # defaults |