[lttng-dev] [PATCH lttng-ust 1/2] Tests: Replace prove by autotools tap runner
Michael Jeanson
mjeanson at efficios.com
Thu May 12 15:01:18 UTC 2016
This patch removes the dependency on the prove perl script
to run the TAP test suite. It replaces it with the autotools
shell TAP driver that only requires a shell and awk.
Custom arguments can be passed to the test runner with
env variables as follow:
env LOG_DRIVER_FLAGS='--comments --ignore-exit' \
TESTS='foo.test baz.test' make -e check
This tap driver also creates a log file for each test that
can then be used by another system to build a test report.
Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
---
.gitignore | 4 ++++
Makefile.am | 4 ++++
configure.ac | 2 ++
tests/Makefile.am | 29 ++++++++++++-----------------
tests/README | 4 ++--
tests/run.sh | 22 ----------------------
tests/test_loop | 12 ------------
tests/unit_tests | 2 --
8 files changed, 24 insertions(+), 55 deletions(-)
delete mode 100755 tests/run.sh
delete mode 100755 tests/test_loop
delete mode 100644 tests/unit_tests
diff --git a/.gitignore b/.gitignore
index 78cba0d..a5c33fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,8 @@
*.swp
*.o
*.swo
+*.trs
+*.log
Makefile
.libs/
.deps/
@@ -61,6 +63,8 @@ tests/ust-elf/prog
tests/ust-elf/test_ust_elf
tests/benchmark/bench1
tests/benchmark/bench2
+tests/ctf-types/ctf-types
+tests/test-app-ctx/hello
# Java agent library
*.class
diff --git a/Makefile.am b/Makefile.am
index 5bb5311..1db7480 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -36,3 +36,7 @@ pkgconfig_DATA = lttng-ust.pc
dist_doc_DATA = README.md ChangeLog
dist_noinst_DATA = CodingStyle
+
+check-loop:
+ cd tests && $(MAKE) $(AM_MAKEFLAGS) check-loop
+.PHONY: check-loop
diff --git a/configure.ac b/configure.ac
index 7415373..26c3b1d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -33,6 +33,8 @@ AM_MAINTAINER_MODE([enable])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_SRCDIR([include/lttng/tracepoint.h])
+AC_REQUIRE_AUX_FILE([tap-driver.sh])
+
# Configuration options, which will be installed in the config.h
AC_CONFIG_HEADERS([config.h include/lttng/ust-config.h])
AH_TEMPLATE([LTTNG_UST_HAVE_EFFICIENT_UNALIGNED_ACCESS], [Use efficient unaligned access.])
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 377acd6..96a3faa 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,23 +5,18 @@ if CXX_WORKS
SUBDIRS += hello.cxx
endif
-SCRIPT_LIST = test_loop run.sh unit_tests
+LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
+ $(top_srcdir)/config/tap-driver.sh
-dist_noinst_SCRIPTS = $(SCRIPT_LIST)
+TESTS = snprintf/test_snprintf \
+ ust-elf/test_ust_elf
-all-local:
- @if [ x"$(srcdir)" != x"$(builddir)" ]; then \
- for script in $(SCRIPT_LIST); do \
- cp -f $(srcdir)/$$script $(builddir); \
- done; \
- fi
+check-loop:
+ while [ 0 ]; do \
+ $(MAKE) $(AM_MAKEFLAGS) check; \
+ if [ "$$?" != "0" ]; then \
+ break; \
+ fi \
+ done
-clean-local:
- @if [ x"$(srcdir)" != x"$(builddir)" ]; then \
- for script in $(SCRIPT_LIST); do \
- rm -f $(builddir)/$$script; \
- done; \
- fi
-
-check-am:
- ./run.sh unit_tests
+.PHONY: check-loop
diff --git a/tests/README b/tests/README
index 5f1da32..5f7bcc2 100644
--- a/tests/README
+++ b/tests/README
@@ -1,10 +1,10 @@
Using the ust test suite.
Running
- ./run.sh unit_tests
+ make check
runs all the tests once.
Running
- ./test_loop
+ make check-loop
runs the test in a loop. This is useful to check for errors that would not
always happen.
diff --git a/tests/run.sh b/tests/run.sh
deleted file mode 100755
index c6c50fd..0000000
--- a/tests/run.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-#
-# Copyright (C) 2013 - Christian Babeux <christian.babeux at efficios.com>
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; only version 2
-# of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-
-[ -z "$1" ] && echo "Error: No testlist. Please specify a testlist to run." && exit 1
-
-prove --merge --exec '' - < $1
diff --git a/tests/test_loop b/tests/test_loop
deleted file mode 100755
index be3e16c..0000000
--- a/tests/test_loop
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-DIR=$(dirname $0)
-
-while [ 0 ]; do
- $DIR/run.sh $DIR/unit_tests
- if [ "$?" != "0" ]; then
- break;
- fi
-done
-
-echo "$0: ********* STOPPED BECAUSE OF ERROR *********"
diff --git a/tests/unit_tests b/tests/unit_tests
deleted file mode 100644
index 4d69789..0000000
--- a/tests/unit_tests
+++ /dev/null
@@ -1,2 +0,0 @@
-snprintf/test_snprintf
-ust-elf/test_ust_elf
--
1.9.1
More information about the lttng-dev
mailing list