1
0
mirror of https://github.com/containers/bootc.git synced 2026-02-05 06:45:13 +01:00
Files
bootc/tmt
Colin Walters c0b9cde666 store: Preserve /sysroot readonly for read-only operations
PR #1718 introduced a regression where /sysroot was left writable after
running `bootc status`. This occurred because BootedStorage::new()
unconditionally calls set_mount_namespace_in_use(), which tells ostree
it can safely remount /sysroot as writable. When sysroot.load() is called
without actually being in a mount namespace, it leaves the global /sysroot
writable.

Fix by introducing an Environment enum that detects the runtime environment
(ostree, composefs, container, or other) early in the execution flow. Callers
now detect the environment and call prepare_for_write() if needed before
constructing BootedStorage. This ensures a single call to prepare_for_write()
per execution path and eliminates the previous layering violation where storage
code called into CLI code.

The Environment abstraction also makes it clearer when mount namespace
setup is required and provides a foundation for future environment-specific
behavior.

Assisted-by: Claude Code (Sonnet 4.5)
Signed-off-by: Colin Walters <walters@verbum.org>
2025-11-13 09:08:03 -05:00
..

Run integration test locally

In the bootc CI, integration tests are executed via Packit on the Testing Farm. In addition, the integration tests can also be run locally on a developer's machine, which is especially valuable for debugging purposes.

To run integration tests locally, you need to install tmt and provision-virtual plugin in this case. Be ready with dnf install -y tmt+provision-virtual. Then, use tmt run -vvvvv plans -n integration command to run the all integration tests.

To run integration tests on different distros, just change image: fedora-rawhide in 9d15eedea0/tmt/plans/integration.fmf (L6).

The available images value can be found from https://tmt.readthedocs.io/en/stable/plugins/provision.html#images.

Enjoy integration test local running!