summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Youngman <jay@gnu.org>2011-06-18 11:34:01 +0100
committerJames Youngman <jay@gnu.org>2011-06-19 11:49:33 +0100
commit1005e5bf604622778e56032e8ef262d9c1f2dcab (patch)
treebaa3517ec13eca6fae08a07c6ae6e00eff758c63
parent9e764b139df6842c40c779c123edf6c138e5cbe3 (diff)
downloadfindutils-1005e5bf604622778e56032e8ef262d9c1f2dcab.tar.gz
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".
-rw-r--r--ChangeLog6
-rw-r--r--find/testsuite/Makefile.am2
-rwxr-xr-xfind/testsuite/test_escape_c.sh37
3 files changed, 44 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index af9e2939..f6094bb6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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