#!/bin/bash
#
# Copyright (C) 2019 Francis Deslauriers <francis.deslauriers@efficios.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; only version 2
# of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

# This file tests what happens when we mux messages.

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"

data_dir="$BT_TESTS_DATADIR/plugins/flt.utils.muxer"

plan_tests 12

function run_test
{
	local test_name="$1"
	local local_args=(
		"--plugin-path" "$data_dir"
		"-c" "src.test-muxer.TheSourceOfConfusion"
		"-p" "test-name=$test_name"
		"-c" "sink.text.details"
		"--params=compact=false,with-metadata=false"
	)

	stdout_expected="$data_dir/succeed/$test_name.expect"
	bt_diff_cli "$stdout_expected" /dev/null "${local_args[@]}"
	ok $? "$test_name"
}


test_cases=(
	basic_timestamp_ordering
	diff_event_class_id
	diff_event_class_name
	diff_inactivity_msg_cs
	diff_stream_class_id
	diff_stream_class_name
	diff_stream_class_no_name
	diff_stream_id
	diff_stream_name
	diff_stream_no_name
	diff_trace_name
	multi_iter_ordering
)

for i in "${test_cases[@]}"
do
	run_test $i
done
