summaryrefslogtreecommitdiffstats
path: root/tests/m4sugar.at
diff options
context:
space:
mode:
Diffstat (limited to 'tests/m4sugar.at')
-rw-r--r--tests/m4sugar.at139
1 files changed, 139 insertions, 0 deletions
diff --git a/tests/m4sugar.at b/tests/m4sugar.at
new file mode 100644
index 0000000..9f4dab7
--- /dev/null
+++ b/tests/m4sugar.at
@@ -0,0 +1,139 @@
+# -*- Autoconf -*-
+
+AT_BANNER([M4sugar.])
+
+
+# Order of the tests:
+# - m4_warn
+#
+# - m4_require
+# uses warn/error code.
+#
+# - m4_text_wrap
+
+## --------- ##
+## m4_warn. ##
+## --------- ##
+
+AT_SETUP([[m4_warn]])
+
+# m4_text_wrap is used to display the help strings. Also, check that
+# commas are not swallowed. This can easily happen because of
+# m4-listification.
+
+AT_DATA(configure.ac,
+[[m4_warn([foo], [foo])
+m4_warn([bar], [bar])
+m4_warn([syntax], [syntax])
+]])
+
+AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir -o-],
+ 0, [],
+[configure.ac:3: warning: syntax
+])
+
+AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir -o- -Wall],
+ 0, [],
+[configure.ac:1: warning: foo
+configure.ac:2: warning: bar
+configure.ac:3: warning: syntax
+])
+
+AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir -o- -Wnone,bar],
+ 0, [],
+[configure.ac:2: warning: bar
+])
+
+AT_CHECK([autoconf --autoconf-dir .. -l $at_srcdir -o- -Wnone,bar,error],
+ 1, [],
+[configure.ac:2: error: bar
+configure.ac:2: the top level
+])
+
+AT_CLEANUP
+
+
+## ----------------------------------- ##
+## m4_require: circular dependencies. ##
+## ----------------------------------- ##
+
+AT_SETUP([[m4_require: circular dependencies]])
+
+# m4_text_wrap is used to display the help strings. Also, check that
+# commas are not swallowed. This can easily happen because of
+# m4-listification.
+
+AT_DATA([configure.ac],
+[[m4_defun([foo],
+[m4_require([bar])])
+
+m4_defun([bar],
+[m4_require([foo])])
+
+m4_defun([baz],
+[m4_require([foo])])
+
+m4_init
+baz
+]])
+
+AT_CHECK_AUTOCONF([], 1, [],
+[[configure.ac:11: error: m4_require: circular dependency of foo
+configure.ac:11: foo is required by...
+configure.ac:4: bar is expanded from...
+configure.ac:11: bar is required by...
+configure.ac:1: foo is expanded from...
+configure.ac:11: foo is required by...
+configure.ac:7: baz is expanded from...
+configure.ac:11: the top level
+]])
+
+AT_CLEANUP
+
+
+## -------------- ##
+## m4_text_wrap. ##
+## -------------- ##
+
+AT_SETUP([[m4_text_wrap]])
+
+# m4_text_wrap is used to display the help strings. Also, check that
+# commas are not swallowed. This can easily happen because of
+# m4-listification.
+
+AT_DATA([configure.ac],
+[[AC_PLAIN_SCRIPT()dnl
+m4_text_wrap([Short string */], [ ], [/* ], 20)
+
+m4_text_wrap([Much longer string */], [ ], [/* ], 20)
+
+m4_text_wrap([Short doc.], [ ], [ --short ], 30)
+
+m4_text_wrap([Short doc.], [ ], [ --too-wide], 30)
+
+m4_text_wrap([Super long documentation.], [ ], [ --too-wide], 30)
+
+m4_text_wrap([First, second , third, [,quoted]])
+]])
+
+AT_DATA(expout,
+[[/* Short string */
+
+/* Much longer
+ string */
+
+ --short Short doc.
+
+ --too-wide
+ Short doc.
+
+ --too-wide
+ Super long
+ documentation.
+
+First, second , third, [,quoted]
+]])
+
+AT_CHECK_AUTOCONF([-o-], 0, [expout])
+
+AT_CLEANUP