| #!/bin/bash |
| # SPDX-License-Identifier: GPL-2.0 |
| # perf test junit XML output validation |
| |
| set -e |
| |
| err=0 |
| |
| shelldir=$(dirname "$0") |
| # shellcheck source=lib/setup_python.sh |
| . "${shelldir}"/lib/setup_python.sh |
| |
| result=$(mktemp /tmp/__perf_test.output.xml.XXXXX) |
| |
| cleanup() |
| { |
| rm -f "${result}" |
| trap - exit term int |
| } |
| |
| trap_cleanup() |
| { |
| echo "Unexpected signal in ${FUNCNAME[1]}" |
| cleanup |
| exit 1 |
| } |
| trap trap_cleanup exit term int |
| |
| test_junit_output() |
| { |
| echo "Testing perf test JUnit XML output command" |
| perf test -v -j"$result" util || true |
| if [ -s "$result" ] ; then |
| echo "perf test JUnit XML output command [SUCCESS]" |
| else |
| echo "perf test JUnit XML output command [FAILED]" |
| err=1 |
| fi |
| } |
| |
| validate_xml_format() |
| { |
| echo "Validating perf test converted JUnit XML file" |
| if [ -f "$result" ] ; then |
| if $PYTHON -c \ |
| "import xml.etree.ElementTree as ET; ET.parse('$result')" \ |
| >/dev/null 2>&1 ; then |
| echo "The file contains valid XML format [SUCCESS]" |
| else |
| echo "The file does not contain valid XML format [FAILED]" |
| err=1 |
| fi |
| else |
| echo "File not found [FAILED]" |
| err=1 |
| fi |
| } |
| |
| test_junit_output |
| validate_xml_format |
| |
| cleanup |
| exit ${err} |