#!/bin/bash
# perf timechart tests
# SPDX-License-Identifier: GPL-2.0

set -e

err=0
perfdata=$(mktemp /tmp/__perf_timechart_test.perf.data.XXXXX)
output=$(mktemp /tmp/__perf_timechart_test.output.XXXXX.svg)

cleanup() {
	rm -f "${perfdata}"*
	rm -f "${output}"
	trap - EXIT TERM INT
}

trap_cleanup() {
	echo "Unexpected signal in ${FUNCNAME[1]}"
	cleanup
	exit 1
}
trap trap_cleanup EXIT TERM INT

test_timechart() {
	NAME=$1
	OPTION=$2

	echo "perf timechart ${NAME} test"

	# Try to record timechart data.
	# perf timechart record uses system-wide recording and specific tracepoints.
	# If it fails (e.g. permissions, missing tracepoints), skip the test.
	if ! perf timechart record -o "${perfdata}" ${OPTION} true > /dev/null 2>&1; then
		echo "perf timechart ${NAME} test [Skipped: perf timechart record failed (permissions/events?)]"
		return
	fi

	# Generate the timechart
	if ! perf timechart -i "${perfdata}" -o "${output}" > /dev/null 2>&1; then
		echo "perf timechart ${NAME} test [Failed: perf timechart command failed]"
		err=1
		return
	fi

	# Check if output file exists and is not empty
	if [ ! -s "${output}" ]; then
		echo "perf timechart ${NAME} test [Failed: output file is empty or missing]"
		err=1
		return
	fi

	# Check if it looks like an SVG
	if ! grep -q "svg" "${output}"; then
		echo "perf timechart ${NAME} test [Failed: output doesn't look like SVG]"
		err=1
		return
	fi

	echo "perf timechart ${NAME} test [Success]"
}

if ! perf check feature -q libtraceevent ; then
	echo "perf timechart is not supported. Skip."
        cleanup
	exit 2
fi

test_timechart "Basic" ""
test_timechart "IO-only" "-I"
test_timechart "Backtrace" "-g"

cleanup
exit $err
