Tests: use jq for extracting info from ctf2 traces
[lttng-tools.git] / tests / regression / tools / metadata / test_kernel
index 8954a7f36b4e230db19d9cd1b25e4472d094d6a7..246b02460a561a10db46a371493a361faff3f033 100755 (executable)
@@ -1,6 +1,6 @@
 #!/bin/bash
 #
-# Copyright (C) 2019 Jonathan Rajotte-Julien <jonathan.rajotte-julien@efficios.com>
+# Copyright (C) 2019 Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
 #
 # SPDX-License-Identifier: LGPL-2.1-only
 
@@ -10,7 +10,7 @@ CURDIR=$(dirname "$0")/
 TESTDIR=$CURDIR/../../..
 EVENT_NAME="lttng_test_filter_event"
 
-TRACE_PATH=$(mktemp -d)
+TRACE_PATH=$(mktemp --tmpdir -d tmp.test_metadata_env_kernel_trace_path.XXXXXX)
 
 NUM_TESTS=13
 
@@ -21,16 +21,14 @@ source "$CURDIR/utils.sh"
 
 function test_kernel ()
 {
-       local metadata
-       local metadata_env
        local metadata_path
        local value
 
        local expected_path="${TRACE_PATH}/lttng-traces"
        local session_name="kernel"
+       local metadata_env
 
-       metadata=$(mktemp)
-       metadata_env=$(mktemp)
+       metadata_env=$(mktemp --tmpdir "tmp.${FUNCNAME[0]}_metadata_env.XXXXXX")
 
        diag "Test Kernel metadata env field"
        create_lttng_session_ok "$session_name"
@@ -45,13 +43,10 @@ function test_kernel ()
        # bt1 accepts only a directory while bt2 accepts either the metadata
        # file directly or a directory with an immediate metadata file.
        # Settle for the common denominator.
-       metadata_path=$(find "${expected_path}/${session_name}"* | grep metadata)
+       metadata_path=$(find "${expected_path}/${session_name}"* -name "metadata")
        metadata_path=$(dirname "$metadata_path")
 
-       $BABELTRACE_BIN --output-format=ctf-metadata "${metadata_path}" > "$metadata"
-
-       # Extract "env" scope
-       awk '/env {/,/};/' < "$metadata" > "$metadata_env"
+       extract_env_to_file "$metadata_path" "$metadata_env"
 
        # Construct the expected path from the env metadata and use it to
        # validate that all information make sense. This information is present
@@ -86,13 +81,13 @@ function test_kernel ()
        ok $? "Extracting hostname from env metadata"
        is "$value" "$(hostname)" "Hostname is valid"
 
-       rm -f "$metadata"
        rm -f "$metadata_env"
 }
 
 plan_tests $NUM_TESTS
 print_test_banner "$TEST_DESC"
 
+bail_out_if_no_babeltrace
 
 if [ "$(id -u)" == "0" ]; then
        isroot=1
@@ -119,7 +114,7 @@ skip $isroot "Root access is needed. Skipping all kernel metadata tests." $NUM_T
                ${fct_test}
        done
 
-       rmmod lttng-test
+       modprobe --remove lttng-test
 
        stop_lttng_sessiond
        unset LTTNG_HOME
This page took 0.025325 seconds and 5 git commands to generate.