summaryrefslogtreecommitdiffstats
path: root/tests/m4sh.at
diff options
context:
space:
mode:
Diffstat (limited to 'tests/m4sh.at')
-rw-r--r--tests/m4sh.at118
1 files changed, 118 insertions, 0 deletions
diff --git a/tests/m4sh.at b/tests/m4sh.at
new file mode 100644
index 0000000..255c185
--- /dev/null
+++ b/tests/m4sh.at
@@ -0,0 +1,118 @@
+# -*- Autoconf -*-
+
+AT_BANNER([M4sh.])
+
+
+## ----------------------------- ##
+## AS_DIRNAME & AS_DIRNAME_SED. ##
+## ----------------------------- ##
+
+# Build nested dirs.
+
+AT_SETUP([[AS_DIRNAME & AS_DIRNAME_SED]])
+
+AT_DATA(configure.ac,
+[[AC_PLAIN_SCRIPT()dnl
+#! /bin/sh
+
+_AS_EXPR_PREPARE
+
+define([AS_DIRNAME_TEST],
+[dir=`AS_DIRNAME([$1])`
+test "$dir" = "$2" ||
+ echo "dirname($1) = $dir instead of $2" >&2
+
+dir=`AS_DIRNAME_SED([$1])`
+test "$dir" = "$2" ||
+ echo "dirname_sed($1) = $dir instead of $2" >&2])
+
+AS_DIRNAME_TEST([//1], [//])
+AS_DIRNAME_TEST([/1], [/])
+AS_DIRNAME_TEST([./1], [.])
+AS_DIRNAME_TEST([../../2], [../..])
+AS_DIRNAME_TEST([//1/], [//])
+AS_DIRNAME_TEST([/1/], [/])
+AS_DIRNAME_TEST([./1/], [.])
+AS_DIRNAME_TEST([../../2], [../..])
+AS_DIRNAME_TEST([//1/3], [//1])
+AS_DIRNAME_TEST([/1/3], [/1])
+AS_DIRNAME_TEST([./1/3], [./1])
+AS_DIRNAME_TEST([../../2/3], [../../2])
+AS_DIRNAME_TEST([//1/3///], [//1])
+AS_DIRNAME_TEST([/1/3///], [/1])
+AS_DIRNAME_TEST([./1/3///], [./1])
+AS_DIRNAME_TEST([../../2/3///], [../../2])
+AS_DIRNAME_TEST([//1//3/], [//1])
+AS_DIRNAME_TEST([/1//3/], [/1])
+AS_DIRNAME_TEST([./1//3/], [./1])
+AS_DIRNAME_TEST([../../2//3/], [../../2])
+AS_EXIT(0)
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE
+
+AT_CLEANUP(configure)
+
+
+
+## ------------ ##
+## AS_MKDIR_P. ##
+## ------------ ##
+
+# Build nested dirs.
+
+AT_SETUP([[AS_MKDIR_P]])
+
+AT_DATA([configure.ac],
+[[AC_PLAIN_SCRIPT()dnl
+#! /bin/sh
+
+pwd=`pwd`
+set -e
+# Absolute
+AS_MKDIR_P(["$pwd/1/2/3/4/5/6"])
+test -d "$pwd/1/2/3/4/5/6" ||
+ AC_MSG_ERROR([$pwd/1/2/3/4/5/6 has not been properly created])
+# Relative
+AS_MKDIR_P(["a/b/c/d/e/f"])
+test -d a/b/c/d/e/f ||
+ AC_MSG_ERROR([a/b/c/d/e/f has not been properly created])
+AS_EXIT(0)
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE
+
+AT_CLEANUP(configure 1 a)
+
+
+
+
+## ----------------------------- ##
+## Negated classes in globbing. ##
+## ----------------------------- ##
+
+# It is known that `[^...]' is not universally supported, but it is
+# unknown for `[!...]'.
+
+AT_SETUP([Negated classes in globbing])
+
+AT_DATA([configure.ac],
+[[AC_PLAIN_SCRIPT()dnl
+#! /bin/sh
+
+case 'with!two!bangs' in
+ *[[!a-z]]*) ;;
+ *) AC_MSG_ERROR([[`*[!a-z]*' didn't match `with!two!bangs']]);;
+esac
+
+case without in
+ *[[!a-z]]*) AC_MSG_ERROR([[`*[!a-z]*' matched `without']]);;
+esac
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE
+
+AT_CLEANUP(configure)