rpm-ostree/tests
Colin Walters 5a79ca9035 apply-live: Rework to use refs to store state
Came out of discussion in https://github.com/coreos/rpm-ostree/pull/2581
around some racy code for checking for the live commit object.

The reliability of apply-live depends on the
underlying commits not being garbage collected.  Our diff logic
is in terms of ostree commits, not the physical filesystem (this
allows us to make various optimizations too).

Ultimately I think we should drive some of the live-apply
logic into libostree itself; we can more easily have an atomic
state file instead of the two split refs.

(Or perhaps what we should add to ostree is like a refs.d model
 where a single atomic file can refer to multiple commits)

For now though let's rework the code here to write refs.  We
retain the file in `/run` as just a "stamp file" that signals
that a deployment has had `apply-live` run.
2021-02-23 21:51:22 -05:00
..
check Change main entrypoint to be Rust 2021-02-01 08:17:52 -05:00
common ci: Drop tests/vmcheck/image.qcow2, use COSA_DIR/.cosa 2021-02-23 17:23:26 -05:00
compose Add /usr/lib/rpm/macros.d/macros.rpm-ostree to set %_dbpath to /usr/share/rpm 2021-02-09 18:36:35 -05:00
gpghome daemon: start with one commit only when resolving versions 2016-12-24 12:28:48 +00:00
kolainst apply-live: Rework to use refs to store state 2021-02-23 21:51:22 -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 apply-live: Rework to use refs to store state 2021-02-23 21:51:22 -05:00
compose.sh tests/compose.sh: Always rebuild supermin appliance 2021-02-03 12:22:38 -05: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.