summaryrefslogtreecommitdiff
path: root/tests/erlang.at
diff options
context:
space:
mode:
Diffstat (limited to 'tests/erlang.at')
-rw-r--r--tests/erlang.at101
1 files changed, 42 insertions, 59 deletions
diff --git a/tests/erlang.at b/tests/erlang.at
index c149f776..93a0e478 100644
--- a/tests/erlang.at
+++ b/tests/erlang.at
@@ -1,5 +1,11 @@
# -*- Autotest -*-
+# Macros tested in acerlang.at:
+# AC_ERLANG_PATH_ERL
+# AC_ERLANG_PATH_ERLC
+# AC_ERLANG_SUBST_ERTS_VER
+# AU::AC_LANG_ERLANG
+
AT_BANNER([Erlang low level compiling and utility macros.])
# Copyright (C) 2009-2017, 2020 Free Software Foundation, Inc.
@@ -27,22 +33,30 @@ AT_BANNER([Erlang low level compiling and utility macros.])
## Erlang Compiler. ##
## ----------------- ##
-AT_CHECK_MACRO([Erlang],
-[[AC_ERLANG_PATH_ERL([no])
-AC_ERLANG_PATH_ERLC([no])
-if test "$ERL" = "no" || test "$ERLC" = "no"; then AS_EXIT([77]); fi
-AC_LANG([Erlang])
-## Can't compile, but can run an Erlang module:
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [halt(0)])],
- [AC_MSG_RESULT([ok])
- AC_MSG_ERROR([compiling Erlang program should fail])],
- [AC_MSG_RESULT([failed])])
-AC_RUN_IFELSE([AC_LANG_PROGRAM([], [halt(0)])],
- [AC_MSG_RESULT([ok])],
- [AC_MSG_RESULT([failed])
- AC_MSG_ERROR([could not run test program])])
-]],
-[AT_KEYWORDS([Erlang])])
+AT_CHECK_MACRO([Erlang basic compilation],
+[[AC_LANG([Erlang])
+
+AC_CACHE_CHECK([whether erlc works], [ac_cv_erlang_erlc_works],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [halt(0)])],
+ [ac_cv_erlang_erlc_works=yes],
+ [ac_cv_erlang_erlc_works=no])])
+
+if test $ac_cv_erlang_erlc_works = no; then
+ AC_MSG_ERROR([could not compile a test Erlang module])
+fi
+
+# To keep AT_CHECK_MACRO happy, we lie and say that erl does work
+# when cross compiling.
+AC_CACHE_CHECK([whether erl works], [ac_cv_erlang_erl_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([], [halt(0)])],
+ [ac_cv_erlang_erl_works=yes],
+ [ac_cv_erlang_erl_works=no],
+ [ac_cv_erlang_erl_works=yes])])
+
+if test $ac_cv_erlang_erl_works = no; then
+ AC_MSG_ERROR([could not run a test Erlang module])
+fi
+]])
## ---------------------- ##
@@ -50,19 +64,15 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([], [halt(0)])],
## ---------------------- ##
AT_CHECK_MACRO([AC_ERLANG_CHECK_LIB],
-[[AC_ERLANG_PATH_ERL([no])
-AC_ERLANG_PATH_ERLC([no])
-if test "$ERL" = "no" || test "$ERLC" = "no"; then AS_EXIT([77]); fi
-AC_ERLANG_CHECK_LIB([stdlib],
- [AC_MSG_RESULT([ok])],
- [AC_MSG_RESULT([failed])])
+[[AC_ERLANG_CHECK_LIB([stdlib])
+if test "$ERLANG_LIB_DIR_stdlib" = "not found"; then
+ AC_MSG_ERROR([failed to find the Erlang stdlib])
+fi
## Test that the lib path detection really detected a directory:
-if test "$ERLANG_LIB_DIR_stdlib" != "not found" \
- && test ! -d "$ERLANG_LIB_DIR_stdlib"; then
- AC_MSG_ERROR([incorrect ERLANG_LIB_DIR_stdlib variable])
+if test ! -d "$ERLANG_LIB_DIR_stdlib"; then
+ AC_MSG_ERROR([incorrect ERLANG_LIB_DIR_stdlib variable])
fi
-]],
-[AT_KEYWORDS([Erlang])])
+]])
## --------------------------- ##
@@ -70,16 +80,12 @@ fi
## --------------------------- ##
AT_CHECK_MACRO([AC_ERLANG_SUBST_ROOT_DIR],
-[[AC_ERLANG_PATH_ERL([no])
-AC_ERLANG_PATH_ERLC([no])
-if test "$ERL" = "no" || test "$ERLC" = "no"; then AS_EXIT([77]); fi
-AC_ERLANG_SUBST_ROOT_DIR
+[[AC_ERLANG_SUBST_ROOT_DIR
## Test that the root path detection really detected a directory:
if test ! -d "$ERLANG_ROOT_DIR"; then
AC_MSG_ERROR([incorrect ERLANG_ROOT_DIR variable])
fi
-]],
-[AT_KEYWORDS([Erlang])])
+]])
## -------------------------- ##
@@ -87,10 +93,7 @@ fi
## -------------------------- ##
AT_CHECK_MACRO([AC_ERLANG_SUBST_LIB_DIR],
-[[AC_ERLANG_PATH_ERL([no])
-AC_ERLANG_PATH_ERLC([no])
-if test "$ERL" = "no" || test "$ERLC" = "no"; then AS_EXIT([77]); fi
-AC_ERLANG_SUBST_LIB_DIR
+[[AC_ERLANG_SUBST_LIB_DIR
## Test that the lib path detection really detected a directory:
if test ! -d "$ERLANG_LIB_DIR"; then
AC_MSG_ERROR([incorrect ERLANG_LIB_DIR variable])
@@ -99,14 +102,6 @@ fi
[AT_KEYWORDS([Erlang])])
-## ----------------------------------- ##
-## Erlang install base dir detection. ##
-## ----------------------------------- ##
-
-AT_CHECK_MACRO([AC_ERLANG_SUBST_INSTALL_LIB_DIR],
- [AT_KEYWORDS([Erlang])])
-
-
## ---------------------------------- ##
## Erlang install lib dir detection. ##
## ---------------------------------- ##
@@ -114,21 +109,9 @@ AT_CHECK_MACRO([AC_ERLANG_SUBST_INSTALL_LIB_DIR],
AT_CHECK_MACRO([AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR],
[[AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR([test_blah], [1.24-b])
## Test that the generated directory name is well-formed:
-if test `echo "$ERLANG_INSTALL_LIB_DIR_test_blah" | sed -e 's/^.*\///'` != "test_blah-1.24-b"; then
+if test `echo "$ERLANG_INSTALL_LIB_DIR_test_blah" | sed -e 's/^.*\///'` \
+ != "test_blah-1.24-b"; then
AC_MSG_ERROR([incorrect ERLANG_INSTALL_LIB_DIR_test_blah variable])
fi
]],
[AT_KEYWORDS([Erlang])])
-
-
-## -------------------------- ##
-## Erlang version detection. ##
-## -------------------------- ##
-
-AT_CHECK_MACRO([AC_ERLANG_SUBST_ERTS_VER],
-[[AC_ERLANG_PATH_ERL([no])
-AC_ERLANG_PATH_ERLC([no])
-if test "$ERL" = "no" || test "$ERLC" = "no"; then AS_EXIT([77]); fi
-AC_ERLANG_SUBST_ERTS_VER
-]],
-[AT_KEYWORDS([Erlang])])