Add podman-desktop to OpenQA for testing #298
Open
opened 2023-07-20 17:22:20 +00:00 by duffy
·
10 comments
No Branch/Tag specified
main
freeipa-login-fix
fix-map-scale
fix-maps-route
fix-offscreen-userspoke
kde-network-fix-invisible
remote-desktop-debug
notifications-disable-f43-aarch64
sut_packages
arch-check-rmdepcheck-only
fix/kmscon
fix/silverblue_serial_console
fix/double_file
webui-custom-kde-updates
revert-colorize-disable
util-cannon
anaconda-boot-next-gnome
fix/ssh_check
podman-skip-passt
live-switched-passwordfix
notifications-fresh-user
eln-kde-cyrillic-no-switch
staging
fix/maps_loading
fix/anaconda_slowness
root-exists-tweak
kickstart-badpackage
fix/start_setup
fix/maximize
systemd-terminal-scattergun
fix/fonts
newtest/openvpn
xrdp-cannon
kde-login-cannon
2440238-testcannon
fix/calculator
initrd-hang-cannon
gnome-ibus-crash-cannon
bash_syntax_fix
keyring-kwallet-create
updates-server-boot-iso
plasmalogin-updates
kernel-vmmouse-bisect
fix-testdata-link
overlay_attempts
eol-cleanups-202601
needle-cleanup-202601
ci-f41-fix
kde-plasma-setup-changes
nmcli-discovery-refine
blivet-custom-larger-boot
vkcube-42-error
vk-validate
kde-dug-retry
fix/update_to_new_repository
2404267-poking
usb-aarch64
silverblue-aarch64
aarch64-compose-misc
updates-server-aarch64
container-kiwi-aarch64
no-aarch64-groups
updates-kde-disk-aarch64
boot_iso_as_usbdisk
boot_iso_as_usbdisk_adam
boot_iso_as_usbdisk_alternative
update-upgrade-aarch64
updates-cloud-aarch64
support-server-link
blivet-swraid-moar-raid
better-ostree-fixes
fix-updvercheck-canned
webui-language-adams-version
setup-repos-retry-downloads
aarch64-ebi
kde-updates-keyring
fix/fullscreen
fix/login2
rmdepcheck
iot-static-stop-greenboot
whoami-output
more-dnf-retry
webui_european_language
createrepo-retry
rdp-aarch64-console
desktop-login-kde
updates-kde-aarch64
remote_desktop_freerdp
kde-anaconda-launch-welcome
kde-unwanted-gtk2
keyboard_layout_webui
gis-tz-49
kde-aarch64
journal-avc-dump
kleopatra-startstop
fix/i3tiling
updates-workstation-aarch64
update-cloud
package-ftp-autofs
podman-tcp-flake
webui-no-user
iot-ignition
no-kgpg
fix/browser
webui-datetime
software-key-prompt
updates-desktop-login
show_details_when_failed
podman-bats-rootless
podman-full-adam
podman-rootless
unified_buttons
rdp-server-wait
cis-update
kernel-mystery-permissive
pass_KDE_webUI
kde-webui-adamw
fix-upgrade
newtest/sofware2
tag-reduce-updatepkgs
kde-okular
add_tests_for_papers
webui-updates
navigation-showtime
uefi-fallback-no-transient
openh264-change
update-upgrade-best
check-signed-packages
gte-48
fonts-adwaita
fix/gnome_start_stop
gnome-48
reduce-pagure-usage
boot_iso_as_usbdisk_old
newtest/kwrite
new_menu_launch_type
fmw-ws-kde
buildroot-repo
anaconda-layout-switch-click
newtest/dolphin
webui-custom
lukas_testing
test-2325780
os-release-addon
error_reporting
tweak-update-fwupd
webui-lang-select
onyx-test
test-2329581
live-install-retry
workaround-2335913
cpu-host
vnc-to-rdp
extend_navigation
kde_kcalc
kde_gwenview
kiwi-live-refactor
gnome_accessibility
dnf5
abstract-launch-terminal
printing-robustify-maximize
extend-desktop-update-tests
kde-applications
keyring-simplify-robustify
i3-tests-rebased
dm-login-factor
kde62-update-fix
eln-updates
rawhide-ver-ge
ptyxis
update-fonts-test
test-2442-revert
lorax-check-packages
aarch64-update-tests
excludepkgs
gnome-calculator-short
updvercheck-dnf
firefox-studies-update
serial-mode-no-question
silverblue_startstop
fix_timer_needle
desktop_keyring
desktop_keyring_ssh
updates-netinst-addrepos
flatpak-proxy
copr
dnf5-fixes
drop-1943943-workaround
kiwi-container
graphical_upgrade_workstation
22747700-debug
apps-startstop-optimize
prerelease-softfail-iot
newtest/navigation
secure-boot-test
fix-skip-repo-setup
updates-silverblue-uefi
iot-309-workaround
guw-lukas
fix/location
numdisks-fix
fix/startstop_kde
toolbox-compose-test
cockpit_partitioning
workstation-osbuild
gtk-test
newtest/window-manager
concdl
revert-update-images
needle-cleanup-202401
aasetting-no-black
flatpak_install
rtt-tests
sysmon-click
cheese-snapshot
fix/timestamp
select_language
newtest/loupe
pikvm
fix-gis
webui
domain-replica-decommission
desktop_high_contrast
podman-upstream
samba-workaround
new_anaconda_workstation
http2
fontfix
fix/login
ad-fix
flock_talk
samba-ad
turkish_installation
retire_modularity
pagure-retry
sumantro-review
fix/volumebar
test-tag
fix/gnome-text-editor
eln-more-tests
newtest/tour
update-image
eln
ocr-needles
simplify-blivet-resize-ppc
ostree-custom-ref
needle-cleanup-202304
kill-universal
serialfixes
newtest/gnome-panel
fix-evince
newtest/software
newtest/fonts
package-test-pandoc
pykickstart-update-fix
better-check-nonmatching
ostree-generic
image-build-rawhide-buildroot
fix-maps
lowlevel
fix-nautilus
ostree
chunked-nvrs
fix/deduplicate_needles
tap2
ostree-build
newtest/maps
gis-ipa
move-vars
fix/default_fonts
newtest/contact
fix/bugzilla-crash-reporting
system_monitor
fix/newtest-needle
bugreporter
newtest/archiver
rebase-ro-workaround
fix/text_editor
ipa-enable-dnssec
disable-updates-testing-upgradepre
aarch64-more-workstation
weston
fix/2120433-workaround
ostree-usroverlay
fix/modularity_rawhide
gtk4
anaconda-gpt-default
fix/startstop-tests
fix/37-gnome-fixes
nautilus-fixes
newtest/weather
calculator-flatpak
newtest/calculator
ci-latest-container-2
large-updates
perltidy
perllint
fix/desktop_login
newtest/file_manager
upstream-retry
repodata_fix
newtest/help
newtest/clocks
rhel-trial
firefox-quit-fail-reboot
fix/kde_setup
firefox-ostree
feature/i18n_default_fonts
fix/vault
drop-workarounds-36
rawhide-updates
update-tweak-again
test/system-settings
gte-old
iot-uefi
fix/desktop_printing_cupsless
fix/fedora-release.pm
newtest/gnome-text-editor
fix/supporting_routines
eog/defensive
fix/boot_to_anaconda
more-addrepo-fun
newtest/gui-upgrade
upgrade-postinstall
postupgrade_tests
ci-latest-container
newtest/eog
gnome-app-robust
workaround-1999321
freeipa-noresolved
shell-overview-robustify
fix-root
update-install-source-check
addrepo-metalink
newtest/gedit
needle-cleanup-2021
fprint-auth
newtest/evince
cloud-uefi
fix-osrelease-fedoralinux
autococonut/hello_world
fix/issue_228
desktop-update-loop-tweak
desktop-upgrade-aarch64
updates-podman
newtest/kde_plasma_disks_vault
jpeglx-workaround
japanese-input-method
cleanup-update-needles
delete_unused_needles
smolkonsole-fix
nonlive-fix
fix-check-source
fix-cloud
fix/install_resize_lvm
vnc-boxes-to-connections
drop-1691487-workaround
enhancement/modularity_list
unwanted-packages
move-blivet-resize-lvm
newtest/modularity_test_all
kde-notifications-f34
fix-kde-updates
test/btrfs_preserve_home_uefi
aarch64-encrypt-workaround
kde-system-monitor
gnome-shell-overviewdefault
kde-apps-lo
kde-update-fix
fix-preserve-home
feature/custom_blivet_lvm_ext4
feature/custom_blivet_standard
feature/custom_blivet_preserve_home
feature/custom_btrfs_preserve_home
not-domain-local
cockpit-234
fix/search_for_textfield
fix/standard
fix/lvm_tests
universal-overhaul
apptest_gedit
cockpit-232-fix
unify-base-tests
aarch64-images
fix/configure_menu
simplify-notifications
freeipa-resolved
no-pkgs-for-arch
coreos
gis-next
reboot-gnome
feature_mousedrag
install-with-swap
iot-zezere
new-host-ip
clevis-tpm
base-update
iot-rpmostree-overlay
blivet_reset_resize
No results found.
Labels
Clear labels
Closed As
Duplicate
Closed with the reason of Duplicate
Closed As
Fixed
Closed with the reason of Fixed
Closed As
Invalid
Closed with the reason of Invalid
easyfix
freeipa
issues or enhancement requests related to FreeIPA in some way
improvetest
some kind of improvement (but not bug fix) to an existing test
iot
issues relating to test enablement on Fedora IoT
newtest
requests for new tests
silverblue
issues relating to test enablement on Fedora Silverblue
tracker
tracker issue, only exists to track a set of related issues
ai-review-please
Request AI review for a pull request
Backlog Status
Needs Review
Work items that have been created or updated but need review, refinement, or approval before they can be considered ready for sprint planning.
Backlog Status
Ready
Work items that have been reviewed, refined, and are ready to be committed to a sprint. These items have clear requirements and can be worked on immediately when capacity is available.
chore
Work that needs to be done but doesn't add new functionality or fix bugs. Maintenance tasks that keep the system running smoothly and the codebase clean.
documentation
Work focused on creating, updating, or improving documentation for users, developers, or system administrators.
points
01
A task that is simple, small, and has very little uncertainty. It should be easy enough for any team member to pick up and complete quickly, without a lot of discussion or research.
points
02
This is a task that is slightly more complex or larger than a "1." It might involve two or three simple steps, but the outcome is still very clear and there's little uncertainty.
points
03
Medium-sized task with some noticeable complexity. It might require a bit more thought or collaboration. The steps are well-defined, but it's not a trivial change.
points
05
A significant piece of work. It has more complexity and a higher degree of uncertainty than smaller tasks. It might require some research, a design discussion, or collaboration across multiple teams.
points
08
Complex task with a lot of uncertainty. It's often the largest size that a team will consider for a single sprint. It likely requires a detailed breakdown and multiple team members to complete.
points
13
Any task that feels like it's a "13" or more is considered an Epic. These are too large and uncertain to be worked on in a single sprint and should be broken down.
pr2jira
Sync this pull request to Jira for Agility tracking. Only use for PRs without a corresponding ticket.
Priority
Critical
This is for work that is urgent and of critical importance and so and must be addressed immediately with a higher priority than all other work, even if not originally planned for the current sprint.
Priority
High
This is for work that is critical and needs to be addressed in the next sprint. It's often for urgent bugs, important features, or a major piece of technical debt that is blocking other work.
Priority
Low
This is for work that is good to do but not urgent. It's a candidate for being worked on when there's extra time or when it rises in importance. It can stay in the backlog for a longer period.
Priority
Medium
This is for important work that should be done soon, but isn't as urgent as a high-priority item. It will likely be considered for the next 1-2 sprints.
Sprint Status
Blocked
Work items that cannot progress due to external dependencies, blockers, or issues that need resolution.
Sprint Status
Done
Work items that have been completed, reviewed, and integrated. No further work is needed within the current sprint.
Sprint Status
In Progress
Work items currently being worked on by a team member. Active development, research, or implementation is happening.
Sprint Status
Review
Work items that are complete but need review, testing, or approval before being marked as done.
Sprint Status
To Do
Work items that are committed to the sprint but haven't been started yet. These items are ready to be picked up by team members.
Technical Debt
Work that addresses shortcuts, workarounds, or suboptimal implementations that were done previously to meet deadlines. These items improve code quality, maintainability, or performance without adding new features.
Work Item
Bug
Issues where the system is not working as intended or designed. Bugs represent deviations from expected behavior.
Work Item
Epic
Large initiatives that are broken down into multiple smaller work items (user stories, tasks, bugs). Epics represent significant features or projects that span multiple sprints.
Work Item
Spike
Time-boxed research, investigation, or proof-of-concept work to reduce uncertainty or explore solutions. Spikes help inform future development decisions.
Work Item
Task
Used to break down larger user stories into smaller, manageable implementation pieces. They focus on the specific technical steps needed to deliver the user story's value.
Work Item
User Story
User-facing features or functionality that can be framed from a user perspective, describing what someone wants to accomplish and why.
No labels
Closed As
Duplicate
Closed As
Fixed
Closed As
Invalid
easyfix
freeipa
improvetest
iot
newtest
silverblue
tracker
ai-review-please
Backlog Status
Needs Review
Backlog Status
Ready
chore
documentation
points
01
points
02
points
03
points
05
points
08
points
13
pr2jira
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Sprint Status
Blocked
Sprint Status
Done
Sprint Status
In Progress
Sprint Status
Review
Sprint Status
To Do
Technical Debt
Work Item
Bug
Work Item
Epic
Work Item
Spike
Work Item
Task
Work Item
User Story
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
4 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
quality/os-autoinst-distri-fedora#298
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
Hi, I work on the Podman Desktop GUI for podman, and it would be very nice to have automated testing for Podman Desktop in Fedora OpenQA, particularly if Podman Desktop tests could be triggered by updates to podman, which is already in Fedora OpenQA.
There are a few complications to getting it into OpenQA:
Proposal
Would it be possible to investigate what it would take to pull a flatpak from flathub into Fedora OpenQA to enable testing of Podman Desktop?
OK, so, this is a bit different from my understanding on IRC, but - good news! - in a good way.
Having openQA install something from flathub is totally trivial. That's not a problem at all. The more difficult bit is if we want to run tests when something in Podman Desktop changes and communicate the results to Podman Desktop upstream, because all the scheduling/reporting bits aren't really...set up for that.
But if the request is just "test Podman Desktop when podman changes", that is actually easier. We already run tests when podman changes. All we need to do is add another test which installs Podman Desktop and does whatever stuff you want to do in it. That's not hard at all, we just have the test run a
flatpak install, simples. Of course, the test would need to be kept up to date for changes in Podman Desktop itself, but that's not so different from various other tests we have.So...we can definitely do this much. Can you specify what exactly you would like us to test in Podman Desktop? Ideally in a way that's understandable for someone who's never run it? :D
Hey @adamwill, If it is possible the aim would be something like on github actions: https://github.com/containers/podman-desktop/blob/main/.github/workflows/pr-check.yaml#L218.
Requires nodejs 18, yarn installed, xvnc or xvfb so we can run e2e tests. I am not sure what is your environment and what automation could do there.
So, running this kind of test suite within openQA feels like a bit of an "impedance mismatch" to me generally speaking (and it can be tricky to run it on the app when installed "conventionally", sometimes they assume they are running from within a copy of the code repo, though I don't know if that's the case here).
What I would likely do instead is just reimplement that in 'native' openQA test code - that is, write an openQA test that just runs podman-desktop and follows basically the same steps (check it sees the startup screen, click through the analytics prompt, check it reaches the main screen), using openQA's native approach (screenshot matching).
We do something similar with Cockpit, where Cockpit upstream has a very extensive set of selenium-based tests, and openQA tests a smaller subset of the same functionality, but using screenshot matching to test as an end user would see it; this turns out to be quite valuable, because openQA can catch stuff that just introspecting the DOM can't, like a font looking wrong or missing characters, for instance.
I do see that the test framework podman-desktop uses has some basic screenshot matching functionality, which is cool, but openQA's may be more sophisticated (it matches areas, does some configurable fuzzing, has a 'tag' system for flexibility with letting different images match when appropriate, and can click on the stuff it matches).
if it's possible to run the upstream test very easily on podman-desktop installed to a regular Fedora system via flatpak, we could look at doing it, though. I just don't know if that's the case.
Metadata Update from @adamwill:
I am not familiar with openQA at all so it is hard to precisely decide what way could be better, nor I can tell if rewriting would make things easier...
To run the upstream e2e tests you need to build the project using node and yarn. Then some virtual buffer is needed to work with UI of the app, upload the result in some way, report it.
We could avoid all this if we can install app using flatpak file (for example available from github repo on nightly builds or from a stable release tag) and then run these openQA based tests. They just need to interact with the electron app through UI in order to perform some scenario.
Do you happen to have such example somewhere?
Right, that's pretty much what I figured: it'll be easier to just write an openQA "native" test that exercises the basic UI features, than try to execute the upstream test in an installed system environment.
An example would be the Cockpit tests - e.g. https://pagure.io/fedora-qa/os-autoinst-distri-fedora/blob/main/f/tests/server_cockpit_basic.pm . It's not exactly rocket science, just "look for this, click it, type this" and some logic for handling cases where a click gets lost or something. The 'needles' live under https://pagure.io/fedora-qa/os-autoinst-distri-fedora/blob/main/f/needles/cockpit , they are basically a screenshot paired with a JSON metadata file defining specific areas of the screen to be matched and some other stuff.
Anyway, we would write the test, you don't have to. It would be a part of this project, which is the Fedora openQA test suite, which we (Fedora QA) maintain and are responsible for. It seems like a reasonable thing to add to that test suite which would provide value for both Fedora and upstream so I've no problem with doing it, just a case of finding the time (or @lruzicka might do it also). If you're super keen by all means PRs are welcome, but they're not necessary and it is a bit of a trek to get an openQA instance up and running and learn to write tests. https://fedoraproject.org/wiki/OpenQA is the starting point if you really want to try, though.
@adamwill That sounds good!
I would be interested, but has zero capacity, if you folks can (and I believe you are gonna be much faster) do it, it would be awesome. I can provide a PR review or any other data for proper test to be written.
@odockal, I am not very much experienced with Podman, but I can help you to write the openQA part if you give me a procedure to test what you need to be tested. Thanks.
yeah, sorry, I did not get back to this yet :( it's on my large teetering pile of "stuff it'd be cool to do but which isn't actually on fire".
@lruzicka if you want to take a swing at this, I think the place to start is the .ts files in https://github.com/containers/podman-desktop/tree/main/tests/src . Similar to openQA tests, you can sort of see the essentials of what they're testing even if you don't understand the test framework - the comments and text for the actual test steps are handy. The idea would be, I think, to reimplement some or all of those tests as openQA tests.