diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-10-23 11:34:49 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-10-27 17:25:15 -0400 |
commit | 1f9776901b86b97bbb9c16dd814aeab27eea0e25 (patch) | |
tree | e39261c058a62dcea3c2bb654361967cd65850b4 /tests/posix | |
parent | 60451f4f0817250d643d7225198003b1ed3c5bb0 (diff) | |
download | bfs-1f9776901b86b97bbb9c16dd814aeab27eea0e25.tar.xz |
tests/posix: Add a test for overly aggressive -exec {} + matching
Link: https://savannah.gnu.org/bugs/?66365
Diffstat (limited to 'tests/posix')
-rw-r--r-- | tests/posix/exec_substring_plus.out | 19 | ||||
-rw-r--r-- | tests/posix/exec_substring_plus.sh | 14 |
2 files changed, 33 insertions, 0 deletions
diff --git a/tests/posix/exec_substring_plus.out b/tests/posix/exec_substring_plus.out new file mode 100644 index 0000000..a7ccfe4 --- /dev/null +++ b/tests/posix/exec_substring_plus.out @@ -0,0 +1,19 @@ +basic +basic/a +basic/b +basic/c +basic/c/d +basic/e +basic/e/f +basic/g +basic/g/h +basic/i +basic/j +basic/j/foo +basic/k +basic/k/foo +basic/k/foo/bar +basic/l +basic/l/foo +basic/l/foo/bar +basic/l/foo/bar/baz diff --git a/tests/posix/exec_substring_plus.sh b/tests/posix/exec_substring_plus.sh new file mode 100644 index 0000000..90309b0 --- /dev/null +++ b/tests/posix/exec_substring_plus.sh @@ -0,0 +1,14 @@ +# https://pubs.opengroup.org/onlinepubs/9799919799/utilities/find.html +# +# Only a <plus-sign> that immediately follows an argument containing only +# the two characters "{}" shall punctuate the end of the primary expression. +# Other uses of the <plus-sign> shall not be treated as special. +# ... +# If a utility_name or argument string contains the two characters "{}", but +# not just the two characters "{}", it is implementation-defined whether +# find replaces those two characters or uses the string without change. + +invoke_bfs basic -exec printf '%s %s %s %s\n' {} {}+ +{} + \; | sed 's/ .*//' >"$OUT" +sort_output +diff_output + |