diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 01:47:29 +0000 |
commit | 0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d (patch) | |
tree | a31f07c9bcca9d56ce61e9a1ffd30ef350d513aa /security/nss/tests/common/parsegtestreport.sh | |
parent | Initial commit. (diff) | |
download | firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.tar.xz firefox-esr-0ebf5bdf043a27fd3dfb7f92e0cb63d88954c44d.zip |
Adding upstream version 115.8.0esr.upstream/115.8.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'security/nss/tests/common/parsegtestreport.sh')
-rw-r--r-- | security/nss/tests/common/parsegtestreport.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/security/nss/tests/common/parsegtestreport.sh b/security/nss/tests/common/parsegtestreport.sh new file mode 100644 index 0000000000..f0a879a42f --- /dev/null +++ b/security/nss/tests/common/parsegtestreport.sh @@ -0,0 +1,44 @@ +#! /bin/sh +# +# parse the gtest results file this replaces a sed script which produced +# the identical output. This new script is now independent of new unknown +# labels being introduced in future revisions of gtests. + +#this function extracts the appropriate value from +# <testcase label="value1" label2="value2" label3="value3" /> +# which value is selected from the label , which is specified +# as the 2nd parameter. The line to parse is the first parameter. +getvalue() +{ + pattern1='*'${2}'="' + pattern2='"*' + front=${1#${pattern1}} + if [[ "${front}" != "${1}" ]]; then + val=${front%%${pattern2}} + # as we output the result, restore any quotes that may have + # been in the original test names. + echo ${val//"/\"} + fi +} + +parse() +{ + while read line + do + if [[ "${line}" =~ "<testcase " ]]; then + name=$(getvalue "${line}" "name") + value=$(getvalue "${line}" "value_param") + stat=$(getvalue "${line}" "status") + class=$(getvalue "${line}" "classname") + echo "${stat} '${class}: $(echo ${name} ${value})'" + fi + done +} + +# if no arguments, just take standard in, if arguments, take the args as +# files and cat them together to parse +if [ $# -eq 0 ]; then + parse +else + cat "$@" | parse +fi |