All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony PERARD <anthony@xenproject.org>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: xen-devel@lists.xenproject.org,
	"Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>,
	"Anthony PERARD" <anthony.perard@vates.tech>,
	"Doug Goldstein" <cardoe@cardoe.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>
Subject: Re: [XEN PATCH 5/9] CI: Have the gitlab job fail on tools/tests failure
Date: Tue, 3 Jun 2025 17:58:44 +0200	[thread overview]
Message-ID: <aD8btMPtrwT2d7sS@l14> (raw)
In-Reply-To: <ba57188a-77b9-4386-bd5a-073903062864@citrix.com>

On Tue, Jun 03, 2025 at 02:41:50PM +0100, Andrew Cooper wrote:
> On 03/06/2025 1:42 pm, Anthony PERARD wrote:
> >  if [ -n "$retrieve_xml" ]; then
> >      nc -w 10 "$SUT_ADDR" 8080 > tests-junit.xml </dev/null
> > +    # Findout if one of the test failed
> > +    if ! grep -q '</testsuites>' tests-junit.xml; then
> > +        echo "ERROR: tests-junit.xml is incomplete or missing."
> > +        TEST_RESULT=1
> > +    elif grep -q '</failure>' tests-junit.xml; then
> > +        TEST_RESULT=1
> > +    fi
> >  fi
> >  
> >  exit "$TEST_RESULT"
> 
> A couple of things.
> 
> From my experimentation with junit,
> https://gitlab.com/xen-project/hardware/xen-staging/-/pipelines/1849342222/test_report?job_name=kbl-xtf-x86-64-gcc-debug
> we can also use </error> for classification.  I'm also very disappointed
> in Gitlab classifying <warning> as success.

According to the documentation [1] which point to this junit xml format [2]
the only elements (and path) are:
    testsuites.testsuite.testcase.failure
"error" or "warning" don't exist.
There's the attributes `type` in <failure> but this isn't explained how
it's used.

But I guess if we follow the link in [2], go through web.archive.org, we
can find [3] which has "skipped", "error", "failure", but still no
"warning".


[1] https://docs.gitlab.com/ci/testing/unit_test_reports/#unit-test-reporting-workflow
[2] https://www.ibm.com/docs/en/developer-for-zos/16.0?topic=formats-junit-xml-format
[3] https://github.com/windyroad/JUnit-Schema/blob/master/JUnit.xsd


> Not for this patch, but for XTF I need to be able to express "tolerable
> failure".  (All branches of Xen will run the same tests, and we don't
> have OSSTest to deem "fail never passed" as non-blocking.)

According to [1], there's a notion of "Existing failures", but that
might show up only on merge request.

> Even if the job passes overall, I want tolerable failures to show up in
> the UI, so I have to use <failure> in junit.xml.  But that means needing
> to be more selective, and I don't have a good idea of how to do this. 
> (I have one terrible idea, which is </failure type=tolerable"> which
> will escape that grep, but it feels like (ab)buse of XML.)

At the moment, `run-tools-tests` write '<failure type="failure"' on
failure, so we could grep on that instead event if it is sligtly more
fragile. I've choosen to grep on '</failure>' at first because that's
much less likely to be written differently, while the attributes in the
tag could be written in a different order.

Then, we can always use `sed` and extract the "type" to check it:
sed -n 's/.*<failure \(\|.* \)type="\([^"]\+\)" .*/\2/p' tests-junit.xml | while read type; do
  case $type in
    failure) echo fail;;
    tolerable) echo ok;;
    *) echo error unknwon type $type;;
  esac
done
But that maybe going a bit too far :-)

Cheers,

-- 
Anthony PERARD


  parent reply	other threads:[~2025-06-03 15:59 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-03 12:42 [XEN PATCH 0/9] CI: Fixes for tools/tests and junit and other Anthony PERARD
2025-06-03 12:42 ` [XEN PATCH 1/9] CI: Add SELECTED_JOBS_ONLY to analyze.yaml Anthony PERARD
2025-06-03 13:09   ` Andrew Cooper
2025-06-03 18:21     ` Stefano Stabellini
2025-06-03 12:42 ` [XEN PATCH 2/9] tools/tests: Fix return value of test-rangeset Anthony PERARD
2025-06-03 13:07   ` Andrew Cooper
2025-06-03 12:42 ` [XEN PATCH 3/9] CI: Fix status check for tools/tests Anthony PERARD
2025-06-03 13:07   ` Andrew Cooper
2025-06-03 18:22     ` Stefano Stabellini
2025-06-03 12:42 ` [XEN PATCH 4/9] CI: Ignore run-tools-test return value Anthony PERARD
2025-06-03 13:26   ` Andrew Cooper
2025-06-03 13:41     ` Marek Marczykowski-Górecki
2025-06-03 12:42 ` [XEN PATCH 5/9] CI: Have the gitlab job fail on tools/tests failure Anthony PERARD
2025-06-03 13:41   ` Andrew Cooper
2025-06-03 13:44     ` Marek Marczykowski-Górecki
2025-06-03 14:09       ` Andrew Cooper
2025-06-03 14:26         ` Andrew Cooper
2025-06-03 15:58     ` Anthony PERARD [this message]
2025-06-03 17:13       ` Andrew Cooper
2025-06-03 12:42 ` [XEN PATCH 6/9] CI: Upload junit result as artefact Anthony PERARD
2025-06-03 13:13   ` Andrew Cooper
2025-06-03 16:03     ` Anthony PERARD
2025-06-03 12:42 ` [XEN PATCH 7/9] CI: Use CDATA avoid the need to escape tests outputs Anthony PERARD
2025-06-03 13:04   ` Andrew Cooper
2025-06-03 18:27     ` Stefano Stabellini
2025-06-03 12:42 ` [XEN PATCH 8/9] CI: Workaround extra content in junit Anthony PERARD
2025-06-03 14:12   ` Andrew Cooper
2025-06-03 16:23     ` Anthony PERARD
2025-06-03 18:29       ` Stefano Stabellini
2025-06-03 18:37         ` Marek Marczykowski-Górecki
2025-06-03 21:49           ` Stefano Stabellini
2025-06-03 12:42 ` [XEN PATCH 9/9] CI: Add timing to junit Anthony PERARD
2025-06-03 14:16   ` Andrew Cooper
2025-06-03 18:35   ` Stefano Stabellini
2025-06-04  8:48     ` Anthony PERARD
2025-06-04 10:57       ` Andrew Cooper
2025-06-04 11:33         ` Marek Marczykowski-Górecki
2025-06-04 20:17           ` Stefano Stabellini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aD8btMPtrwT2d7sS@l14 \
    --to=anthony@xenproject.org \
    --cc=andrew.cooper3@citrix.com \
    --cc=anthony.perard@vates.tech \
    --cc=cardoe@cardoe.com \
    --cc=marmarek@invisiblethingslab.com \
    --cc=sstabellini@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.