Add a single generated env file to the test suite
authorMichael Jeanson <mjeanson@efficios.com>
Tue, 31 Aug 2021 15:25:18 +0000 (11:25 -0400)
committerSimon Marchi <simon.marchi@efficios.com>
Fri, 12 Nov 2021 15:31:07 +0000 (10:31 -0500)
Regroup all the configure detected values relevant to the test suite in
a single generated file. This file will be automatically sourced by the
test suite in most scenarios but can also be sourced in the shell of a
user.

 * All user overridable variables start with 'BT_TESTS_'.
 * The priority for variables is :
     Environment -> env.sh -> utils.sh (defaults).
 * A user can source 'env.sh', override some of the values and manually
   run test scripts.
 * The test suite can run without an 'env.sh' file present.

Scenarios:

 * Manually running tests in an in-tree build:

   The test suite sources 'env.sh' relative to itself, no environment
   variables required.

 * Manually running tests in an out-of-tree build:

   The user sets BT_TESTS_BUILDDIR in its environment or sources 'env.sh'.

 * Running the test suite with 'make check' in either builds:

   The Makefile sets BT_TESTS_BUILDDIR in the environment which allows
   the test suite to source env.sh in either in-tree or out-of-tree builds.

Change-Id: I1ba3775ea3d724345cab769af9b2efc22ee53585
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/6314
Reviewed-by: Simon Marchi <simon.marchi@efficios.com>
CI-Build: Simon Marchi <simon.marchi@efficios.com>
Tested-by: jenkins <jenkins@lttng.org>
.gitignore
configure.ac
tests/Makefile.am
tests/utils/env.sh.in [new file with mode: 0644]
tests/utils/utils.sh

index 709ac0711e3864e9a244a3637994af6dcbfbc169..193676d14c41b8d656b9d7eb95be1fb900f37993 100644 (file)
@@ -15,6 +15,7 @@
 /tests/plugins/src.ctf.fs/succeed/gen-trace-simple
 /tests/plugins/sink.ctf.fs/succeed/gen-trace-float
 /tests/plugins/sink.ctf.fs/succeed/gen-trace-double
+/tests/utils/env.sh
 *~
 *.o
 *.a
index 590627f641e87c11787604799578ce20d6594c38..673fd7209523d66785ce18eddc917d3d1307f4f3 100644 (file)
@@ -841,6 +841,8 @@ AC_CONFIG_FILES([
        tests/utils/tap/Makefile
 ])
 
+AC_CONFIG_FILES([tests/utils/env.sh],[chmod +x tests/utils/env.sh])
+
 AC_OUTPUT
 
 #
index b25852facac92bbc190b9ffd807e36d5456b3ac2..1b44a9ccbb9711fa0d624f05ddde4bd30ca3a23d 100644 (file)
@@ -169,11 +169,6 @@ LOG_DRIVER_FLAGS = --merge --comments
 LOG_DRIVER = env AM_TAP_AWK='$(AWK)' \
             BT_TESTS_SRCDIR='$(abs_top_srcdir)/tests' \
             BT_TESTS_BUILDDIR='$(abs_top_builddir)/tests' \
-            BT_TESTS_AWK_BIN="$(AWK)" \
-            BT_TESTS_GREP_BIN="$(GREP)" \
-            BT_TESTS_PYTHON_BIN="$(PYTHON)" \
-            BT_TESTS_PYTHON_CONFIG_BIN="$(PYTHON_CONFIG)" \
-            BT_TESTS_SED_BIN="$(SED)" \
             $(SHELL) $(srcdir)/utils/tap-driver.sh
 
 TESTS_NO_BITFIELD = \
