diff --git a/developer/debugging/test-bench.md b/developer/debugging/test-bench.md index 5051a28d..ca48a5ea 100644 --- a/developer/debugging/test-bench.md +++ b/developer/debugging/test-bench.md @@ -99,6 +99,41 @@ Internet access is intentionally disabled by default in dom0. But to ease the de > **Note:** If you want to install additional software in dom0 and your only network card was assigned to dom0, then _instead_ of the usual `sudo qubes-dom0-update ` now you run `sudo dnf --setopt=reposdir=/etc/yum.repos.d install `. +### Install Tests and Their Dependencies + +A regular Qubes installation isn't ready to run the full suite of tests. For example, in order to run the [Split GPG tests](https://github.com/QubesOS/qubes-app-linux-split-gpg/blob/4bc201bb70c011119eed19df25dc5b46120d04ed/tests/splitgpg/tests.py) you need to have the `qubes-gpg-split-tests` package installed in your app qubes. + +Because of the above reason, some additional configurations need to be done to your testing environment. This can be done in an automated manner with the help of the [Salt](/doc/salt) configuration that provisions the [automated testing environment](/doc/automated-tests/). + +The following commands should work for you, but do keep in mind that the provisioning scripts are designed for the [openQA environment](https://openqa.qubes-os.org/) and not your specific local testing system. Run the following in `dom0`: + + ```bash + # For future reference the following commands are an adaptation of + # https://github.com/marmarek/openqa-tests-qubesos/blob/master/tests/update.pm + + # Install git + sudo qubes-dom0-update git || sudo dnf --setopt=reposdir=/etc/yum.repos.d install git + + # Download the openQA automated testing environment Salt configuration + git clone https://github.com/marmarek/openqa-tests-qubesos/ + cd openqa-tests-qubesos/extra-files + sudo cp -a system-tests/ /srv/salt/ + sudo qubesctl top.enable system-tests + + # Install the same configuration as the one in openQA + QUBES_VERSION=4.1 + PILLAR_DIR=/srv/pillar/base/update + sudo mkdir -p $PILLAR_DIR + printf 'update:\n qubes_ver: '$QUBES_VERSION'\n' | sudo tee $PILLAR_DIR/init.sls + printf "base:\n '*':\n - update\n" | sudo tee $PILLAR_DIR/init.top + sudo qubesctl top.enable update pillar=True + + # Apply states to dom0 and VMs + # NOTE: These commands can take several minutes (if not more) without showing output + sudo qubesctl --show-output state.highstate + sudo qubesctl --max-concurrency=2 --skip-dom0 --templates --show-output state.highstate + ``` + ## Development VM ### SSH