export BT_TESTS_BT2_BIN
# This doesn't need to be exported, but it needs to remain set for
-# run_python_bt2() to use it.
+# bt_run_in_py_env() to use it.
#
# TODO: Remove when `tests/bindings/python/bt2/test_plugin.py` is fixed.
_bt_tests_plugins_path=$BT_TESTS_BUILDDIR/../src/plugins
#
# This doesn't need to be exported, but it needs to remain set for
# bt_run_in_py_utils_env() to use it.
-_bt_tests_py3_version=$("$BT_TESTS_PYTHON_BIN" -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')
+_bt_tests_py3_version=$($BT_TESTS_PYTHON_BIN -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')
# Name of the `python3-config` command to use when testing, if not set
_bt_tests_set_var_def BT_TESTS_PYTHON_CONFIG_BIN python3-config
shift 2
- local -r args=("$@")
+ local -a bt_cli_args=("$@")
- echo "Running: \`$BT_TESTS_BT2_BIN ${args[*]}\`" >&2
- run_python_bt2 "$BT_TESTS_BT2_BIN" "${args[@]}" 1>"$stdout_file" 2>"$stderr_file"
+ echo "Running: \`$BT_TESTS_BT2_BIN ${bt_cli_args[*]}\`" >&2
+ bt_run_in_py_env "$BT_TESTS_BT2_BIN" "${bt_cli_args[@]}" 1>"$stdout_file" 2>"$stderr_file"
}
# Checks the differences between:
shift 2
- local -r extra_details_args=("$@")
+ local -r gen_extra_details_args=("$@")
local -r temp_trace_dir=$(mktemp -d)
# Run the CTF trace generator program to get a CTF trace
# Compare using the CLI with `sink.text.details`
bt_diff_details_ctf_single "$expected_stdout_file" "$temp_trace_dir" \
- "${extra_details_args[@]+${extra_details_args[@]}}"
+ "${gen_extra_details_args[@]+${gen_extra_details_args[@]}}"
local -r ret=$?
# Executes a command within an environment which can import the testing
# Python modules (in `tests/utils/python`) and the `bt2` Python package.
-run_python_bt2() {
+bt_run_in_py_env() {
local -x BABELTRACE_PLUGIN_PATH=$BT_TESTS_BABELTRACE_PLUGIN_PATH
local -x LIBBABELTRACE2_PLUGIN_PROVIDER_DIR=$BT_TESTS_PROVIDER_DIR
local -x BT_TESTS_DATADIR=$BT_TESTS_DATADIR
if [[ $BT_TESTS_OS_TYPE == mingw ]]; then
local -x PYTHONHOME
- PYTHONHOME=$("$BT_TESTS_PYTHON_CONFIG_BIN" --prefix)
+ PYTHONHOME=$($BT_TESTS_PYTHON_CONFIG_BIN --prefix)
fi
# If AddressSanitizer is used, we must preload `libasan.so` so that
# Append it to existing `ASAN_OPTIONS` variable, such that we
# override the user's value if it contains `detect_leaks=1`.
if [[ ${BT_TESTS_ENABLE_ASAN:-} == 1 ]]; then
- if "$BT_TESTS_CC_BIN" --version | head -n 1 | bt_grep -q '^gcc'; then
- local -r lib_asan=$("$BT_TESTS_CC_BIN" -print-file-name=libasan.so)
- local -x LD_PRELOAD=$lib_asan${LD_PRELOAD:+:}${LD_PRELOAD:-}
+ if $BT_TESTS_CC_BIN --version | head -n 1 | bt_grep -q '^gcc'; then
+ local -r lib_asan=$($BT_TESTS_CC_BIN -print-file-name=libasan.so)
+ local -r lib_stdcxx=$($BT_TESTS_CC_BIN -print-file-name=libstdc++.so)
+ local -x LD_PRELOAD=$lib_asan:$lib_stdcxx${LD_PRELOAD:+:}${LD_PRELOAD:-}
fi
local -x ASAN_OPTIONS=${ASAN_OPTIONS:-}${ASAN_OPTIONS:+,}detect_leaks=0
# Runs the Python tests matching the pattern `$2` (optional, `*` if
# missing) in the directory `$1` using `testrunner.py`.
#
-# This function uses run_python_bt2(), therefore such tests can import
+# This function uses bt_run_in_py_env(), therefore such tests can import
# the testing Python modules (in `tests/utils/python`) and the `bt2`
# Python package.
-run_python_bt2_test() {
+bt_run_py_test() {
local -r test_dir=$1
local -r test_pattern=${2:-*}
local python_exec
python_exec=$BT_TESTS_PYTHON_BIN
fi
- run_python_bt2 \
+ bt_run_in_py_env \
"$python_exec" "$BT_TESTS_SRCDIR/utils/python/testrunner.py" \
--pattern "$test_pattern" "$test_dir"
# Generates a CTF trace into the directory `$2` from the moultipart
# document `$1` using `mctf.py`.
-gen_mctf_trace() {
+bt_gen_mctf_trace() {
local -r input_file=$1
local -r base_dir=$2
local -r cmd=(
echo "Running: \`${cmd[*]}\`" >&2
bt_run_in_py_utils_env "${cmd[@]}"
}
+
+# Call `diag` with the contents of file `$1`.
+
+diag_file() {
+ diag "$(cat "$1")"
+}