EXTRA_DIST = include LICENSE UPGRADE FAQ \
TUNABLES README.access README.archives README.listtexts man \
README.exim4 README.sendmail README.security README.qmail \
- README.postfix README.footers
+ README.postfix README.footers \
+ Kyuafile tests/Kyuafile
CLEANFILES = *~ mlmmj-*.tar.*
man1_MANS = man/mlmmj-bounce.1 man/mlmmj-make-ml.1 man/mlmmj-receive.1 \
SUBDIRS = src listtexts contrib
if WANT_TESTS
-SUBDIRS += tests
+AM_CFLAGS += @ATF_CFLAGS@
-check: $(check_SCRIPTS) $(check_PROGRAMS)
- kyua --config=none test --kyuafile='$(builddir)/Kyuafile' \
- --build-root='$(builddir)'
+check_PROGRAMS = \
+ tests/fakesmtpd \
+ tests/mlmmj
+dist_noinst_HEADERS = \
+ tests/mlmmj_tests.h
+
+tests_mlmmj_SOURCES = \
+ tests/mlmmj.c \
+ tests/mlmmj_tests.c
+tests_mlmmj_LDADD = \
+ $(top_builddir)/src/libmlmmj.a \
+ @ATF_LIBS@ -lrt
+
+tests_fakesmtpd_SOURCES = \
+ tests/fakesmtpd.c
+
+EXTRA_DIST += \
+ tests/*.sh
+
+CLEANFILES += \
+ $(test_scripts:.sh=)
+
+test_scripts = \
+ tests/mlmmj-send.sh \
+ tests/functional-tests.sh \
+ tests/mlmmj-maintd.sh \
+ tests/mlmmj-sub.sh \
+ tests/mlmmj-bounce.sh \
+ tests/mlmmj-list.sh \
+ tests/mlmmj-process.sh \
+ tests/mlmmj-receive.sh
+
+check_SCRIPTS = \
+ $(test_scripts:.sh=)
+
+# Copy the test scripts striped of the '.sh' extension in the build directory
+SUFFIXES = .sh
+.sh:
+ install -m 755 $< $@
+
+# Run the Kyua test suite when the 'check' target is invoked
+check-local: $(check_SCRIPTS) $(check_PROGRAMS)
+ failed=no; \
+ kyua --config='$(top_builddir)/kyua.conf' test \
+ --kyuafile='$(top_srcdir)/Kyuafile' --build-root='$(top_builddir)' \
+ || failed=yes; \
+ if [ "$${failed}" = yes ]; then \
+ kyua report --results-file='$(abs_top_srcdir)' \
+ --verbose --results-filter=broken,failed; \
+ exit 1; \
+ fi
+
+# Build the test programs when the 'all' target is invoked
+all-local: $(check_PROGRAMS) $(check_SCRIPTS)
endif
AC_SUBST(AM_LDFLAGS)
AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([kyua.conf])
AC_CONFIG_FILES([src/Makefile])
AC_CONFIG_FILES([src/mlmmj-make-ml])
AC_CONFIG_FILES([listtexts/Makefile])
AC_CONFIG_FILES([contrib/Makefile])
AC_CONFIG_FILES([contrib/receivestrip/Makefile])
-AC_CONFIG_FILES([tests/Makefile])
-AC_CONFIG_FILES([tests/Kyuafile])
AC_CONFIG_FILES([tests/test_env.sh])
AC_OUTPUT
--- /dev/null
+syntax(2)
+
+test_suites.mlmmj.top_srcdir = "@abs_top_srcdir@"
+test_suites.mlmmj.top_builddir = "@abs_top_builddir@"
+++ /dev/null
-check_PROGRAMS = mlmmj fakesmtpd
-
-mlmmj_SOURCES = mlmmj.c \
- mlmmj_tests.c
-
-fakesmtpd_SOURCES= fakesmtpd.c
-
-EXTRA_DIST = *.sh *.h
-CLEANFILES= $(test_scripts:.sh=)
-
-AM_CFLAGS += @ATF_CFLAGS@
-mlmmj_LDADD = $(top_builddir)/src/libmlmmj.a @ATF_LIBS@ -lrt
-
-test_scripts = mlmmj-send.sh \
- functional-tests.sh \
- mlmmj-maintd.sh \
- mlmmj-sub.sh \
- mlmmj-bounce.sh \
- mlmmj-list.sh \
- mlmmj-process.sh \
- mlmmj-receive.sh
-check_SCRIPTS= $(test_scripts:.sh=)
-SUFFIXES= .sh
-
-all: $(check_PROGRAMS) $(check_SCRIPTS)
-
-check: $(check_SCRIPTS) $(check_PROGRAMS)
-
-.sh:
- install -m 755 $< $@
init_ml ml
echo test@mlmmjtest > ml/control/listaddress
- cp $(atf_get_srcdir)/dsnmail dsnmail
+ cp ${top_srcdir}/tests/dsnmail dsnmail
atf_check -s exit:0 $mlmmjbounce -L ./ml -d -n 2 -m dsnmail
}
resend_requeue_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
echo "test@test" > list/control/listaddress
resend_queue_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
echo "test@test" > list/control/listaddress
EOF
echo "list@test" > list/control/listaddress
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
atf_check -s exit:0 $mlmmjprocess -L list -m mailfile
rm list/queue/*.reciptto
rm list/queue/*.mailfrom
simple_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
subscribe_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
subscribe_digest_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
subscribe_nomail_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
subscribe_both_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
subscribe_nomail_confunsub_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
subscribe_digest_confunsub_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
ctrl_list_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
ctrl_help_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
ctrl_faq_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
ctrl_get_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
subscription_moderation_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
moderation_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
moderation_notifymod_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
moderation_notmetoo_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
moderation_reject_invalid_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
maxmailsize_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
}
maxmailsize0_body() {
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
normal_email_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
delheaders_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
customheaders_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "heloname" > list/control/smtphelo
verp_body()
{
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
init_ml list
rmdir list/text
- ln -s ${srcdir}/../listtexts/en list/text
+ ln -s ${top_srcdir}/listtexts/en list/text
echo test@mlmmjtest > list/control/listaddress
echo "25678" > list/control/smtpport
echo "postfix" > list/control/verp
{
init_ml ml
mlmmjsub=$(command -v mlmmj-sub)
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
echo test@mlmmjtest > ml/control/listaddress
echo "25678" > ml/control/smtpport
echo "heloname" > ml/control/smtphelo
rmdir ml/text
- ln -s ${srcdir}/../listtexts/en ml/text
+ ln -s ${top_srcdir}/listtexts/en ml/text
atf_check -s exit:0 $mlmmjsub -L ml -c -a john@doe.org
cat > expected.txt <<EOF
EHLO heloname\r
{
init_ml ml
mlmmjsub=$(command -v mlmmj-sub)
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
echo test@mlmmjtest > ml/control/listaddress
echo "25678" > ml/control/smtpport
echo "heloname" > ml/control/smtphelo
rmdir ml/text
- ln -s ${srcdir}/../listtexts/en ml/text
+ ln -s ${top_srcdir}/listtexts/en ml/text
atf_check -s exit:0 $mlmmjsub -L ml -c -C -a john@doe.org
cat > expected.txt <<EOF
EHLO heloname\r
{
init_ml ml
mlmmjsub=$(command -v mlmmj-sub)
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
echo test@mlmmjtest > ml/control/listaddress
echo "25678" > ml/control/smtpport
echo "heloname" > ml/control/smtphelo
touch ml/control/notifysub
rmdir ml/text
- ln -s ${srcdir}/../listtexts/en ml/text
+ ln -s ${top_srcdir}/listtexts/en ml/text
atf_check -s exit:0 $mlmmjsub -L ml -c -a john@doe.org
cat > expected.txt <<EOF
EHLO heloname\r
{
init_ml ml
mlmmjsub=$(command -v mlmmj-sub)
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
echo test@mlmmjtest > ml/control/listaddress
echo "25678" > ml/control/smtpport
echo "heloname" > ml/control/smtphelo
rmdir ml/text
- ln -s ${srcdir}/../listtexts/en ml/text
+ ln -s ${top_srcdir}/listtexts/en ml/text
cat > ml/control/submod <<EOF
modo1@test
modo2@test
{
init_ml ml
mlmmjsub=$(command -v mlmmj-unsub)
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
echo test@mlmmjtest > ml/control/listaddress
echo "john@doe.org" > ml/subscribers.d/j
echo "25678" > ml/control/smtpport
echo "heloname" > ml/control/smtphelo
rmdir ml/text
- ln -s ${srcdir}/../listtexts/en ml/text
+ ln -s ${top_srcdir}/listtexts/en ml/text
atf_check -s exit:0 $mlmmjsub -L ml -c -a john@doe.org
atf_check -o inline:"bob@doe.org\nrebecca@doe.org\n" cat ml/subscribers.d/j
cat > expected.txt << EOF
{
init_ml ml
mlmmjsub=$(command -v mlmmj-unsub)
- atf_check $srcdir/fakesmtpd
+ atf_check $top_builddir/tests/fakesmtpd
trap kill_fakesmtp EXIT TERM
echo test@mlmmjtest > ml/control/listaddress
echo "john@doe.org" > ml/subscribers.d/j
echo "heloname" > ml/control/smtphelo
touch ml/control/notifysub
rmdir ml/text
- ln -s ${srcdir}/../listtexts/en ml/text
+ ln -s ${top_srcdir}/listtexts/en ml/text
atf_check -s exit:0 $mlmmjsub -L ml -c -a john@doe.org
atf_check -o inline:"bob@doe.org\nrebecca@doe.org\n" cat ml/subscribers.d/j
cat > expected.txt << EOF
ml.dir = "list";
ml_open(&ml, false);
rmdir("list/text");
- xasprintf(&dir, "%s/../listtexts/en",
- atf_tc_get_config_var(tc, "srcdir"));
+ xasprintf(&dir, "%s/listtexts/en",
+ atf_tc_get_config_var(tc, "top_srcdir"));
symlink(dir, "list/text");
atf_utils_create_file("list/control/smtpport", "25678");
ml.dir = "list";
ml_open(&ml, false);
rmdir("list/text");
- xasprintf(&dir, "%s/../listtexts/en",
- atf_tc_get_config_var(tc, "srcdir"));
+ xasprintf(&dir, "%s/listtexts/en",
+ atf_tc_get_config_var(tc, "top_srcdir"));
symlink(dir, "list/text");
atf_utils_create_file("list/control/smtpport", "25678");
ml.dir = "list";
ml_open(&ml, false);
rmdir("list/text");
- xasprintf(&dir, "%s/../listtexts/en",
- atf_tc_get_config_var(tc, "srcdir"));
+ xasprintf(&dir, "%s/listtexts/en",
+ atf_tc_get_config_var(tc, "top_srcdir"));
symlink(dir, "list/text");
atf_utils_create_file("list/control/smtpport", "25678");
ml.dir = "list";
ml_open(&ml, false);
rmdir("list/text");
- xasprintf(&dir, "%s/../listtexts/en",
- atf_tc_get_config_var(tc, "srcdir"));
+ xasprintf(&dir, "%s/listtexts/en",
+ atf_tc_get_config_var(tc, "top_srcdir"));
symlink(dir, "list/text");
atf_utils_create_file("list/control/smtpport", "25678");
ml.dir = "list";
ml_open(&ml, false);
rmdir("list/text");
- xasprintf(&dir, "%s/../listtexts/en",
- atf_tc_get_config_var(tc, "srcdir"));
+ xasprintf(&dir, "%s/listtexts/en",
+ atf_tc_get_config_var(tc, "top_srcdir"));
symlink(dir, "list/text");
atf_utils_create_file("list/control/smtpport", "25678");
ml.dir = "list";
ml_open(&ml, false);
rmdir("list/text");
- xasprintf(&dir, "%s/../listtexts/en",
- atf_tc_get_config_var(tc, "srcdir"));
+ xasprintf(&dir, "%s/listtexts/en",
+ atf_tc_get_config_var(tc, "top_srcdir"));
symlink(dir, "list/text");
atf_utils_create_file("list/control/smtpport", "25678");
-srcdir="$(atf_get_srcdir)"
-export PATH="$srcdir/../src:${PATH}"
+top_srcdir="@abs_top_srcdir@"
+top_builddir="@abs_top_builddir@"
-selfdir="@abs_top_srcdir@/tests"
-LIBRARY_PATH_ENV="LIBRARY_PATH"
-SYSROOT_DIR="${selfdir}"
+export PATH="${top_builddir}/src:${PATH}"
prefix="@prefix@"
exec_prefix="@exec_prefix@"
datarootdir="@datarootdir@"
-pcpath="@PKG_DEFAULT_PATH@"
tests_init()
{