Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix display of waived failures: consider subject and scenario (#5397) (backport #5480) #5499

Merged
merged 1 commit into from
Oct 3, 2023

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Oct 3, 2023

This is an automatic backport of pull request #5480 done by Mergify.


Mergify commands and options

More conditions and actions can be found in the documentation.

You can also trigger Mergify actions by commenting on this pull request:

  • @Mergifyio refresh will re-evaluate the rules
  • @Mergifyio rebase will rebase this PR on its base branch
  • @Mergifyio update will merge the base branch into this PR
  • @Mergifyio backport <destination> will backport this PR on <destination> branch

Additionally, on Mergify dashboard you can:

  • look at your merge queues
  • generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.com

On the Automated Tests tab, the web UI attempts to indicate when
a failed test has been waived. However, it can get this wrong in
several ways. It stores the waivers only by testcase - not by
subject or scenario - so if greenwave returns any waiver for the
testcase, it will mark any failure of that testcase for the
update as 'waived'. This can be incorrect if:

* The waiver was filed against the wrong subject and is invalid
* The waiver is for a different subject (different Koji build)
* The waiver is for a different scenario

This should fix all those problems. Instead of just parsing the
waivers, we primarily parse the satisfied requirements, and when
one is of type "test-result-failed-waived" - meaning it's a
failure that was waived - we store it in a nested hash of waived
failures. The outer hash's keys are subject identifiers, and its
values are hashes. In these inner hashes, the keys are the
testcase and scenario combined, and the values are the IDs of
waivers for that subject/testcase/scenario combination. We keep
a separate hash of waivers, the keys being the waiver IDs and
the values being the waivers.

So when we are constructing the result rows, we can check whether
there is a waived failure for the result's testcase, scenario and
subject, and only if so, we add the 'waived' marker, constructing
the necessary info from the waiver retrieved from the waivers
hash.

Signed-off-by: Adam Williamson <[email protected]>
(cherry picked from commit 8ae22c4)
@mergify mergify bot requested a review from a team as a code owner October 3, 2023 13:30
@mattiaverga mattiaverga merged commit befee26 into 7.2 Oct 3, 2023
27 of 29 checks passed
@mattiaverga mattiaverga deleted the mergify/bp/7.2/pr-5480 branch October 3, 2023 13:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants