xref: /linux/tools/perf/tests/shell/test_test_junit_output.sh (revision 3d5e48944e824bddc20d7b874e784f7b279636fe)
1*0dd60251SIan Rogers#!/bin/bash
2*0dd60251SIan Rogers# SPDX-License-Identifier: GPL-2.0
3*0dd60251SIan Rogers# perf test junit XML output validation
4*0dd60251SIan Rogers
5*0dd60251SIan Rogersset -e
6*0dd60251SIan Rogers
7*0dd60251SIan Rogerserr=0
8*0dd60251SIan Rogers
9*0dd60251SIan Rogersshelldir=$(dirname "$0")
10*0dd60251SIan Rogers# shellcheck source=lib/setup_python.sh
11*0dd60251SIan Rogers. "${shelldir}"/lib/setup_python.sh
12*0dd60251SIan Rogers
13*0dd60251SIan Rogersresult=$(mktemp /tmp/__perf_test.output.xml.XXXXX)
14*0dd60251SIan Rogers
15*0dd60251SIan Rogerscleanup()
16*0dd60251SIan Rogers{
17*0dd60251SIan Rogers	rm -f "${result}"
18*0dd60251SIan Rogers	trap - exit term int
19*0dd60251SIan Rogers}
20*0dd60251SIan Rogers
21*0dd60251SIan Rogerstrap_cleanup()
22*0dd60251SIan Rogers{
23*0dd60251SIan Rogers	echo "Unexpected signal in ${FUNCNAME[1]}"
24*0dd60251SIan Rogers	cleanup
25*0dd60251SIan Rogers	exit 1
26*0dd60251SIan Rogers}
27*0dd60251SIan Rogerstrap trap_cleanup exit term int
28*0dd60251SIan Rogers
29*0dd60251SIan Rogerstest_junit_output()
30*0dd60251SIan Rogers{
31*0dd60251SIan Rogers	echo "Testing perf test JUnit XML output command"
32*0dd60251SIan Rogers	perf test -v -j"$result" util || true
33*0dd60251SIan Rogers	if [ -s "$result" ] ; then
34*0dd60251SIan Rogers		echo "perf test JUnit XML output command [SUCCESS]"
35*0dd60251SIan Rogers	else
36*0dd60251SIan Rogers		echo "perf test JUnit XML output command [FAILED]"
37*0dd60251SIan Rogers		err=1
38*0dd60251SIan Rogers	fi
39*0dd60251SIan Rogers}
40*0dd60251SIan Rogers
41*0dd60251SIan Rogersvalidate_xml_format()
42*0dd60251SIan Rogers{
43*0dd60251SIan Rogers	echo "Validating perf test converted JUnit XML file"
44*0dd60251SIan Rogers	if [ -f "$result" ] ; then
45*0dd60251SIan Rogers		if $PYTHON -c \
46*0dd60251SIan Rogers		    "import xml.etree.ElementTree as ET; ET.parse('$result')" \
47*0dd60251SIan Rogers		    >/dev/null 2>&1 ; then
48*0dd60251SIan Rogers			echo "The file contains valid XML format [SUCCESS]"
49*0dd60251SIan Rogers		else
50*0dd60251SIan Rogers			echo "The file does not contain valid XML format [FAILED]"
51*0dd60251SIan Rogers			err=1
52*0dd60251SIan Rogers		fi
53*0dd60251SIan Rogers	else
54*0dd60251SIan Rogers		echo "File not found [FAILED]"
55*0dd60251SIan Rogers		err=1
56*0dd60251SIan Rogers	fi
57*0dd60251SIan Rogers}
58*0dd60251SIan Rogers
59*0dd60251SIan Rogerstest_junit_output
60*0dd60251SIan Rogersvalidate_xml_format
61*0dd60251SIan Rogers
62*0dd60251SIan Rogerscleanup
63*0dd60251SIan Rogersexit ${err}
64