diff --git a/tests/utils/env.sh.in b/tests/utils/env.sh.in
new file mode 100644 (file)
index 0000000..af34046
--- /dev/null
@@ -0,0 +1,42 @@
+#!/bin/bash
+#
+# SPDX-License-Identifier: GPL-2.0-only
+#
+
+### Base paths to test suite ###
+if [ "x${BT_TESTS_SRCDIR:-}" = "x" ]; then
+       BT_TESTS_SRCDIR="@abs_top_srcdir@/tests"
+fi
+export BT_TESTS_SRCDIR
+
+if [ "x${BT_TESTS_BUILDDIR:-}" = "x" ]; then
+       BT_TESTS_BUILDDIR="@abs_top_builddir@/tests"
+fi
+export BT_TESTS_BUILDDIR
+
+
+### External Tools ###
+if [ "x${BT_TESTS_AWK_BIN:-}" = "x" ]; then
+       BT_TESTS_AWK_BIN="@AWK@"
+fi
+export BT_TESTS_AWK_BIN
+
+if [ "x${BT_TESTS_GREP_BIN:-}" = "x" ]; then
+       BT_TESTS_GREP_BIN="@GREP@"
+fi
+export BT_TESTS_GREP_BIN
+
+if [ "x${BT_TESTS_PYTHON_BIN:-}" = "x" ]; then
+       BT_TESTS_PYTHON_BIN="@PYTHON@"
+fi
+export BT_TESTS_PYTHON_BIN
+
+if [ "x${BT_TESTS_PYTHON_CONFIG_BIN:-}" = "x" ]; then
+       BT_TESTS_PYTHON_CONFIG_BIN="@PYTHON_CONFIG@"
+fi
+export BT_TESTS_PYTHON_CONFIG_BIN
+
+if [ "x${BT_TESTS_SED_BIN:-}" = "x" ]; then
+       BT_TESTS_SED_BIN="@SED@"
+fi
+export BT_TESTS_SED_BIN
index afdc856bf12ad07881ac962a679ad2226a4ef3f7..9d9b639b4278965a9779c42372066c7a2982d4a8 100644 (file)
@@ -58,12 +58,11 @@ if [ "x${BT_TESTS_BUILDDIR:-}" = "x" ]; then
 fi
 export BT_TESTS_BUILDDIR
 
-# By default, it will not source tap.sh.  If you to tap output directly from
-# the test script, define the 'SH_TAP' variable to '1' before sourcing this
-# script.
-if [ "x${SH_TAP:-}" = x1 ]; then
-       # shellcheck source=./tap/tap.sh
-       . "${BT_TESTS_SRCDIR}/utils/tap/tap.sh"
+
+# Source the generated environment file if it's present.
+if [ -f "${BT_TESTS_BUILDDIR}/utils/env.sh" ]; then
+       # shellcheck source=./env.sh
+       . "${BT_TESTS_BUILDDIR}/utils/env.sh"
 fi
 
 # Allow overriding the babeltrace2 executables
@@ -82,15 +81,18 @@ BT_PLUGINS_PATH="${BT_TESTS_BUILDDIR}/../src/plugins"
 if [ "x${BT_TESTS_BABELTRACE_PLUGIN_PATH:-}" = "x" ]; then
        BT_TESTS_BABELTRACE_PLUGIN_PATH="${BT_PLUGINS_PATH}/ctf:${BT_PLUGINS_PATH}/utils:${BT_PLUGINS_PATH}/text:${BT_PLUGINS_PATH}/lttng-utils"
 fi
+export BT_TESTS_BABELTRACE_PLUGIN_PATH
 
 if [ "x${BT_TESTS_PROVIDER_DIR:-}" = "x" ]; then
        BT_TESTS_PROVIDER_DIR="${BT_TESTS_BUILDDIR}/../src/python-plugin-provider/.libs"
 fi
+export BT_TESTS_PROVIDER_DIR
 
 # Allow overriding the babeltrace2 executables
 if [ "x${BT_TESTS_PYTHONPATH:-}" = "x" ]; then
        BT_TESTS_PYTHONPATH="${BT_TESTS_BUILDDIR}/../src/bindings/python/bt2/build/build_lib"
 fi
+export BT_TESTS_PYTHONPATH
 
 
 ### External Tools ###
@@ -124,6 +126,15 @@ export BT_TESTS_SED_BIN
 BT_TESTS_DATADIR="${BT_TESTS_SRCDIR}/data"
 BT_CTF_TRACES_PATH="${BT_TESTS_DATADIR}/ctf-traces"
 
+# By default, it will not source tap.sh.  If you want to output tap directly
+# from the test script, define the 'SH_TAP' variable to '1' before sourcing
+# this script.
+if [ "x${SH_TAP:-}" = x1 ]; then
+       # shellcheck source=./tap/tap.sh
+       . "${BT_TESTS_SRCDIR}/utils/tap/tap.sh"
+fi
+
+
 # Remove CR characters in file "$1".
 
 bt_remove_cr() {
This page took 0.02768 seconds and 4 git commands to generate.