X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=tests%2Fplugins%2Fsink.ctf.fs%2Ftest_stream_names;fp=tests%2Fplugins%2Fsink.ctf.fs%2Ftest_stream_names;h=03ed4174ce471691f625593e29bc26772ceb4002;hp=0000000000000000000000000000000000000000;hb=d19b245bad1fcd0ac56045819f927e206088e8a5;hpb=72d458a311ee9b8c2cc84d8ade5754e5ea517fcb diff --git a/tests/plugins/sink.ctf.fs/test_stream_names b/tests/plugins/sink.ctf.fs/test_stream_names new file mode 100755 index 00000000..03ed4174 --- /dev/null +++ b/tests/plugins/sink.ctf.fs/test_stream_names @@ -0,0 +1,88 @@ +#!/bin/bash +# +# SPDX-License-Identifier: GPL-2.0-only +# +# Copyright (C) 2020 EfficiOS Inc. +# + +# This file tests corner cases related to stream names: +# +# - two streams with the same name +# - a stream named "metadata" + +SH_TAP=1 + +if [ "x${BT_TESTS_SRCDIR:-}" != "x" ]; then + UTILSSH="$BT_TESTS_SRCDIR/utils/utils.sh" +else + UTILSSH="$(dirname "$0")/../../utils/utils.sh" +fi + +# shellcheck source=../../utils/utils.sh +source "$UTILSSH" + +# Directory containing the Python test source. +data_dir="$BT_TESTS_DATADIR/plugins/sink.ctf.fs/stream-names" + +temp_stdout=$(mktemp) +temp_expected_stdout=$(mktemp) +temp_stderr=$(mktemp) +temp_output_dir=$(mktemp -d) +trace_dir="$temp_output_dir/trace" + +plan_tests 9 + +bt_cli "$temp_stdout" "$temp_stderr" \ + "--plugin-path=${data_dir}" \ + -c src.foo.TheSource \ + -c sink.ctf.fs -p "path=\"${temp_output_dir}\"" +ok "$?" "run babeltrace" + +# Check stdout. +if [ "$BT_OS_TYPE" = "mingw" ]; then + echo "Created CTF trace \`$(cygpath -m ${temp_output_dir})\\trace\`." > "$temp_expected_stdout" +else + echo "Created CTF trace \`${trace_dir}\`." > "$temp_expected_stdout" +fi +bt_diff "$temp_expected_stdout" "$temp_stdout" +ok "$?" "expected message on stdout" + +# Check stderr. +bt_diff "/dev/null" "$temp_stderr" +ok "$?" "stderr is empty" + +# Verify only the expected files exist. +files=("$trace_dir"/*) +num_files=${#files[@]} +is "$num_files" "4" "expected number of files in output directory" + +test -f "$trace_dir/metadata" +ok "$?" "metadata file exists" + +test -f "$trace_dir/metadata-0" +ok "$?" "metadata-0 file exists" + +test -f "$trace_dir/the-stream" +ok "$?" "the-stream file exists" + +test -f "$trace_dir/the-stream-0" +ok "$?" "the-stream-0 file exists" + +# Read back the output trace to make sure it's properly formed. +cat <<- 'END' > "$temp_expected_stdout" +the-event: +the-event: +the-event: +END +bt_diff_cli "$temp_expected_stdout" /dev/null "$trace_dir" +ok "$?" "read back output trace" + +rm -f "$temp_stdout" +rm -f "$temp_stderr" +rm -f "$temp_expected_stdout" +rm -f "$trace_dir/metadata" +rm -f "$trace_dir/metadata-0" +rm -f "$trace_dir/the-stream" +rm -f "$trace_dir/the-stream-0" +rmdir "$trace_dir" +rmdir "$temp_output_dir"