-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Review tests + request for additional test ideas for Podman #19299
Comments
I feel this can be run as a packit + TMT task on every PR. @cevich @edsantiago PTAL, are we running some version of these tests already in our CI? |
Sorry, I mean that is just so that we find any issues before it goes to OpenQA. |
Sorry.... I'm feeling a little lost her, more so because I have no familiarity with OpenQA. But first, am I understanding correctly that there are two questions at play here?
If my interpretation is wrong, then nothing I say below is of any worth, and I would appreciate clarification. If my interpretation is correct: what problem are we trying to solve here? What problem is OpenQA trying to address? When/where does OpenQA run? Who is writing those tests? Who is checking that they pass? Who is identifying test failures, reporting podman bugs if appropriate, fixing test bugs, or ignoring flakes? Is it important for OpenQA to have its own set of tests, instead of using existing ones? And, one thing I immediately noticed is, the excerpt above uses |
I'm kinda sorta wrapping my head around it too, chatting with fedora infra people on the side. Here's what I gathered. @mairin correct me if I'm wrong. I think my question can be ignored for now. Let's focus on @mairin's.
Testing podman at the bodhi update level. Whether a podman bodhi update works well with other bodhi updates, builds meant to be released in fedora.
@mairin and/or Fedora QA (I think).
That would be both Fedora QA and the bodhi owners (us).
They are perl tests for now. So, it'll need to be its own set. |
Ack, thanks. So at the bodhi level we then have gating tests, manual (human) thumbs-ups, and OpenQA. What do the OpenQA tests offer that is not adequately addressed by the other two? |
@edsantiago for just Podman tests in OpenQA.... every time a core Fedora component is updated (for example, systemd, or selinux policy), the Podman tests will be run again in Fedora OpenQA. This means if a change to systemd or selinux breaks Podman, Fedora OpenQA will let us know. The dream I am particularly pursuing on this, is getting Podman Desktop into Fedora OpenQA too. This could also benefit Podman in that if a change in Podman breaks Podman Desktop, the Podman Desktop test would fail and we'd know which Podman update broke it. |
AHA! Thank you, that's what I was missing: we're talking reverse dependency testing, our long-sought-after holy grail. This is excellent. The question now becomes: how much does podman get, resource-wise? (Seconds? Minutes?) Do tests run as root or rootless (or, best, both)? The testing candidates that spring immediately to mind are:
|
@edsantiago from adamw:
The current podman test linked above takes about 5 minutes and most of that is installing podman, the rest is creating a simple httpd container. |
All right! Thanks for your patience. Would it be acceptable for OpenQA to invoke external tests? To be specific, see #19302. TL;DR we already package |
IIUC, yes, that's totally fine (and awesome as it saves me work!) If literally all openQA needs to do, once it's set up a generally-working environment to test and has podman installed, is install podman-tests and run one command (and fail if the command fails), yes, that is super easy to do, I can implement that in thirty seconds flat. No problem at all. |
Excellent! Thank you!
Yes and yes, but (I keep having to learn not to make assumptions) would it be possible to report the output as part of the failure? Assuming so, I will proceed with #19302. |
yes, sure. you'd get a screenshot of it for free, but we can easily redirect the output to a file and upload it on failure. |
I fully support better and especially reverse dependency testing. |
Yes, it would be prevented from going stable unless the failure was somehow resolved or the maintainer waived it. |
Ha! Thanks for the PR link @edsantiago, it answers exactly the question I was going to ask: How do we ensure new OpenQA relevant tests get picked up, and ensure old/renamed/moved/retired tests are handled appropriately? |
BATS 1.8.0 introduces tags: metadata that can be applied to a single test or one entire file, then used for filtering in a test run. Issue containers#19299 introduces the possibility of using OpenQA for podman reverse dependency testing: continuous CI on all packages that can affect podman, so we don't go two months with no bodhi builds then get caught by surprise when systemd or kernel or crun change in ways that break us. This PR introduces one bats tag, "distro-integration". The intention is for OpenQA (or other) tests to install the podman-tests package and run: bats --filter-tags distro-integration /usr/share/podman/test/system Goal is to keep the test list short and sweet: we do not need to test command-line option parsing. We *DO* need to test interactions with systemd, kernel, nethack, and other critical components. Signed-off-by: Ed Santiago <[email protected]>
[ Clean cherry-pick of containers#19302. This is a low-risk change with potentially very high ROI: the opportunity to catch interaction problems with updates in other system components. ] BATS 1.8.0 introduces tags: metadata that can be applied to a single test or one entire file, then used for filtering in a test run. Issue containers#19299 introduces the possibility of using OpenQA for podman reverse dependency testing: continuous CI on all packages that can affect podman, so we don't go two months with no bodhi builds then get caught by surprise when systemd or kernel or crun change in ways that break us. This PR introduces one bats tag, "distro-integration". The intention is for OpenQA (or other) tests to install the podman-tests package and run: bats --filter-tags distro-integration /usr/share/podman/test/system Goal is to keep the test list short and sweet: we do not need to test command-line option parsing. We *DO* need to test interactions with systemd, kernel, nethack, and other critical components. Signed-off-by: Ed Santiago <[email protected]>
This is now landed in openQA downstream. |
A friendly reminder that this issue had no activity for 30 days. |
@mairin @AdamWill @lsm5 @edsantiago @Luap99 any update on this? |
Well, as far as I'm concerned, it's implemented - we landed the testing downstream, as I mentioned above. The tests are now running on every Fedora update that contains a package in the critical-path-base or core comps groups, see https://openqa.fedoraproject.org/tests/2149856#next_previous for how frequently they're running (that's just on Fedora 39). There are a couple of warnings shown at the console when the tests complete, but they don't seem to be a problem: If there's any further testing we can do, I'm happy to add it, but I'm not the best person to suggest tests, I don't think! |
I think we can close this, the test tags are in our upstream repo so if anyone wants to add more tests we can add them at any point, see 33891e8 |
Feature request description
Fedora's OpenQA runs some basic testing on Podman right now:
https://openqa.fedoraproject.org/tests/2024118/modules/podman/steps/1/src
These are the things it is testing. Are there other things we should be testing?
Suggest potential solution
It would be lovely to get a list of commands or functionality we should test in Podman on Fedora OpenQA that we are not currently testing.
Have you considered any alternatives?
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
The text was updated successfully, but these errors were encountered: