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