mirror of
https://github.com/containers/bootc.git
synced 2026-02-05 06:45:13 +01:00
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>
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!