ci: Quick exit qpa extraction for non-matching qpas.

When you're bringing up a new driver in CI with significant number of
failures (or when a CI run breaks a driver), the QPA extraction can easily
take the whole job timeout as we go about processing each QPA (100 of them
in my early VK CI fails) per unexpected result we're saving (50), which
involves reading and each line of the file in shell.  By quickly filtering
out the QPA files not including our test, we can save all that shell
overhead, bringing QPA extract time down to a couple of minutes.

Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5225>
This commit is contained in:
Eric Anholt
2020-05-26 13:28:30 -07:00
committed by Marge Bot
parent 46d9b500f4
commit f0c102c075

View File

@@ -133,7 +133,13 @@ extract_xml_result() {
shift 1
qpas=$*
start="#beginTestCaseResult $testcase"
for qpa in $qpas; do
# Pick the first QPA mentioning our testcase
qpa=`grep -l "$start" $qpas | head -n 1`
# If we found one, go extract just that testcase's contents from the QPA
# to a new QPA, then do testlog-to-xml on that.
if [ -n "$qpa" ]; then
while IFS= read -r line; do
if [ "$line" = "$start" ]; then
dst="$testcase.qpa"
@@ -155,7 +161,7 @@ extract_xml_result() {
return 1
fi
done < $qpa
done
fi
}
extract_xml_results() {