Skip to content

Conversation

@debarshiray
Copy link
Member

The working directory from which bats(1) is invoked might not be part of
the Toolbx container.  eg., the downstream Fedora CI invokes the tests
as:
  $ cd /path/to/toolbox/test/system
  $ bats .

... and it led to:
  not ok 8 help: Try unknown command (forwarded to host)
  # tags: commands-options
  # (from function `assert_line' in file
      ./libs/bats-assert/src/assert.bash, line 488,
  #  in test file ./002-help.bats, line 135)
  #   `assert_line --index 0
        "Error: unknown command \"foo\" for \"toolbox\""' failed
  #
  # -- line differs --
  # index    : 0
  # expected : Error: unknown command "foo" for "toolbox"
  # actual   : Error: crun: chdir to `/usr/share/toolbox/test/system`:
      No such file or directory: OCI runtime attempted to invoke a
      command that was not found
  # --
  #

containers#1560
containers#1745
(backported from commit 1e90c72)
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

In the case of these two particular tests, toolbox(1) is supposed to
validate the command line options before trying to find the image.  So,
there's no need to copy the image from the test suite's image cache
directory to its local container/storage store.

Fallout from 32b147b

containers#1595
containers#1745
(backported from commit adc8650)
Fedora 39 reached End of Life on 26th November 2024:
https://docs.fedoraproject.org/en-US/releases/eol/

containers#1602
containers#1745
(backported from commit 0bb4ff8)
@gemini-code-assist
Copy link

Summary of Changes

Hello @debarshiray, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request is a continuation of the efforts to prepare the release-0.0.99.5 stable branch. It primarily focuses on updating the CI pipeline to align with the new branch, refreshing the Fedora versions used in system tests, and optimizing the test execution by refactoring setup procedures to reduce redundancy and improve performance.

Highlights

  • CI Configuration Update: Continuous Integration (CI) jobs in .zuul.yaml have been updated to explicitly run on the release-0.0.99.5 branch, ensuring that unit and system tests are executed for this stable branch.
  • Fedora System Test Version Refresh: The system tests have been updated to target newer Fedora versions (42 and 43), replacing older, deprecated versions (39, 40, and 41) in the CI pipeline.
  • System Test Refactoring and Optimization: The system test suite has undergone refactoring to improve efficiency and consistency. This includes centralizing container creation to run once per test file (setup_file) instead of per test, and ensuring a consistent working directory for tests.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (4)
    • .github/workflows/arch-images-pr.yaml
    • .github/workflows/arch-images.yaml
    • .github/workflows/ubuntu-images.yaml
    • .github/workflows/ubuntu-tests.yaml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the group and user tests,
are particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The group and user tests check the group and user configuration in
different containers without changing their state.  Therefore, a lot of
disk I/O can be avoided by creating these containers only once for all
the tests.

This can reduce the time needed to run the group and user tests from
almost 22 minutes to almost 5 minutes.

containers#1635
containers#1746
(backported from commit 3017a46)
@debarshiray debarshiray force-pushed the wip/rishi/prepare-release-0.0.99.5-part-6 branch from b598bfa to cf78a72 Compare January 27, 2026 18:41
Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request prepares the release-0.0.99.5 stable branch by updating CI configurations and refactoring tests. The changes to .zuul.yaml correctly scope the test jobs to the new release branch and update the Fedora versions used in system tests. The test files see several improvements, most notably in test/system/206-user.bats, where moving container creation to setup_file will significantly improve test execution speed. Other changes involve cleaning up unnecessary image pulls in tests that validate command-line arguments. Overall, the changes are well-implemented, improve performance and maintainability, and appear correct for the stated purpose. I did not find any issues requiring changes.

debarshiray added a commit to debarshiray/toolbox that referenced this pull request Jan 27, 2026
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Jan 27, 2026
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Jan 27, 2026
Fedora 41 reached End of Life on 15th December 2025:
https://docs.fedoraproject.org/en-US/releases/eol/

containers#1733
containers#1746
(backported from commit 36605d8)
debarshiray added a commit to debarshiray/toolbox that referenced this pull request Jan 27, 2026
The GitHub Actions workflows for building and publishing the images were
removed because the image definitions were removed from this branch [1].

[1] Commit f2b2a18
    containers@f2b2a18ddef288a3
    containers#1739

containers#1746
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the networking tests, are
particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The networking tests check the behaviour and configuration of the
network in different containers without changing their state.
Therefore, a lot of disk I/O can be avoided by creating these containers
only once for all the tests.

This can reduce the time needed to run the networking tests from almost
15 minutes to almost 6 minutes.

containers#1637
containers#1746
(cherry picked from commit 1b9dd00)
The system tests can be very I/O intensive, because many of them copy
OCI images from the test suite's image cache directory to its local
container/storage store, create containers, and then delete everything
to run the next test with a clean slate.  This makes them slow.

The runtime environment tests, which includes the D-Bus tests, are
particularly slow because they don't skip the I/O even when testing
error handling.  This makes them a good target for optimizations.

The D-Bus tests check if methods can be called across the user or
session and system D-Bus instances from different containers without
changing their state.  Therefore, a lot of disk I/O can be avoided by
reating these containers only once for all the tests.

This can reduce the time needed to run the D-Bus tests from almost 10
minutes to almost 5 minutes.

containers#1641
containers#1746
(cherry picked from commit 5881bc4)
@softwarefactory-project-zuul
Copy link

Build succeeded.
https://softwarefactory-project.io/zuul/t/local/buildset/9412e08722814fe6829dd510691f5a61

✔️ unit-test SUCCESS in 1m 49s
✔️ unit-test-migration-path-for-coreos-toolbox SUCCESS in 4m 00s
✔️ unit-test-restricted SUCCESS in 1m 47s
✔️ system-test-fedora-rawhide SUCCESS in 1h 58m 41s
✔️ system-test-fedora-42 SUCCESS in 1h 59m 48s
✔️ system-test-fedora-41 SUCCESS in 2h 01m 37s
✔️ system-test-fedora-40 SUCCESS in 1h 29m 46s

@softwarefactory-project-zuul
Copy link

Build succeeded.
https://softwarefactory-project.io/zuul/t/local/buildset/3b11c56e182e45de94ff94aeb81cb906

✔️ unit-test SUCCESS in 1m 44s
✔️ unit-test-migration-path-for-coreos-toolbox SUCCESS in 3m 56s
✔️ unit-test-restricted SUCCESS in 1m 49s
✔️ system-test-fedora-rawhide SUCCESS in 1h 12m 41s
✔️ system-test-fedora-42 SUCCESS in 1h 11m 32s
✔️ system-test-fedora-41 SUCCESS in 1h 15m 44s
✔️ system-test-fedora-40 SUCCESS in 1h 17m 56s

@softwarefactory-project-zuul
Copy link

Build succeeded.
https://softwarefactory-project.io/zuul/t/local/buildset/c81a7c108437482496176791fbb44627

✔️ unit-test SUCCESS in 1m 47s
✔️ unit-test-migration-path-for-coreos-toolbox SUCCESS in 3m 19s
✔️ unit-test-restricted SUCCESS in 1m 49s
✔️ system-test-fedora-rawhide SUCCESS in 1h 05m 54s
✔️ system-test-fedora-42 SUCCESS in 1h 07m 01s
✔️ system-test-fedora-41 SUCCESS in 1h 10m 34s
✔️ system-test-fedora-40 SUCCESS in 1h 11m 22s

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.

1 participant