[PATCH 02 of 10] tests: use grep -F instead of obsolescent fgrep

Mads Kiilerich mads at kiilerich.com
Wed Jun 28 00:06:47 UTC 2023


# HG changeset patch
# User Mads Kiilerich <mads at kiilerich.com>
# Date 1687784040 -7200
#      Mon Jun 26 14:54:00 2023 +0200
# Branch stable
# Node ID 141a32ae6e30dc9bdf0e742f240734afa37f3054
# Parent  2790b07cd5da2be40fd5299ae114a49eb6196e55
tests: use grep -F instead of obsolescent fgrep

Testing on Fedora 38 failed with:
  fgrep: warning: fgrep is obsolescent; using grep -F

The warning comes from
https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1
. For further anecdotal evidence of the change, see
https://www.phoronix.com/news/GNU-Grep-3.8-Stop-egrep-fgrep .

grep -F is POSIX, but there is a risk that it doesn't work the same on all
platforms - especially older Unix versions. It should however always be
possible to put a GNU grep in $PATH before running the tests.

diff --git a/contrib/check-code.py b/contrib/check-code.py
--- a/contrib/check-code.py
+++ b/contrib/check-code.py
@@ -147,6 +147,7 @@ testpats = [
             '[ foo == bar ] is a bashism, use [ foo = bar ] instead',
         ),
         (r'(^|\|\s*)egrep', "use grep -E for extended grep syntax"),
+        (r'(^|\|\s*)fgrep', "use grep -F for fixed string grepping"),
         (r'(^|\|\s*)e?grep .*\\S', "don't use \\S in regular expression"),
         (r'(?<!!)/bin/', "don't use explicit paths for tools"),
         (r'#!.*/bash', "don't use bash in shebang, use sh"),
diff --git a/tests/test-bookflow.t b/tests/test-bookflow.t
--- a/tests/test-bookflow.t
+++ b/tests/test-bookflow.t
@@ -230,17 +230,17 @@ test shelving
 make the bookmark move by updating it on a, and then pulling with a local change
 # add a commit to a
   $ cd ../a
-  $ hg up -C X |fgrep  "activating bookmark X"
+  $ hg up -C X |grep -F  "activating bookmark X"
   (activating bookmark X)
 # go back to b, and check out X
   $ cd ../b
-  $ hg up -C X |fgrep  "activating bookmark X"
+  $ hg up -C X |grep -F  "activating bookmark X"
   (activating bookmark X)
 # update and push from a
   $ make_changes ../a
   created new head
   $ echo "more" >> test
-  $ hg pull -u 2>&1 | fgrep -v TESTTMP| fgrep -v "searching for changes" | fgrep -v adding
+  $ hg pull -u 2>&1 | grep -F -v TESTTMP| grep -F -v "searching for changes" | grep -F -v adding
   pulling from $TESTTMP/a
   updating bookmark X
   added 1 changesets with 0 changes to 0 files (+1 heads)



More information about the Mercurial-devel mailing list