Re: [PATCH] test-lib-functions: avoid non POSIX ERE in test_dir_is_empty()
From: Taylor Blau <hidden>
Date: 2021-08-26 04:24:17
On Wed, Aug 25, 2021 at 08:17:10PM -0700, Carlo Marcelo Arenas Belón wrote:
quoted hunk ↗ jump to hunk
0be7d9b73d (test-lib: add test_dir_is_empty(), 2014-06-19) uses an ERE through the egrep tool (which is not POSIX) using an ? operator that isn't either. replace invocation with two equivalent simpler BRE instead. Signed-off-by: Carlo Marcelo Arenas Belón <redacted> --- t/test-lib-functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index e28411bb75..2803c97df3 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh@@ -790,7 +790,7 @@ test_path_exists () { test_dir_is_empty () { test "$#" -ne 1 && BUG "1 param" test_path_is_dir "$1" && - if test -n "$(ls -a1 "$1" | egrep -v '^\.\.?$')" + if test -n "$(ls -a1 "$1" | grep -v '^\.$' | grep -v '^\.\.$')"
This replacement is correct, but I'm not sure that I necessarily find it
simpler. If we really are concerned about egrep usage, then
if test -n "$(find "$1" | grep -v '^\.$')"
would suffice. But it looks like we are fairly OK with egrep in t (`git
grep 'egrep' -- t | wc -l` turns up 19 matches), so I'm not sure the
change is necessary in the first place.
Thanks,
Taylor