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