Reading from an `Object` via `read` already uses a context manager to manage the read-only bind mount and also maintain a count of currently active readers. With this an attempt to start a new `write` operation while readers were active can be detected and an exception is throw. Since `write` was not introducing a context the inverted situation, i.e. reads while a write is ongoing, was not possible to detect. This commit therefore introduces a context also for `.write` so that we can enforce the policy to have either many readers but no writers, or just one writer and no readers. A bind mount is also used for write (in read-write mode) to hide the internal path of the tree. |
||
|---|---|---|
| .. | ||
| os-release | ||
| pipelines | ||
| sources_tests/org.osbuild.files | ||
| stages_tests | ||
| testing-rpms | ||
| .gitignore | ||
| __init__.py | ||
| osbuildtest.py | ||
| README.md | ||
| test_assemblers.py | ||
| test_boot.py | ||
| test_objectstore.py | ||
| test_osbuild.py | ||
| test_osrelease.py | ||
| test_sources.py | ||
| test_stageinfo.py | ||
| test_stages.py | ||
Setup
To run the tests in vagrant virtual machine, please follow this tutorial: https://developer.fedoraproject.org/tools/vagrant/vagrant-libvirt.html
(run also sudo systemctl start libvirtd)
Using Vagrant
To start a Vagrant box by hand, run vagrant up in this directory. To stop and remove all volumes run vagrant destroy again in this directory.
Troubleshooting
In case you accidentally deleted .vagrant directory, you can use some of these commands in order to get rid of running instance:
$ virsh list # this should display test_default
$ virsh managedsave-remove test_default
$ virsh undefine test_default
# or using vagrant cli tool
$ vagrant global-status
$ vagrant destroy <id>
$ vagrant global-status --prune