+43
nixos/doc/manual/development/developing-the-test-driver.chapter.md
+43
nixos/doc/manual/development/developing-the-test-driver.chapter.md
···+- `nixos/lib/test-driver`: The Python framework that sets up the test and runs the [`testScript`](#test-opt-testScript)+- `nixos/lib/testing`: The Nix code responsible for the wiring, written using the (NixOS) Module System.+- `nixos/lib/default.nix`: The public interface that exposes the `nixos/lib/testing` entrypoint.+- `nixos/release.nix`: Defines the `tests` attribute built by Hydra, independently, but analogous to `nixosTests`+Finally, we have legacy entrypoints that users should move away from, but are cared for on a best effort basis.+When making significant changes to the test framework, we run the tests on Hydra, to avoid disrupting the larger NixOS project.+For this, we use the `python-test-refactoring` branch in the `NixOS/nixpkgs` repository, and its [corresponding Hydra jobset](https://hydra.nixos.org/jobset/nixos/python-test-refactoring).+2. Create a baseline evaluation by force-pushing this revision of `nixos-unstable` to `python-test-refactoring`.+5. Create a comparison URL by navigating to the latest build of the PR and adding to the URL `?compare=<previous>`. This is not necessary for the evaluation that comes right after the baseline.+Review the removed tests and newly failed tests using the constructed URL; otherwise you will accidentally compare iterations of the PR instead of changes to the PR base.+As we currently have some flaky tests, newly failing tests are expected, but should be reviewed to make sure that+- All failures that do occur can reasonably be assumed to fail for a different reason than the changes.