168d12418SAnup Sharma#!/bin/bash
268d12418SAnup Sharma# 'perf data convert --to-json' command test
368d12418SAnup Sharma# SPDX-License-Identifier: GPL-2.0
468d12418SAnup Sharma
568d12418SAnup Sharmaset -e
668d12418SAnup Sharma
768d12418SAnup Sharmaerr=0
868d12418SAnup Sharma
968d12418SAnup Sharmaif [ "$PYTHON" = "" ] ; then
1068d12418SAnup Sharma	if which python3 > /dev/null ; then
1168d12418SAnup Sharma		PYTHON=python3
1268d12418SAnup Sharma	elif which python > /dev/null ; then
1368d12418SAnup Sharma		PYTHON=python
1468d12418SAnup Sharma	else
1568d12418SAnup Sharma		echo Skipping test, python not detected please set environment variable PYTHON.
1668d12418SAnup Sharma		exit 2
1768d12418SAnup Sharma	fi
1868d12418SAnup Sharmafi
1968d12418SAnup Sharma
2068d12418SAnup Sharmaperfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX)
2168d12418SAnup Sharmaresult=$(mktemp /tmp/__perf_test.output.json.XXXXX)
2268d12418SAnup Sharma
2368d12418SAnup Sharmacleanup()
2468d12418SAnup Sharma{
2568d12418SAnup Sharma	rm -f "${perfdata}"
2668d12418SAnup Sharma	rm -f "${result}"
2768d12418SAnup Sharma	trap - exit term int
2868d12418SAnup Sharma}
2968d12418SAnup Sharma
3068d12418SAnup Sharmatrap_cleanup()
3168d12418SAnup Sharma{
3268d12418SAnup Sharma	cleanup
3368d12418SAnup Sharma	exit ${err}
3468d12418SAnup Sharma}
3568d12418SAnup Sharmatrap trap_cleanup exit term int
3668d12418SAnup Sharma
3768d12418SAnup Sharmatest_json_converter_command()
3868d12418SAnup Sharma{
3968d12418SAnup Sharma	echo "Testing Perf Data Convertion Command to JSON"
4068d12418SAnup Sharma	perf record -o "$perfdata" -F 99 -g -- perf test -w noploop > /dev/null 2>&1
4168d12418SAnup Sharma	perf data convert --to-json "$result" --force -i "$perfdata" >/dev/null 2>&1
42*38b3fa07SAthira Rajeev	if [ "$(cat ${result} | wc -l)" -gt "0" ] ; then
4368d12418SAnup Sharma		echo "Perf Data Converter Command to JSON [SUCCESS]"
4468d12418SAnup Sharma	else
4568d12418SAnup Sharma		echo "Perf Data Converter Command to JSON [FAILED]"
4668d12418SAnup Sharma		err=1
4768d12418SAnup Sharma		exit
4868d12418SAnup Sharma	fi
4968d12418SAnup Sharma}
5068d12418SAnup Sharma
5168d12418SAnup Sharmavalidate_json_format()
5268d12418SAnup Sharma{
5368d12418SAnup Sharma	echo "Validating Perf Data Converted JSON file"
5468d12418SAnup Sharma	if [ -f "$result" ] ; then
5568d12418SAnup Sharma		if $PYTHON -c  "import json; json.load(open('$result'))" >/dev/null 2>&1 ; then
5668d12418SAnup Sharma			echo "The file contains valid JSON format [SUCCESS]"
5768d12418SAnup Sharma		else
5868d12418SAnup Sharma			echo "The file does not contain valid JSON format [FAILED]"
5968d12418SAnup Sharma			err=1
6068d12418SAnup Sharma			exit
6168d12418SAnup Sharma		fi
6268d12418SAnup Sharma	else
6368d12418SAnup Sharma		echo "File not found [FAILED]"
6468d12418SAnup Sharma		err=2
6568d12418SAnup Sharma		exit
6668d12418SAnup Sharma	fi
6768d12418SAnup Sharma}
6868d12418SAnup Sharma
6968d12418SAnup Sharmatest_json_converter_command
7068d12418SAnup Sharmavalidate_json_format
7168d12418SAnup Sharma
7268d12418SAnup Sharmaexit ${err}
73