fix: 'env.sh' is optional, ignore it in shellcheck
[babeltrace.git] / tests / utils / utils.sh
index da389f38b34068253113faa3b1f24ba83b97c9ca..18b5482362bac98e07e8bd7465c85e741873ee31 100644 (file)
@@ -61,7 +61,7 @@ export BT_TESTS_BUILDDIR
 
 # Source the generated environment file if it's present.
 if [ -f "${BT_TESTS_BUILDDIR}/utils/env.sh" ]; then
-       # shellcheck source=./env.sh
+       # shellcheck disable=SC1091
        . "${BT_TESTS_BUILDDIR}/utils/env.sh"
 fi
 
@@ -297,6 +297,33 @@ bt_diff_details_ctf_gen_single() {
        return $ret
 }
 
+# Run the grep binary configured for the tests.
+bt_grep() {
+       "$BT_TESTS_GREP_BIN" "$@"
+}
+
+# ok() with the test name `$3` on the result of bt_grep() matching the
+# pattern `$1` within the file `$2`.
+bt_grep_ok() {
+       local pattern=$1
+       local file=$2
+       local test_name=$3
+
+       bt_grep --silent "$pattern" "$file"
+
+       local ret=$?
+
+       if ! ok $ret "$test_name"; then
+               {
+                       echo "Pattern \`$pattern\` doesn't match the contents of \`$file\`:"
+                       echo '--- 8< ---'
+                       cat "$file"
+                       echo '--- >8 ---'
+               } >&2
+       fi
+
+       return $ret
+}
 
 ### Functions ###
 
@@ -309,7 +336,7 @@ check_coverage() {
 run_python() {
        local our_pythonpath="${BT_TESTS_SRCDIR}/utils/python"
 
-       if [[ $BT_TESTS_PYTHON_VERSION = 3.4 ]]; then
+       if [[ $BT_TESTS_PYTHON_VERSION =~ 3.[45] ]]; then
                # Add a local directory containing a `typing.py` to `PYTHONPATH` for
                # Python 3.4 which doesn't offer the `typing` module.
                our_pythonpath="$our_pythonpath:${BT_TESTS_SRCDIR}/utils/python/typing"
@@ -358,7 +385,7 @@ run_python_bt2() {
        # existing ASAN_OPTIONS, 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 | grep -q '^gcc'; then
+               if ${BT_TESTS_CC_BIN} --version | head -n 1 | bt_grep -q '^gcc'; then
                        lib_asan="$(${BT_TESTS_CC_BIN} -print-file-name=libasan.so)"
                        local -x LD_PRELOAD="${lib_asan}${LD_PRELOAD:+:}${LD_PRELOAD:-}"
                fi
This page took 0.024663 seconds and 4 git commands to generate.