rpm-ostree/tests
Jonathan Lebon 317b920667 extensions: Add support for development extensions
In RHCOS, we ship kernel development-related packages as an extension.
Those aren't really extensions that are meant to be layered onto the
host.  They're meant to be used in a build environment somewhere to
compile kernel modules.

This makes it very different from "OS extensions" in at least two
drastic ways:
1. we don't want to do any depsolving (e.g. we don't want to pull in
   `gcc` or something)
2. some of those packages may be present in the base already, but we
   still want to redownload them

Hesitated putting this functionality in rpm-ostree, but I think in the
end it cuts from the benefit of moving this code to rpm-ostree if we
can't entirely get rid of the Python script it obsoletes. Plus, being
able to use the `match-base-evr` is still really useful for this use
case.

Let's add a new `kind` key to support this. The traditional extensions
are called "OS extensions" and these new extensions are called
"development extensions".

The latter is not yet part of the state checksum, so change detection
doesn't work there. I think that's fine for now though because the
primary use case is the kernel, and there we want to match the base
version. So if the kernel changes, the base would change too. (Though
there's the corner case of adding a new package to the list while at the
same version...)
2021-02-03 12:22:38 -05:00
..
check Change main entrypoint to be Rust 2021-02-01 08:17:52 -05:00
common Make make check work again 2021-01-20 13:10:14 -05:00
compose extensions: Add support for development extensions 2021-02-03 12:22:38 -05:00
gpghome daemon: start with one commit only when resolving versions 2016-12-24 12:28:48 +00:00
kolainst lib: Don't link to libdnf 2021-01-28 11:15:44 -05:00
manual tests: Bump to Python 3 only 2019-05-08 19:02:32 +00:00
utils tests: Add hidden testutils subcommand 2019-12-13 19:18:30 +01:00
vmcheck app/status: Use AutomaticUpdatesDriver if updates driven by external driver 2021-02-03 09:52:43 -05:00
compose.sh tests/compose: Drop FCOS postprocess scripts 2020-10-14 03:44:19 +02:00
README.md tests: Add ./tests/compose 2016-12-06 19:05:05 +00:00
runkola tests/runkola: New script 2020-04-30 21:50:41 +02:00
vmcheck.sh tests/compose: Target FCOS 31, move off of PAPR 2020-01-08 16:42:54 +01:00

Tests are divided into three groups:

  • Tests in the check directory are non-destructive and uninstalled. Some of the tests require root privileges. Use make check to run these.

  • The composecheck tests currently require uid 0 capabilities - the default in Docker, or you can run them via a user namespace. They are non-destructive, but are installed.

    To use them, you might do a make && sudo make install inside a Docker container.

    Then invoke ./tests/compose. Alternatively of course, you can simply run the tests on a host system or in an existing container, without doing a build.

    Note: This is intentionally not a Makefile target because it doesn't require building and doesn't use uninstalled binaries.

  • Tests in the vmcheck directory are oriented around using Vagrant. Use make vmcheck to run them. See also HACKING.md in the top directory.

The common directory contains files used by multiple tests. The utils directory contains helper utilities required to run the tests.