diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | find/testsuite/Makefile.am | 2 | ||||
-rwxr-xr-x | find/testsuite/test_escape_c.sh | 37 |
3 files changed, 44 insertions, 1 deletions
@@ -1,5 +1,11 @@ 2011-06-18 James Youngman <jay@gnu.org> + Add a test for "find -printf \c". + * find/testsuite/Makefile.am (test_shell_progs): Add + test_escape_c.sh. + * find/testsuite/test_escape_c.sh: New test for "find -printf + \c". + Remove an unnecessary argument from insert_fprintf. * find/print.c (insert_fprintf): Eliminate the 'func' argument, since it is always pref_fprintf. diff --git a/find/testsuite/Makefile.am b/find/testsuite/Makefile.am index dd5a8410..fdd496bb 100644 --- a/find/testsuite/Makefile.am +++ b/find/testsuite/Makefile.am @@ -245,7 +245,7 @@ find.posix/user-missing.exp EXTRA_DIST_GOLDEN = \ test_escapechars.golden -test_shell_progs = sv-bug-32043.sh test_escapechars.sh +test_shell_progs = sv-bug-32043.sh test_escapechars.sh test_escape_c.sh EXTRA_DIST = $(EXTRA_DIST_EXP) $(EXTRA_DIST_XO) $(EXTRA_DIST_GOLDEN) \ $(test_shell_progs) diff --git a/find/testsuite/test_escape_c.sh b/find/testsuite/test_escape_c.sh new file mode 100755 index 00000000..50351eac --- /dev/null +++ b/find/testsuite/test_escape_c.sh @@ -0,0 +1,37 @@ +#! /bin/sh +testname="$(basename $0)" + +parent="$(cd .. && pwd)" +if [[ -f "${parent}/ftsfind" ]]; then + ftsfind="${parent}/ftsfind" + oldfind="${parent}/find" +elif [[ -f "${parent}/oldfind" ]]; then + ftsfind="${parent}/find" + oldfind="${parent}/oldfind" +else + echo "Cannot find the executables to test." >&2 + exit 1 +fi + +goldenfile="${srcdir}/test_escapechars.golden" +expected='hello^.^world' + +for executable in "$oldfind" "$ftsfind" +do + if result="$($executable . -maxdepth 0 \ + -printf 'hello^\cthere' \ + -exec printf %s {} \; \ + -printf '^world\n' )"; then + if [[ "${result}" != "${expected}" ]]; then + exec >&2 + echo "$executable produced incorrect output:" + echo "${result}" + echo "Expected output was:" + echo "${expected}" + exit 1 + fi + else + echo "$executable returned $?" >&2 + exit 1 + fi +done |