Skip to content

Conversation

@kavishgr
Copy link

@kavishgr kavishgr commented Dec 5, 2025

  • Certify you wrote the patch or otherwise have the right to pass it on as an open-source patch by signing all
    commits. (git commit -s). (If needed, use git commit -s --amend). The author email must match
    the sign-off email address. See CONTRIBUTING.md
    for more information.
  • Referenced issues using Fixes: #00000 in commit message (if applicable)
  • Tests have been added/updated (or no tests are needed)
  • Documentation has been updated (or no documentation changes are needed)
  • All commits pass make validatepr (format/lint checks)
  • Release note entered in the section below (or None if no user-facing changes)

Does this PR introduce a user-facing change?

None

Fixes: #27647

Note on Dependencies:

This PR is dependent on the changes from issue #27653, as outlined in PR #27693. Once #27693 merges, I will rebase and push the changes here.

What I did (quadlet.go file):

  • Fixed reverseMap lookup by using the base filename instead of the full path, since reverseMap keys are filenames only

  • Added conditional path handling when expanding quadlets from .app files - use full paths when --all flag is set (since getAllQuadletPaths returns full paths), but use just filenames otherwise (since getQuadletPathByName expects filenames)

  • Moved the cleanup of .app and .asset metadata files outside the main quadlet removal loop. Previously these files were being left behind because they aren't included in allQuadletPaths. Now they're properly removed after all quadlets have been processed

  • Added logging for the files being removed

These changes fix the issue where .app files were not being deleted during removal(podman quadlet --all --force), and also resolve path resolution errors when removing individual apps (e.g., podman quadlet rm .nginx-test.app).

Test:

  • The test verifies that the podman quadlet rm -af command correctly removes all quadlet files.

@openshift-ci openshift-ci bot added the do-not-merge/release-note-label-needed Enforce release-note requirement, even if just None label Dec 5, 2025
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 5, 2025

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: kavishgr
Once this PR has been reviewed and has the lgtm label, please assign honny1 for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Member

@Honny1 Honny1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did a quick check of the CI failure. I also fixed the release note format in the PR description.


