summaryrefslogtreecommitdiffstats
path: root/gettext-tools/tests/format-awk-1
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2003-02-14 14:33:25 +0000
committerBruno Haible <bruno@clisp.org>2009-06-23 12:09:42 +0200
commitd3b41153e74542ac22d2ce5595da367ec83681b8 (patch)
tree36c8ffc649f089305e7e5fe93f04d14c533c2e6f /gettext-tools/tests/format-awk-1
parent346965a938ff1df3a5dae47ea6748defccf29110 (diff)
downloadexternal_gettext-d3b41153e74542ac22d2ce5595da367ec83681b8.zip
external_gettext-d3b41153e74542ac22d2ce5595da367ec83681b8.tar.gz
external_gettext-d3b41153e74542ac22d2ce5595da367ec83681b8.tar.bz2
Move tests/format-awk-1 to gettext-tools/tests/format-awk-1.
Diffstat (limited to 'gettext-tools/tests/format-awk-1')
-rwxr-xr-xgettext-tools/tests/format-awk-1141
1 files changed, 141 insertions, 0 deletions
diff --git a/gettext-tools/tests/format-awk-1 b/gettext-tools/tests/format-awk-1
new file mode 100755
index 0000000..3228eb1
--- /dev/null
+++ b/gettext-tools/tests/format-awk-1
@@ -0,0 +1,141 @@
+#! /bin/sh
+
+# Test recognition of awk format strings.
+
+tmpfiles=""
+trap 'rm -fr $tmpfiles' 1 2 3 15
+
+tmpfiles="$tmpfiles f-a-1.data"
+cat <<\EOF > f-a-1.data
+# Valid: no argument
+"abc%%"
+# Valid: one character argument
+"abc%c"
+# Valid: one string argument
+"abc%s"
+# Valid: one integer argument
+"abc%i"
+# Valid: one integer argument
+"abc%d"
+# Valid: one integer argument
+"abc%o"
+# Valid: one integer argument
+"abc%u"
+# Valid: one integer argument
+"abc%x"
+# Valid: one integer argument
+"abc%X"
+# Valid: one floating-point argument
+"abc%e"
+# Valid: one floating-point argument
+"abc%E"
+# Valid: one floating-point argument
+"abc%f"
+# Valid: one floating-point argument
+"abc%g"
+# Valid: one floating-point argument
+"abc%G"
+# Valid: one argument with flags
+"abc%0#g"
+# Valid: one argument with width
+"abc%2g"
+# Valid: one argument with width
+"abc%*g"
+# Valid: one argument with precision
+"abc%.4g"
+# Valid: one argument with precision
+"abc%.*g"
+# Valid: one argument with width and precision
+"abc%14.4g"
+# Valid: one argument with width and precision
+"abc%14.*g"
+# Valid: one argument with width and precision
+"abc%*.4g"
+# Valid: one argument with width and precision
+"abc%*.*g"
+# Invalid: unterminated
+"abc%"
+# Invalid: unknown format specifier
+"abc%y"
+# Invalid: unknown format specifier
+"abc%F"
+# Invalid: flags after width
+"abc%*0g"
+# Invalid: twice precision
+"abc%.4.2g"
+# Valid: three arguments
+"abc%d%u%u"
+# Valid: a numbered argument
+"abc%1$d"
+# Invalid: zero
+"abc%0$d"
+# Valid: two-digit numbered arguments
+"abc%11$def%10$dgh%9$dij%8$dkl%7$dmn%6$dop%5$dqr%4$dst%3$duv%2$dwx%1$dyz"
+# Invalid: unterminated number
+"abc%1"
+# Invalid: flags before number
+"abc%+1$d"
+# Valid: three arguments, two with same number
+"abc%1$4x,%2$c,%1$u"
+# Invalid: argument with conflicting types
+"abc%1$4x,%2$c,%1$s"
+# Valid: no conflict
+"abc%1$4x,%2$c,%1$u"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%d%2$x"
+# Valid: numbered argument with constant precision
+"abc%1$.9x"
+# Invalid: mixing of numbered and unnumbered arguments
+"abc%1$.*x"
+# Valid: missing non-final argument
+"abc%2$x%3$s"
+# Valid: permutation
+"abc%2$ddef%1$d"
+# Valid: multiple uses of same argument
+"abc%2$xdef%1$sghi%2$x"
+# Valid: one argument with width
+"abc%2$#*1$g"
+# Valid: one argument with width and precision
+"abc%3$*2$.*1$g"
+# Invalid: zero
+"abc%2$*0$.*1$g"
+EOF
+
+: ${XGETTEXT=xgettext}
+n=0
+while read comment; do
+ read string
+ n=`expr $n + 1`
+ tmpfiles="$tmpfiles f-a-1-$n.in f-a-1-$n.po"
+ cat <<EOF > f-a-1-$n.in
+dcgettext(${string});
+EOF
+ ${XGETTEXT} -L awk -o f-a-1-$n.po f-a-1-$n.in || exit 1
+ test -f f-a-1-$n.po || exit 1
+ fail=
+ if echo "$comment" | grep 'Valid:' > /dev/null; then
+ if grep awk-format f-a-1-$n.po > /dev/null; then
+ :
+ else
+ fail=yes
+ fi
+ else
+ if grep awk-format f-a-1-$n.po > /dev/null; then
+ fail=yes
+ else
+ :
+ fi
+ fi
+ if test -n "$fail"; then
+ echo "Format string recognition error:" 1>&2
+ cat f-a-1-$n.in 1>&2
+ echo "Got:" 1>&2
+ cat f-a-1-$n.po 1>&2
+ exit 1
+ fi
+ rm -f f-a-1-$n.in f-a-1-$n.po
+done < f-a-1.data
+
+rm -fr $tmpfiles
+
+exit 0