// addIfUnique appends item to list if it has not already been seen in seenMap.
// it returns true if the item was newly added, false if it was already present.
func addIfUnique(seenMap map[string]struct{}, item string, list *[]string) bool {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pkg/domain/infra/abi/quadlet.go:758:76: addIfUnique - result 0 (bool) is never used (unparam)
func addIfUnique(seenMap map[string]struct{}, item string, list *[]string) bool {
                                                                           ^
1 issues:
* unparam: 1

@openshift-ci openshift-ci bot added release-note-none and removed do-not-merge/release-note-label-needed Enforce release-note requirement, even if just None labels Dec 5, 2025
kavishgr added a commit to kavishgr/podman that referenced this pull request Dec 5, 2025
…s#27653)

Fix: removed return statement, which was originally added for logging. Logrus handles the logging(in its related PR containers#27694).

Signed-off-by: Kavish Gour <[email protected]>
@kavishgr
Copy link
Author

kavishgr commented Dec 8, 2025

This PR now includes all necessary changes. We should abandon PR #27693 and only merge this current one.

Copy link
Member

@Honny1 Honny1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code LGTM. However, I have a question about the tests: is there a specific reason they weren't implemented in quadlet_test.go?

@kavishgr
Copy link
Author

kavishgr commented Dec 8, 2025

The code LGTM. However, I have a question about the tests: is there a specific reason they weren't implemented in quadlet_test.go?

On a closed PR regarding quadlets, a collaborator suggested that all quadlet tests should go into 36-quadlets.at. I think I might’ve misunderstood that, sorry about the mix up. I can write it in Ginkgo. I recently ran one and it passed. I can implement the rm -af tests using Podman commands, and we can keep the Libpod API test as it is

Copy link
Contributor

@ygalblum ygalblum left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nit

#
# Install quadlets(.container, .network, .volume)

quadlet_name=quadlet-rm-test-$(cat /proc/sys/kernel/random/uuid)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use safename (defined in helpers.bash)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it. Thanks.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, my bad, I though this was a bats test. I'm not sure this one has the safename

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No worries. I've updated the test name to quadlet-remove-all-test to keep it consistent.

@Honny1
Copy link
Member

Honny1 commented Dec 8, 2025

The code LGTM. However, I have a question about the tests: is there a specific reason they weren't implemented in quadlet_test.go?

On a closed PR regarding quadlets, a collaborator suggested that all quadlet tests should go into 36-quadlets.at. I think I might’ve misunderstood that, sorry about the mix up. I can write it in Ginkgo. I recently ran one and it passed. I can implement the rm -af tests using Podman commands, and we can keep the Libpod API test as it is

Yes, please write a simple test in Ginkgo.

@kavishgr kavishgr force-pushed the fix/issue-27647 branch 2 times, most recently from 7583fd1 to bc3a8f0 Compare December 8, 2025 18:32
@packit-as-a-service
Copy link

[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore.

2 similar comments
@packit-as-a-service
Copy link

[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore.

@packit-as-a-service
Copy link

[NON-BLOCKING] Packit jobs failed. @containers/packit-build please check. Everyone else, feel free to ignore.


Describe("Running quadlet force remove all", func() {
It("Should remove all quadlets at once", func() {
quadletName := fmt.Sprintf("quadlet-remove-all-test-%d", GinkgoRandomSeed())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be skipped on remote.

SkipIfRemote("quadlet is not supported for remote clients")

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Copy link
Member

@Honny1 Honny1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, please rebase on main.

@kavishgr
Copy link
Author

LGTM, please rebase on main.

Done. Rebased on latest main.


installSession := podmanTest.Podman([]string{"quadlet", "install", tmpDir})
installSession.WaitWithDefaultTimeout()
Expect(installSession).Should(Exit(0))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still fails on F43. I am not sure where the problem could be.

[FAIL] quadlet system generator Running quadlet force remove all [It] Should remove all quadlets at once
[+0894s]   /var/tmp/go/src/github.com/containers/podman/test/e2e/quadlet_test.go:1360

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ran the tests and they passed on my end. Here is the output:

❯ sudo ginkgo -v -focus "Running quadlet force remove all" test/e2e
Running Suite: Libpod Suite - /home/kavish/podman/test/e2e
==========================================================
Random Seed: 1766421735

Will run 1 of 2443 specs
------------------------------
[SynchronizedBeforeSuite]
/home/kavish/podman/test/e2e/common_test.go:169
  [image already cached: /var/tmp/quay.io-libpod-cirros-latest.tar]
  [image already cached: /var/tmp/quay.io-libpod-volume-plugin-test-img-20220623.tar]
  [image already cached: /var/tmp/quay.io-libpod-alpine-latest.tar]
  [image already cached: /var/tmp/quay.io-libpod-busybox-latest.tar]
  [image already cached: /var/tmp/quay.io-libpod-systemd-image-20240124.tar]
  [image already cached: /var/tmp/quay.io-lsm5-alpine_nginx-aarch64-latest.tar]
  [image already cached: /var/tmp/quay.io-libpod-redis-alpine.tar]
  [image already cached: /var/tmp/quay.io-libpod-registry-2.8.2.tar]
  [image already cached: /var/tmp/quay.io-libpod-k8s-pause-3.5.tar]
  [image already cached: /var/tmp/quay.io-libpod-testimage-20241011.tar]
  [image already cached: /var/tmp/quay.io-libpod-alpine_healthcheck-latest.tar]
  [image already cached: /var/tmp/quay.io-libpod-systemd-image-20240124.tar]
  Restoring quay.io/libpod/alpine:latest...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-alpine-latest.tar
  Loaded image: quay.io/libpod/alpine:latest
  Restoring quay.io/libpod/busybox:latest...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-busybox-latest.tar
  Loaded image: quay.io/libpod/busybox:latest
  Restoring quay.io/libpod/systemd-image:20240124...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-systemd-image-20240124.tar
  Loaded image: quay.io/libpod/systemd-image:20240124
  Restoring quay.io/lsm5/alpine_nginx-aarch64:latest...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-lsm5-alpine_nginx-aarch64-latest.tar
  Loaded image: quay.io/lsm5/alpine_nginx-aarch64:latest
  Restoring quay.io/libpod/redis:alpine...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-redis-alpine.tar
  Loaded image: quay.io/libpod/redis:alpine
  Restoring quay.io/libpod/registry:2.8.2...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-registry-2.8.2.tar
  Loaded image: quay.io/libpod/registry:2.8.2
  Restoring quay.io/libpod/k8s-pause:3.5...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-k8s-pause-3.5.tar
  Loaded image: quay.io/libpod/k8s-pause:3.5
  Restoring quay.io/libpod/testimage:20241011...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-testimage-20241011.tar
  Loaded image: quay.io/libpod/testimage:20241011
  Restoring quay.io/libpod/alpine_healthcheck:latest...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-alpine_healthcheck-latest.tar
  Loaded image: quay.io/libpod/alpine_healthcheck:latest
  Restoring quay.io/libpod/systemd-image:20240124...
  Running: /home/kavish/podman/bin/podman --root /tmp/podman-e2e-554133839/imagecachedir --runroot /tmp/podman-e2e-554133839/image-init/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/image-init --events-backend none --storage-driver overlay load -q -i /var/tmp/quay.io-libpod-systemd-image-20240124.tar
  Loaded image: quay.io/libpod/systemd-image:20240124
  -----------------------------
[SynchronizedBeforeSuite] PASSED [3.831 seconds]
------------------------------
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
------------------------------
quadlet system generator Running quadlet force remove all Should remove all quadlets at once
/home/kavish/podman/test/e2e/quadlet_test.go:1339
  Running: /home/kavish/podman/bin/podman --storage-opt overlay.imagestore=/tmp/podman-e2e-554133839/imagecachedir --root /tmp/podman-e2e-554133839/subtest-3789943928/p/root --runroot /tmp/podman-e2e-554133839/subtest-3789943928/p/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/subtest-3789943928/p --events-backend file --storage-driver overlay quadlet install /tmp/podman-e2e-554133839/subtest-3789943928/p/quadlet-remove-all-test-1766421735
  /etc/containers/systemd/quadlet-remove-all-test-1766421735.volume
  /etc/containers/systemd/quadlet-remove-all-test-1766421735.container
  /etc/containers/systemd/quadlet-remove-all-test-1766421735.network
  Running: /home/kavish/podman/bin/podman --storage-opt overlay.imagestore=/tmp/podman-e2e-554133839/imagecachedir --root /tmp/podman-e2e-554133839/subtest-3789943928/p/root --runroot /tmp/podman-e2e-554133839/subtest-3789943928/p/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/subtest-3789943928/p --events-backend file --storage-driver overlay quadlet list --format json
  [
    {
      "Name": "quadlet-remove-all-test-1766421735.container",
      "UnitName": "quadlet-remove-all-test-1766421735.service",
      "Path": "/etc/containers/systemd/quadlet-remove-all-test-1766421735.container",
      "Status": "inactive/dead",
      "App": ".quadlet-remove-all-test-1766421735.app"
    },
    {
      "Name": "quadlet-remove-all-test-1766421735.network",
      "UnitName": "quadlet-remove-all-test-1766421735-network.service",
      "Path": "/etc/containers/systemd/quadlet-remove-all-test-1766421735.network",
      "Status": "inactive/dead",
      "App": ".quadlet-remove-all-test-1766421735.app"
    },
    {
      "Name": "quadlet-remove-all-test-1766421735.volume",
      "UnitName": "quadlet-remove-all-test-1766421735-volume.service",
      "Path": "/etc/containers/systemd/quadlet-remove-all-test-1766421735.volume",
      "Status": "inactive/dead",
      "App": ".quadlet-remove-all-test-1766421735.app"
    }
  ]
  Running: /home/kavish/podman/bin/podman --storage-opt overlay.imagestore=/tmp/podman-e2e-554133839/imagecachedir --root /tmp/podman-e2e-554133839/subtest-3789943928/p/root --runroot /tmp/podman-e2e-554133839/subtest-3789943928/p/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/subtest-3789943928/p --events-backend file --storage-driver overlay quadlet rm -af
  quadlet-remove-all-test-1766421735.container
  quadlet-remove-all-test-1766421735.network
  quadlet-remove-all-test-1766421735.volume
  Running: /home/kavish/podman/bin/podman --storage-opt overlay.imagestore=/tmp/podman-e2e-554133839/imagecachedir --root /tmp/podman-e2e-554133839/subtest-3789943928/p/root --runroot /tmp/podman-e2e-554133839/subtest-3789943928/p/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/subtest-3789943928/p --events-backend file --storage-driver overlay quadlet list --format json
  []
  Running: /home/kavish/podman/bin/podman --storage-opt overlay.imagestore=/tmp/podman-e2e-554133839/imagecachedir --root /tmp/podman-e2e-554133839/subtest-3789943928/p/root --runroot /tmp/podman-e2e-554133839/subtest-3789943928/p/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/subtest-3789943928/p --events-backend file --storage-driver overlay stop --all -t 0
  Running: /home/kavish/podman/bin/podman --storage-opt overlay.imagestore=/tmp/podman-e2e-554133839/imagecachedir --root /tmp/podman-e2e-554133839/subtest-3789943928/p/root --runroot /tmp/podman-e2e-554133839/subtest-3789943928/p/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/subtest-3789943928/p --events-backend file --storage-driver overlay pod rm -fa -t 0
  Running: /home/kavish/podman/bin/podman --storage-opt overlay.imagestore=/tmp/podman-e2e-554133839/imagecachedir --root /tmp/podman-e2e-554133839/subtest-3789943928/p/root --runroot /tmp/podman-e2e-554133839/subtest-3789943928/p/runroot --runtime crun --conmon /usr/bin/conmon --network-config-dir /etc/containers/networks --network-backend netavark --cgroup-manager systemd --tmpdir /tmp/podman-e2e-554133839/subtest-3789943928/p --events-backend file --storage-driver overlay rm -fa -t 0
• [0.578 seconds]
------------------------------
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
------------------------------
[SynchronizedAfterSuite]
/home/kavish/podman/test/e2e/common_test.go:235
  integration timing results
  quadlet system generator Running quadlet force remove all Should remove all quadlets at once	0.523858
[SynchronizedAfterSuite] PASSED [0.177 seconds]
------------------------------

Ran 1 of 2443 Specs in 4.624 seconds
SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 2442 Skipped
PASS

Ginkgo ran 1 suite in 8.290264111s
Test Suite Passed

I also verified this against the latest main branch, and it passed there as well. Even with sudo ginkgo run -v --focus-file=quadlet_test.go test/e2e/, it’s still passing:

OUTPUT REDACTED

 quadlet system generator Running success quadlet test case logopt.container		0.013379
  quadlet system generator Running success quadlet test case label.container		0.013625
  quadlet system generator Running success quadlet test case exec.container		0.013705
  quadlet system generator Running success quadlet test case pull.container		0.013814
  quadlet system generator Running success quadlet test case readonly-notmpfs.container		0.014216
  quadlet system generator Running success quadlet test case capabilities.container		0.014951
  quadlet system generator Running quadlet force remove all Should remove all quadlets at once	0.503787
[SynchronizedAfterSuite] PASSED [0.175 seconds]
------------------------------

Ran 301 of 2443 Specs in 26.713 seconds
SUCCESS! -- 301 Passed | 0 Failed | 0 Pending | 2142 Skipped
PASS

Ginkgo ran 1 suite in 31.515989818s
Test Suite Passed

I'm not sure why it's failing.

Copy link
Author

@kavishgr kavishgr Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed the test was using Exit(0) in several places. I've updated it to use ExitCleanly() instead, which is the recommended Ginkgo matcher. This might resolve the F43 failure. I will push soon and see what's up.

Update: Done.

…s#27653)

Refactor removelist into sets

Add quadlet rm --all test with safename

add an integration test for quadlet rm --all(skip for remote clients)

Signed-off-by: Kavish Gour <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quadlet: application file not removed upon quadlet removal with --all flag

3 participants