From 805ae59151a32a574581fde648a1c5ce44828b02 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Sat, 3 Oct 2020 13:48:03 +0100 Subject: [PATCH] tests: ship all tests in the -tests sub-package No tests should be run directly from git, but should rather be installed onto the test system using rpm and run from there. This moves towards unifying our two types of test cases. The new structure of is now: `test/cmd`: the executors, one for each test-case. This is installed into `/usr/libexec/test/osbuild-composer`. `test/data`: data and config used by the tests. This is installed into `/usr/share/tests/osbuild-composer`. `schutzbot`: configuration of the actual test run. In particular, this is where the distros and repositories to test against are configured. This is very much still work-in-progress, and is only the first step towards simplifying schutzbot. Apart from moving files around, this should be a noop. Signed-off-by: Tom Gundersen --- golang-github-osbuild-composer.spec | 32 +++++++++++++--- internal/distro/distro_test.go | 2 +- internal/distro/fedora31/distro_test.go | 2 +- internal/distro/fedora32/distro_test.go | 2 +- internal/distro/fedora33/distro_test.go | 2 +- internal/distro/rhel8/distro_test.go | 2 +- osbuild-composer.spec | 36 +++++++++++++----- schutzbot/Jenkinsfile | 12 +++--- schutzbot/deploy.sh | 2 +- .../repositories}/rhel-8-beta.json | 0 test/README.md | 22 ++++++++++- test/ca/ca-crt.pem | 19 --------- test/ca/composer-crt.pem | 17 --------- test/ca/composer-key.pem | 28 -------------- test/ca/worker-crt.pem | 17 --------- test/ca/worker-key.pem | 28 -------------- test/{integration => cmd}/aws.sh | 11 +++--- test/{integration => cmd}/koji.sh | 10 +++-- test/{integration => cmd}/ostree.sh | 15 ++++---- test/{integration => cmd}/qemu.sh | 11 +++--- test/{ => data}/ansible/check_ostree.yaml | 0 .../{ => data}/azure/deployment-template.json | 0 test/data/ca/ca-crt.pem | 19 +++++++++ test/data/ca/ca-key.pem | 28 ++++++++++++++ test/data/ca/composer-crt.pem | 17 +++++++++ test/data/ca/composer-key.pem | 28 ++++++++++++++ test/data/ca/worker-crt.pem | 17 +++++++++ test/data/ca/worker-key.pem | 28 ++++++++++++++ .../cases/fedora_31-aarch64-ami-boot.json | 0 .../fedora_31-aarch64-openstack-boot.json | 0 .../cases/fedora_31-aarch64-qcow2-boot.json | 0 .../cases/fedora_31-x86_64-ami-boot.json | 0 .../fedora_31-x86_64-openstack-boot.json | 0 .../cases/fedora_31-x86_64-qcow2-boot.json | 0 .../fedora_31-x86_64-qcow2-customize.json | 0 .../cases/fedora_31-x86_64-vhd-boot.json | 0 .../cases/fedora_31-x86_64-vmdk-boot.json | 0 .../cases/fedora_32-aarch64-ami-boot.json | 0 .../fedora_32-aarch64-openstack-boot.json | 0 .../cases/fedora_32-aarch64-qcow2-boot.json | 0 .../cases/fedora_32-x86_64-ami-boot.json | 0 ...dora_32-x86_64-fedora_iot_commit-boot.json | 0 .../fedora_32-x86_64-openstack-boot.json | 0 .../cases/fedora_32-x86_64-qcow2-boot.json | 0 .../fedora_32-x86_64-qcow2-customize.json | 0 .../cases/fedora_32-x86_64-vhd-boot.json | 0 .../cases/fedora_32-x86_64-vmdk-boot.json | 0 .../cases/fedora_33-x86_64-ami-boot.json | 0 .../fedora_33-x86_64-openstack-boot.json | 0 .../cases/fedora_33-x86_64-qcow2-boot.json | 0 .../fedora_33-x86_64-qcow2-customize.json | 0 .../cases/fedora_33-x86_64-vhd-boot.json | 0 .../cases/fedora_33-x86_64-vmdk-boot.json | 0 .../cases/rhel_8-aarch64-ami-boot.json | 0 .../cases/rhel_8-aarch64-openstack-boot.json | 0 .../cases/rhel_8-aarch64-qcow2-boot.json | 0 .../rhel_8-aarch64-rhel_edge_commit-boot.json | 0 .../cases/rhel_8-aarch64-tar-boot.json | 0 .../cases/rhel_8-ppc64le-qcow2-boot.json | 0 .../cases/rhel_8-ppc64le-tar-boot.json | 0 .../cases/rhel_8-s390x-qcow2-boot.json | 0 .../cases/rhel_8-s390x-tar-boot.json | 0 .../cases/rhel_8-x86_64-ami-boot.json | 0 .../cases/rhel_8-x86_64-openstack-boot.json | 0 .../cases/rhel_8-x86_64-qcow2-boot.json | 0 .../cases/rhel_8-x86_64-qcow2-customize.json | 0 .../rhel_8-x86_64-rhel_edge_commit-boot.json | 0 .../cases/rhel_8-x86_64-tar-boot.json | 0 .../cases/rhel_8-x86_64-vhd-boot.json | 0 .../cases/rhel_8-x86_64-vmdk-boot.json | 0 test/{ => data}/cloud-init/meta-data | 0 test/{ => data}/cloud-init/network-config | 0 test/{ => data}/cloud-init/user-data | 0 .../{ => data}/composer/osbuild-composer.toml | 0 test/{ => data}/composer/osbuild-worker.toml | 0 test/{ => data}/kerberos/krb5-local.conf | 0 test/{ => data}/keyring/id_rsa | 0 test/{ => data}/keyring/id_rsa.pub | 0 .../data}/vendor/87-podman-bridge.conflist | 0 {schutzbot => test/data}/vendor/README.md | 0 {schutzbot => test/data}/vendor/dnsname | Bin 81 files changed, 247 insertions(+), 160 deletions(-) rename {test/integration => schutzbot/repositories}/rhel-8-beta.json (100%) delete mode 100644 test/ca/ca-crt.pem delete mode 100644 test/ca/composer-crt.pem delete mode 100644 test/ca/composer-key.pem delete mode 100644 test/ca/worker-crt.pem delete mode 100644 test/ca/worker-key.pem rename test/{integration => cmd}/aws.sh (97%) rename test/{integration => cmd}/koji.sh (85%) rename test/{integration => cmd}/ostree.sh (95%) rename test/{integration => cmd}/qemu.sh (96%) rename test/{ => data}/ansible/check_ostree.yaml (100%) rename test/{ => data}/azure/deployment-template.json (100%) create mode 100644 test/data/ca/ca-crt.pem create mode 100644 test/data/ca/ca-key.pem create mode 100644 test/data/ca/composer-crt.pem create mode 100644 test/data/ca/composer-key.pem create mode 100644 test/data/ca/worker-crt.pem create mode 100644 test/data/ca/worker-key.pem rename test/{ => data}/cases/fedora_31-aarch64-ami-boot.json (100%) rename test/{ => data}/cases/fedora_31-aarch64-openstack-boot.json (100%) rename test/{ => data}/cases/fedora_31-aarch64-qcow2-boot.json (100%) rename test/{ => data}/cases/fedora_31-x86_64-ami-boot.json (100%) rename test/{ => data}/cases/fedora_31-x86_64-openstack-boot.json (100%) rename test/{ => data}/cases/fedora_31-x86_64-qcow2-boot.json (100%) rename test/{ => data}/cases/fedora_31-x86_64-qcow2-customize.json (100%) rename test/{ => data}/cases/fedora_31-x86_64-vhd-boot.json (100%) rename test/{ => data}/cases/fedora_31-x86_64-vmdk-boot.json (100%) rename test/{ => data}/cases/fedora_32-aarch64-ami-boot.json (100%) rename test/{ => data}/cases/fedora_32-aarch64-openstack-boot.json (100%) rename test/{ => data}/cases/fedora_32-aarch64-qcow2-boot.json (100%) rename test/{ => data}/cases/fedora_32-x86_64-ami-boot.json (100%) rename test/{ => data}/cases/fedora_32-x86_64-fedora_iot_commit-boot.json (100%) rename test/{ => data}/cases/fedora_32-x86_64-openstack-boot.json (100%) rename test/{ => data}/cases/fedora_32-x86_64-qcow2-boot.json (100%) rename test/{ => data}/cases/fedora_32-x86_64-qcow2-customize.json (100%) rename test/{ => data}/cases/fedora_32-x86_64-vhd-boot.json (100%) rename test/{ => data}/cases/fedora_32-x86_64-vmdk-boot.json (100%) rename test/{ => data}/cases/fedora_33-x86_64-ami-boot.json (100%) rename test/{ => data}/cases/fedora_33-x86_64-openstack-boot.json (100%) rename test/{ => data}/cases/fedora_33-x86_64-qcow2-boot.json (100%) rename test/{ => data}/cases/fedora_33-x86_64-qcow2-customize.json (100%) rename test/{ => data}/cases/fedora_33-x86_64-vhd-boot.json (100%) rename test/{ => data}/cases/fedora_33-x86_64-vmdk-boot.json (100%) rename test/{ => data}/cases/rhel_8-aarch64-ami-boot.json (100%) rename test/{ => data}/cases/rhel_8-aarch64-openstack-boot.json (100%) rename test/{ => data}/cases/rhel_8-aarch64-qcow2-boot.json (100%) rename test/{ => data}/cases/rhel_8-aarch64-rhel_edge_commit-boot.json (100%) rename test/{ => data}/cases/rhel_8-aarch64-tar-boot.json (100%) rename test/{ => data}/cases/rhel_8-ppc64le-qcow2-boot.json (100%) rename test/{ => data}/cases/rhel_8-ppc64le-tar-boot.json (100%) rename test/{ => data}/cases/rhel_8-s390x-qcow2-boot.json (100%) rename test/{ => data}/cases/rhel_8-s390x-tar-boot.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-ami-boot.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-openstack-boot.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-qcow2-boot.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-qcow2-customize.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-rhel_edge_commit-boot.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-tar-boot.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-vhd-boot.json (100%) rename test/{ => data}/cases/rhel_8-x86_64-vmdk-boot.json (100%) rename test/{ => data}/cloud-init/meta-data (100%) rename test/{ => data}/cloud-init/network-config (100%) rename test/{ => data}/cloud-init/user-data (100%) rename test/{ => data}/composer/osbuild-composer.toml (100%) rename test/{ => data}/composer/osbuild-worker.toml (100%) rename test/{ => data}/kerberos/krb5-local.conf (100%) rename test/{ => data}/keyring/id_rsa (100%) rename test/{ => data}/keyring/id_rsa.pub (100%) rename {schutzbot => test/data}/vendor/87-podman-bridge.conflist (100%) rename {schutzbot => test/data}/vendor/README.md (100%) rename {schutzbot => test/data}/vendor/dnsname (100%) diff --git a/golang-github-osbuild-composer.spec b/golang-github-osbuild-composer.spec index 6ec021da0..1268225f3 100644 --- a/golang-github-osbuild-composer.spec +++ b/golang-github-osbuild-composer.spec @@ -120,19 +120,39 @@ install -m 0755 -vp _bin/osbuild-composer-cli-tests %{buildroot}%{_libex install -m 0755 -vp _bin/osbuild-weldr-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ install -m 0755 -vp _bin/osbuild-dnf-json-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ install -m 0755 -vp _bin/osbuild-image-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ -install -m 0755 -vp _bin/osbuild-auth-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ +install -m 0755 -vp _bin/osbuild-auth-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ +install -m 0755 -vp test/cmd/* %{buildroot}%{_libexecdir}/tests/osbuild-composer/ install -m 0755 -vp tools/image-info %{buildroot}%{_libexecdir}/osbuild-composer/ +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/ansible +install -m 0644 -vp test/data/ansible/* %{buildroot}%{_datadir}/tests/osbuild-composer/ansible/ + install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/azure -install -m 0644 -vp test/azure/deployment-template.json %{buildroot}%{_datadir}/tests/osbuild-composer/azure/ +install -m 0644 -vp test/data/azure/* %{buildroot}%{_datadir}/tests/osbuild-composer/azure/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/ca +install -m 0644 -vp test/data/ca/*-crt.pem %{buildroot}%{_datadir}/tests/osbuild-composer/ca/ +install -m 0600 -vp test/data/ca/*-key.pem %{buildroot}%{_datadir}/tests/osbuild-composer/ca/ install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/cases -install -m 0644 -vp test/cases/* %{buildroot}%{_datadir}/tests/osbuild-composer/cases/ -install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/keyring -install -m 0600 -vp test/keyring/* %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/ +install -m 0644 -vp test/data/cases/* %{buildroot}%{_datadir}/tests/osbuild-composer/cases/ install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init -install -m 0644 -vp test/cloud-init/* %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init/ +install -m 0644 -vp test/data/cloud-init/* %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/composer +install -m 0644 -vp test/data/composer/* %{buildroot}%{_datadir}/tests/osbuild-composer/composer/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/kerberos +install -m 0644 -vp test/data/kerberos/* %{buildroot}%{_datadir}/tests/osbuild-composer/kerberos/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/keyring +install -m 0644 -vp test/data/keyring/id_rsa.pub %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/ +install -m 0600 -vp test/data/keyring/id_rsa %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/vendor +install -m 0644 -vp test/data/vendor/87-podman-bridge.conflist %{buildroot}%{_datadir}/tests/osbuild-composer/vendor/ +install -m 0755 -vp test/data/vendor/dnsname %{buildroot}%{_datadir}/tests/osbuild-composer/vendor/ %check %if 0%{?rhel} diff --git a/internal/distro/distro_test.go b/internal/distro/distro_test.go index a3e6f4e19..be08a9f12 100644 --- a/internal/distro/distro_test.go +++ b/internal/distro/distro_test.go @@ -16,7 +16,7 @@ import ( func TestDistro_Manifest(t *testing.T) { distro_test_common.TestDistro_Manifest( t, - "../../test/cases/", + "../../test/data/cases/", "*", fedora31.New(), fedora32.New(), fedora33.New(), rhel8.New(), ) diff --git a/internal/distro/fedora31/distro_test.go b/internal/distro/fedora31/distro_test.go index 9d8be0da3..f5d6bb5bd 100644 --- a/internal/distro/fedora31/distro_test.go +++ b/internal/distro/fedora31/distro_test.go @@ -241,7 +241,7 @@ func TestImageType_BasePackages(t *testing.T) { } func TestDistro_Manifest(t *testing.T) { - distro_test_common.TestDistro_Manifest(t, "../../../test/cases/", "fedora_31*", fedora31.New()) + distro_test_common.TestDistro_Manifest(t, "../../../test/data/cases/", "fedora_31*", fedora31.New()) } func TestFedora31_ListArches(t *testing.T) { diff --git a/internal/distro/fedora32/distro_test.go b/internal/distro/fedora32/distro_test.go index f9d22911e..6a204e0be 100644 --- a/internal/distro/fedora32/distro_test.go +++ b/internal/distro/fedora32/distro_test.go @@ -288,7 +288,7 @@ func TestImageType_BasePackages(t *testing.T) { } func TestDistro_Manifest(t *testing.T) { - distro_test_common.TestDistro_Manifest(t, "../../../test/cases/", "fedora_32*", fedora32.New()) + distro_test_common.TestDistro_Manifest(t, "../../../test/data/cases/", "fedora_32*", fedora32.New()) } func TestFedora32_ListArches(t *testing.T) { diff --git a/internal/distro/fedora33/distro_test.go b/internal/distro/fedora33/distro_test.go index 4696bfefb..273205155 100644 --- a/internal/distro/fedora33/distro_test.go +++ b/internal/distro/fedora33/distro_test.go @@ -294,7 +294,7 @@ func TestImageType_BasePackages(t *testing.T) { } func TestDistro_Manifest(t *testing.T) { - distro_test_common.TestDistro_Manifest(t, "../../../test/cases/", "fedora_33*", fedora33.New()) + distro_test_common.TestDistro_Manifest(t, "../../../test/data/cases/", "fedora_33*", fedora33.New()) } func TestFedora33_ListArches(t *testing.T) { diff --git a/internal/distro/rhel8/distro_test.go b/internal/distro/rhel8/distro_test.go index 97e7c3335..d8a852b61 100644 --- a/internal/distro/rhel8/distro_test.go +++ b/internal/distro/rhel8/distro_test.go @@ -347,7 +347,7 @@ func TestImageType_BasePackages(t *testing.T) { } func TestDistro_Manifest(t *testing.T) { - distro_test_common.TestDistro_Manifest(t, "../../../test/cases/", "rhel_8*", rhel8.New()) + distro_test_common.TestDistro_Manifest(t, "../../../test/data/cases/", "rhel_8*", rhel8.New()) } func TestRhel8_ListArches(t *testing.T) { diff --git a/osbuild-composer.spec b/osbuild-composer.spec index d34140a40..4945bf066 100644 --- a/osbuild-composer.spec +++ b/osbuild-composer.spec @@ -138,7 +138,7 @@ install -m 0644 -vp distribution/osbuild-remote-worker.socket %{buildroot}%{_u install -m 0644 -vp distribution/osbuild-remote-worker@.service %{buildroot}%{_unitdir}/ install -m 0644 -vp distribution/osbuild-worker@.service %{buildroot}%{_unitdir}/ install -m 0644 -vp distribution/osbuild-composer-koji.socket %{buildroot}%{_unitdir}/ -install -m 0755 -vd %{buildroot}%{_unitdir} +install -m 0755 -vd %{buildroot}%{_unitdir} install -m 0644 -vp distribution/osbuild-composer.{service,socket} %{buildroot}%{_unitdir}/ install -m 0644 -vp distribution/osbuild-*worker*.{service,socket} %{buildroot}%{_unitdir}/ @@ -159,22 +159,38 @@ install -m 0755 -vp _bin/osbuild-dnf-json-tests %{buildroot}%{_l install -m 0755 -vp _bin/osbuild-image-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ install -m 0755 -vp _bin/osbuild-composer-cloud-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ install -m 0755 -vp _bin/osbuild-auth-tests %{buildroot}%{_libexecdir}/tests/osbuild-composer/ +install -m 0755 -vp test/cmd/* %{buildroot}%{_libexecdir}/tests/osbuild-composer/ install -m 0755 -vp tools/image-info %{buildroot}%{_libexecdir}/osbuild-composer/ +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/ansible +install -m 0644 -vp test/data/ansible/* %{buildroot}%{_datadir}/tests/osbuild-composer/ansible/ + install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/azure -install -m 0644 -vp test/azure/deployment-template.json %{buildroot}%{_datadir}/tests/osbuild-composer/azure/ - -install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/cases -install -m 0644 -vp test/cases/* %{buildroot}%{_datadir}/tests/osbuild-composer/cases/ - -install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/keyring -install -m 0600 -vp test/keyring/* %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/ +install -m 0644 -vp test/data/azure/* %{buildroot}%{_datadir}/tests/osbuild-composer/azure/ install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/ca -install -m 0600 -vp test/ca/* %{buildroot}%{_datadir}/tests/osbuild-composer/ca/ +install -m 0644 -vp test/data/ca/*-crt.pem %{buildroot}%{_datadir}/tests/osbuild-composer/ca/ +install -m 0600 -vp test/data/ca/*-key.pem %{buildroot}%{_datadir}/tests/osbuild-composer/ca/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/cases +install -m 0644 -vp test/data/cases/* %{buildroot}%{_datadir}/tests/osbuild-composer/cases/ install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init -install -m 0644 -vp test/cloud-init/* %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init/ +install -m 0644 -vp test/data/cloud-init/* %{buildroot}%{_datadir}/tests/osbuild-composer/cloud-init/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/composer +install -m 0644 -vp test/data/composer/* %{buildroot}%{_datadir}/tests/osbuild-composer/composer/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/kerberos +install -m 0644 -vp test/data/kerberos/* %{buildroot}%{_datadir}/tests/osbuild-composer/kerberos/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/keyring +install -m 0644 -vp test/data/keyring/id_rsa.pub %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/ +install -m 0600 -vp test/data/keyring/id_rsa %{buildroot}%{_datadir}/tests/osbuild-composer/keyring/ + +install -m 0755 -vd %{buildroot}%{_datadir}/tests/osbuild-composer/vendor +install -m 0644 -vp test/data/vendor/87-podman-bridge.conflist %{buildroot}%{_datadir}/tests/osbuild-composer/vendor/ +install -m 0755 -vp test/data/vendor/dnsname %{buildroot}%{_datadir}/tests/osbuild-composer/vendor/ %endif diff --git a/schutzbot/Jenkinsfile b/schutzbot/Jenkinsfile index ea2457cec..7291f5754 100644 --- a/schutzbot/Jenkinsfile +++ b/schutzbot/Jenkinsfile @@ -561,7 +561,7 @@ void run_tests(test_type) { if (test_type == 'ostree') { sh ( label: "OSTree tests", - script: "test/integration/ostree.sh" + script: "/usr/libexec/tests/osbuild-composer/ostree.sh" ) } @@ -569,31 +569,31 @@ void run_tests(test_type) { // Run Koji tests. sh ( label: "Koji tests", - script: "test/integration/koji.sh" + script: "/usr/libexec/tests/osbuild-composer/koji.sh" ) // Run the qcow2 test. sh ( label: "Integration test: QCOW2", - script: "test/integration/qemu.sh qcow2" + script: "/usr/libexec/tests/osbuild-composer/qemu.sh qcow2" ) // Run the openstack test. sh ( label: "Integration test: OpenStack", - script: "test/integration/qemu.sh openstack" + script: "/usr/libexec/tests/osbuild-composer/qemu.sh openstack" ) // Run the VHD/Azure test. sh ( label: "Integration test: VHD", - script: "test/integration/qemu.sh vhd" + script: "/usr/libexec/tests/osbuild-composer/qemu.sh vhd" ) // Run the AWS test. sh ( label: "Integration test: AWS", - script: "test/integration/aws.sh" + script: "/usr/libexec/tests/osbuild-composer/aws.sh" ) } diff --git a/schutzbot/deploy.sh b/schutzbot/deploy.sh index 82074e580..1d1451d0e 100755 --- a/schutzbot/deploy.sh +++ b/schutzbot/deploy.sh @@ -78,7 +78,7 @@ fi greenprint "Copying custom composer config" # Remote worker needs this sudo mkdir -p /etc/osbuild-composer -sudo cp test/composer/osbuild-composer.toml \ +sudo cp /usr/share/tests/osbuild-composer/composer/osbuild-composer.toml \ /etc/osbuild-composer/ greenprint "Copying pre-generated SSL certificates" diff --git a/test/integration/rhel-8-beta.json b/schutzbot/repositories/rhel-8-beta.json similarity index 100% rename from test/integration/rhel-8-beta.json rename to schutzbot/repositories/rhel-8-beta.json diff --git a/test/README.md b/test/README.md index 1de9bb089..a3abb744f 100644 --- a/test/README.md +++ b/test/README.md @@ -1,7 +1,25 @@ # osbuild-composer testing information +With the exception of unit tests, all the osbuild-composer tests are shipped +in a dedicated RPM: osbulid-composer-tests, and they are meant to be installed +onto a pristine system and executed from there, rather than executed from a +git checkout. + +Some tests are written as golang binaries, found in `cmd/*-test/`, and others +are written as scripts and found in `test/cmd/`. Either way, they are installed +into `/usr/libexec/tests/osbuild-composer/`, and any supporting test-data is +installed into `/usr/share/tests/osbuild-composer/`. + +Provisioning and orchestration of test-systems, as well as configuring what +distros, versions and architectures to test against is out of scope of the +tests themselves. For osbuild-composer CI, schutzbot is used, which can be +found in the directory by the same name. + + +## Golang tests + Test binaries, regardless of their scope/type (e.g. unit, API, integration) -must follow the syntax of the Go +that are written in Golang must follow the syntax of the Go [testing package](https://golang.org/pkg/testing/), that is implement only `TestXxx` functions with their setup/teardown when necessary in a `yyy_test.go` file. @@ -20,7 +38,7 @@ See *Integration testing* for more information. ## Image tests -In the `test/cases` directory, sample image builds and their tests are +In the `test/data/cases` directory, sample image builds and their tests are collected for the various distros, architectures, configuration we support. Each test case describes how the image is built, the expected osbuild diff --git a/test/ca/ca-crt.pem b/test/ca/ca-crt.pem deleted file mode 100644 index e6bfca8c6..000000000 --- a/test/ca/ca-crt.pem +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDDTCCAfWgAwIBAgIUKcsHf+WVxY5bQEi1qO12XylD5PIwDQYJKoZIhvcNAQEL -BQAwFjEUMBIGA1UEAwwLb3NidWlsZC5vcmcwHhcNMjAwOTI1MDExMzA4WhcNMjEw -OTI1MDExMzA4WjAWMRQwEgYDVQQDDAtvc2J1aWxkLm9yZzCCASIwDQYJKoZIhvcN -AQEBBQADggEPADCCAQoCggEBAK+M5z0o30lycv4AjrnNOitbp6LGKOBZsMY8jle7 -tcBlH1VFRzNnroKw4NpXdrpsaAI8Pbl2MCAUs9rT232BPTJV2PHqCTttYRxq59mc -nZ9px5NYwSRKdFQFckAuda+PnwLnSuysMHXHqL6IOzoP9/7h9+927abXxOPYWCKr -Ezzpa3XgC092P6epFLt7UW4eK4rCgW9J/FX7y5QLplUC9CTj24OwJVi2vjmO77ZL -zYTmJwGRfEUtcldHs9UrlspoxGCCkc+i0EQQjoKY1hgljAhzNCUWaD7/9hyswtAN -kxrNvQE/1yLnDvoAnUWCR+G+toIzSWN4LZImvMkTWhJPEFkCAwEAAaNTMFEwHQYD -VR0OBBYEFNkBM8cYsNj/TkrSemplB27LdkWRMB8GA1UdIwQYMBaAFNkBM8cYsNj/ -TkrSemplB27LdkWRMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB -AJykcw1F+H41dj3A6DA+Ls3dNAJdayMVzfX25S9+W7pY73IARpbJtXjy2Nmn7Cvp -j10/MIuRvRFV1jj30YadPvOhPa/CjnAEl9cljJSPvAUbdHsH5uWM8iU8QP6VyIcR -t7p8lDGVvwGJOBMFcM3u0s2s+lM5t0uZEFLncKEJI0aonoiJffsCZ1bfAY0XCtyq -4zz0+4KoYhuwONb6jTUDPtlF4uuEgi1yHaJ/OjSDXHVuEgzjUMa0gp7ShHWzLGXr -C4b/pHKagn7Qf5DZiZ47qt4y76+z0pBosj6dDnn89wVvbxLvQijUUBUUl9I9OrTw -CKzGp/aTXmtSslA7mdUkykM= ------END CERTIFICATE----- diff --git a/test/ca/composer-crt.pem b/test/ca/composer-crt.pem deleted file mode 100644 index 1ea122713..000000000 --- a/test/ca/composer-crt.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICsTCCAZkCFACe7qdkv1SY2vye+TiVEZuVRmiWMA0GCSqGSIb3DQEBCwUAMBYx -FDASBgNVBAMMC29zYnVpbGQub3JnMB4XDTIwMTAwMzE5MTcyNloXDTIwMTEwMjE5 -MTcyNlowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEAxJysJjzZAIISVcqYYTV6urRP5+1DZ/Tv0m9hJRfqygR2UD8t -Il0d/79ACpqLZZm/q4mL2Em3rbUnjn61PJahzC7kQmsARo1zcKpJiHCawZQLjhNY -ayruoilhXWiuWGMRo9DWe9nDrCrbwSiNNHi46V6wkWaZzfs5cmYxk6SS+qew/Z6c -EduFDqT+/B3SfwIiUpU1zOGbOx2kiEqClY0m+TK8laZR66wSy86s/Da6so5zFFnX -5Yy1ZOtLI/Lm39n5+C6zRIUayYsigXDJfFRV0IplTY9+0ktPG9XYBiJwPsvM9cxb -ODq2qUS7sCFSZv9koe7vHfiLUDLMraFn8Mk7xQIDAQABMA0GCSqGSIb3DQEBCwUA -A4IBAQBMphzwvoI0zKzXE4Fve+O7HYumTNpjDh0GSMYyGwbepr7tgEPri8N3l0gf -vsi+D/PeLM4EFt1AKqklc3qs+wtu+wr6cLG/XPhY1HDWmN9RXnFYBwP/r7ECx2xA -fdAsxM9Bd1MwazHfrGwSFXU0UtF/YSfPz1kctPXf3Dh7U6W4glm9AruGcb5zXK95 -uKn0isc1Zg2urDU2phdjYO0uBcU5d8w6kkQflTtvnFZZ22tr47rc91464fe/9YdH -2eGfnl9Fsk+rZgpMgP9bFfd1YuWT18LA79/kpn0Zp8q78tdpHCa0Qc2O6I5HxPYk -Swv9sM/+Zl8qQHlgJ2/jLHZDoJLt ------END CERTIFICATE----- diff --git a/test/ca/composer-key.pem b/test/ca/composer-key.pem deleted file mode 100644 index 45d3c5676..000000000 --- a/test/ca/composer-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEnKwmPNkAghJV -yphhNXq6tE/n7UNn9O/Sb2ElF+rKBHZQPy0iXR3/v0AKmotlmb+riYvYSbettSeO -frU8lqHMLuRCawBGjXNwqkmIcJrBlAuOE1hrKu6iKWFdaK5YYxGj0NZ72cOsKtvB -KI00eLjpXrCRZpnN+zlyZjGTpJL6p7D9npwR24UOpP78HdJ/AiJSlTXM4Zs7HaSI -SoKVjSb5MryVplHrrBLLzqz8NrqyjnMUWdfljLVk60sj8ubf2fn4LrNEhRrJiyKB -cMl8VFXQimVNj37SS08b1dgGInA+y8z1zFs4OrapRLuwIVJm/2Sh7u8d+ItQMsyt -oWfwyTvFAgMBAAECggEAN4oOcyrDHgqgRU3ap7MkvTMMU3bJkMc3K9m8tm7AK1sB -VP/Trx5gyArte1FWyVeaNkm/kFSap15CE1WlurzObdBdOInjZQq2LoBcD0fH36ED -dpnuYy+Yg4Ru9aUJgvxRUlY/EHNee/cLZtAeu1DS41GVTS2PiwlJnBBUNuHJhzZy -xBPcQyArnFwmg5eIEtS4lOE+DrIyO6dlYiEqKsKOCCrah2rVo/cnajKZw3EAQ/rV -B2v3lEZrs2OjisbG7lmyC8iOV0XrIiGg4UY1dmrbthJLSjNveWQJ1Z8s0eFGIhZm -aswrKKC1IgrcFjy/3ZvM6NtYLZVq9NsRSz3DINtUIQKBgQDpx9oMg25fV5+//whI -yxJyjQEdddvYE2x4XjC5GbPHgrKhPu7PCuxWRIHhzfdZnUrf0iHRyx5nxC9lo9jU -BYifieYQ+ImAyFCJg4f5QcrmSkU/nbx24dTVt1SYSO/vcUg5zzPtU5rHH1cGxtK6 -d5EQJeKJQx+7aYqPovLg0PjrTQKBgQDXTHcFlF3QygKCg8+WCFUG9q9BHrJy6Zvj -+XIhfKs3rugq58vkobWb5zKho/Ekznn5lU/kI1YQGGlikewAnJuo+1J94DsDAEOk -HGm8kftAzNzSp+sfxH8AxkwWa3xRRUIT7efma/nrKKJM1u6DqIZlyczpmKvO1Rvl -EB2Md5omWQKBgGVum/H/+JyPdTWlnt+OlIN1IH26zFc1HkQfgf5d4331/DEwEAdv -EtnfQYdKiT6tm3X/Q0M2YQveuD3eWE6t0/h8qYDFhUuGHkN7+TwxyqoeoWsXslTW -aTUNJTwpsUjvmsnSWBJpyucIdwburzHOfPdHqMGriRIUmdT2e3EF2mqlAoGBAI0W -U8z5PD1tlBV5UVitXyLwF0riVeiOBBVySwN80irsWMJ9IhVSj1N6P6jDaWxITpBq -8266ZVSo2q64l2KTPkKPZ7CLd8BwtOLfp77mHzOIzJDTb3Zi6yNTz1rF1zLe4v1y -YwyR57Xd6/XUx3rJvkEH7FuMK9KfvubuF58MZZ0JAoGAeOL6NHEDgsDyNoNV3JQt -OABc5Et5OVuKEXNBwPjdzc2ufOUvq7K66Ut+dNpwPtVHjclW/QQ9o2zdQfvmT+4H -a3I7xyElF3fV0q7cJ6cccIcw1o0AKC5cMfnE0K9jjKI1x9D7IRpGKOCR3WQ7T8qe -wnL7juLR4iD7CZMttf08O+E= ------END PRIVATE KEY----- diff --git a/test/ca/worker-crt.pem b/test/ca/worker-crt.pem deleted file mode 100644 index d32c0ee83..000000000 --- a/test/ca/worker-crt.pem +++ /dev/null @@ -1,17 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICsTCCAZkCFACe7qdkv1SY2vye+TiVEZuVRmiVMA0GCSqGSIb3DQEBCwUAMBYx -FDASBgNVBAMMC29zYnVpbGQub3JnMB4XDTIwMTAwMzE5MTcyMloXDTIwMTEwMjE5 -MTcyMlowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC -AQ8AMIIBCgKCAQEA21zN7aiVBKamtuwcdcKbilbDduhbgwsgZ99E+F3kytSI1/G7 -iet2G3atdjYWn3qMFspUmy88ikNgSPKepIytu49tlgh1jb9e2v2qvtCzGmkzbh6R -ZN18dLlLd2yPvB1mK7KeA1M7q7PcN6gR7AIyZZQhzYcPIC3+U+QQ8YllJMyq7xd4 -0b2zfrlstWGYKUsWMvjg2Ciuc/dZmkvjUe4PmujuUOvWYnlheYRKjC8Ls9V3qES8 -NicjEpuytaB3wpkEIqKx1eV1zsKdVwpDS9mgcesbOZ7ZyBXN+L82Eg0e/q+tB6EG -YG5K3tUBRuhtWC8yizvd2+TVRKOMNeDpKJaIgwIDAQABMA0GCSqGSIb3DQEBCwUA -A4IBAQCsOXKEqbNUayVj/x0YcfsUeRmk9K70UmmbYTx0TZssucowS+Vat2r/oP3b -xgrZ0zAsRGOCI/2zuY5N9KKJNSv9viBVBKqZNxLU+HaUZ3WXdHvIMA9un7tYgI4U -LBsyCB+DtOwbxwXKuR6VtH/336ochCJ3uAjXTmuaLJI5wGqqgy5/QG7kkZwIkDP0 -bWHFBQdi/7zNqPzfgB2m9XllG79iFfbplQE1ig/bd5/1lsbqUxyfEzdgFL3Zhhnt -np4GdjBecbnqa7FBMXHVKl0FJMdvDPGRcnc9osp9NmKN6AMIaQeY57RQQO8dnTuE -9Da2jMTaqlx1L/rkm9tHvh2qTY7G ------END CERTIFICATE----- diff --git a/test/ca/worker-key.pem b/test/ca/worker-key.pem deleted file mode 100644 index 97c142d29..000000000 --- a/test/ca/worker-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDbXM3tqJUEpqa2 -7Bx1wpuKVsN26FuDCyBn30T4XeTK1IjX8buJ63Ybdq12NhafeowWylSbLzyKQ2BI -8p6kjK27j22WCHWNv17a/aq+0LMaaTNuHpFk3Xx0uUt3bI+8HWYrsp4DUzurs9w3 -qBHsAjJllCHNhw8gLf5T5BDxiWUkzKrvF3jRvbN+uWy1YZgpSxYy+ODYKK5z91ma -S+NR7g+a6O5Q69ZieWF5hEqMLwuz1XeoRLw2JyMSm7K1oHfCmQQiorHV5XXOwp1X -CkNL2aBx6xs5ntnIFc34vzYSDR7+r60HoQZgbkre1QFG6G1YLzKLO93b5NVEo4w1 -4OkoloiDAgMBAAECggEBAJ3HOI7yLIz12P/FAAtreDieg2TpZ7jvrdVIb/E8h62k -BPFde4iOBZtnVwipisgWeuCBky0zYpYINB8D8ztjvCol1aqOVw8nUHCu97rbnZcn -h8hy0Bz+ed/yzucM/K1PcAeKJ8E4grjTW1fk2U8pnVoWm+GafTSmIEHyzoUMT+WQ -wwNHuJhGeNLYWOHBLTmH2a+GPrFeNo0aOuyxidsEdX5PXw/QLfZl5Mp+2JMbAocx -l/2LzA4dDb1UqFwyYig3wN7tmYYVXqbAFcahrK/uzDPCXrvXaaD1W7mmkBnmNbGO -EKcRsjr+EwFyEcXl/VUStRoz0xK50iVxxolKS0sPuGECgYEA+wkmyx7J9dExfPmD -rbj4HEZ3+TclmN/7Pc6ZGPBAVPVw4BNWoLNum6KjrmPuy6VO6z/9hgFUVoYEO2/p -sidj/Tnt46W+kBcARDSyV9aEHjidneTlJJQegN4uR4hSgkL6ipVSCOJdhewp9XIP -oth3AIapALepsGMYttCveBRJ4fkCgYEA37NPRiHrqim9RN4UusYPjQnXaAnSoW0u -tpTEpO1kK7OuqTLHkN1jzMckBd0iL9xdj40RZ6kG6hSDXM76+0rimjC3ikV9iY4v -9jv4H3++CovcDArBm2/c8mnrm1h1XvbA0hXXPlVMv27KRF3sUE9BGHodPwN3m0cf -IPnrEMAKHVsCgYEAzaMogRk+jTwJEvv97u/nZpofKyoOhVVtJKs5ZGFiAXZxOUz+ -GHQDtkAbXv6DnZRTuofXsM8j/CCaFOpPAF4eHVA329Ro7vW4hSa5tRSHc44jJzVa -s4UWG7BlLrmwBP7C54T8B0UPIWZc1K/TuS0jBm5IwMqymUgD9bWrF21fPFkCgYEA -muXKisGKMbXdPQaaTApBUmPyKDRFCUpVAlBZKerHZgtxce+biJAEPxPVucm5lnJ8 -xp3j42eDRisWGvmniMH9zs7VCIW9u7YdN9+mnAkUSrE1mZEJJtx6ndECN/s0qqEq -O06sUJk4H4ZTwKtYqvN2G8DS54M7GuZQg8EKJ/sSBekCgYAjCHJ8IBthSVHGyEVn -OvuqYYkTEthiIeIniGkNkk1dlCCbzalhJ3Fgw+TUCAgTAbo5tTMB93+GwUUQeRhh -6voATtdf43RfnM6KTkETAw+36KGLbYa9hGn40wkTVwFgWevlhCNvoC8YoPqUDeY6 -aBNNRkN3g+p/SqxGgGs1AJmDFQ== ------END PRIVATE KEY----- diff --git a/test/integration/aws.sh b/test/cmd/aws.sh similarity index 97% rename from test/integration/aws.sh rename to test/cmd/aws.sh index c19a45b0d..02c011b8c 100755 --- a/test/integration/aws.sh +++ b/test/cmd/aws.sh @@ -1,6 +1,8 @@ #!/bin/bash set -euo pipefail +OSBUILD_COMPOSER_TEST_DATA=/usr/share/tests/osbuild-composer/ + source /etc/os-release # Fedora 31's composer-cli doesn't support doing image uploads. @@ -65,10 +67,9 @@ INSTANCE_CONSOLE=${TEMPDIR}/instance-console-${IMAGE_KEY}.json # Check for the smoke test file on the AWS instance that we start. smoke_test_check () { # Ensure the ssh key has restricted permissions. - SSH_KEY=${WORKSPACE}/test/keyring/id_rsa - chmod 0600 "$SSH_KEY" + SSH_KEY=${OSBUILD_COMPOSER_TEST_DATA}keyring/id_rsa - SMOKE_TEST=$(ssh -i "${SSH_KEY}" redhat@"${1}" 'cat /etc/smoke-test.txt') + SMOKE_TEST=$(sudo ssh -i "${SSH_KEY}" redhat@"${1}" 'cat /etc/smoke-test.txt') if [[ $SMOKE_TEST == smoke-test ]]; then echo 1 else @@ -216,7 +217,7 @@ $AWS_CMD ec2 run-instances \ --key-name personal_servers \ --image-id "${AMI_IMAGE_ID}" \ --instance-type t3a.micro \ - --user-data file://"${WORKSPACE}"/test/cloud-init/user-data \ + --user-data file://"${OSBUILD_COMPOSER_TEST_DATA}"/cloud-init/user-data \ --cli-input-json file://"${AWS_INSTANCE_JSON}" > /dev/null # Wait for the instance to finish building. @@ -247,7 +248,7 @@ greenprint "⏱ Waiting for AWS instance to respond to ssh" for LOOP_COUNTER in {0..30}; do if ssh-keyscan "$PUBLIC_IP" > /dev/null 2>&1; then echo "SSH is up!" - ssh-keyscan "$PUBLIC_IP" >> ~/.ssh/known_hosts + ssh-keyscan "$PUBLIC_IP" | sudo tee -a /root/.ssh/known_hosts break fi diff --git a/test/integration/koji.sh b/test/cmd/koji.sh similarity index 85% rename from test/integration/koji.sh rename to test/cmd/koji.sh index 20e949ad6..19005914b 100755 --- a/test/integration/koji.sh +++ b/test/cmd/koji.sh @@ -1,6 +1,8 @@ #!/bin/bash set -euo pipefail +OSBUILD_COMPOSER_TEST_DATA=/usr/share/tests/osbuild-composer/ + # Get OS data. source /etc/os-release @@ -28,8 +30,8 @@ sudo dnf -y install \ if [[ $ID == rhel ]]; then greenprint "Tweaking podman, maybe." - sudo cp schutzbot/vendor/87-podman-bridge.conflist /etc/cni/net.d/ - sudo cp schutzbot/vendor/dnsname /usr/libexec/cni/ + sudo cp /usr/share/tests/osbuild-composer/vendor/87-podman-bridge.conflist /etc/cni/net.d/ + sudo cp /usr/share/tests/osbuild-composer/vendor/dnsname /usr/libexec/cni/ fi greenprint "Starting containers" @@ -37,7 +39,7 @@ sudo ./internal/upload/koji/run-koji-container.sh start greenprint "Copying custom worker config" sudo mkdir -p /etc/osbuild-worker -sudo cp test/composer/osbuild-worker.toml \ +sudo cp "${OSBUILD_COMPOSER_TEST_DATA}"/composer/osbuild-worker.toml \ /etc/osbuild-worker/ greenprint "Adding kerberos config" @@ -48,7 +50,7 @@ sudo cp \ /tmp/osbuild-composer-koji-test/client.keytab \ /etc/osbuild-worker/client.keytab sudo cp \ - test/kerberos/krb5-local.conf \ + "${OSBUILD_COMPOSER_TEST_DATA}"/kerberos/krb5-local.conf \ /etc/krb5.conf.d/local greenprint "Adding generated CA cert for Koji" diff --git a/test/integration/ostree.sh b/test/cmd/ostree.sh similarity index 95% rename from test/integration/ostree.sh rename to test/cmd/ostree.sh index cc95ef785..9a78a052b 100755 --- a/test/integration/ostree.sh +++ b/test/cmd/ostree.sh @@ -1,6 +1,8 @@ #!/bin/bash set -euo pipefail +OSBUILD_COMPOSER_TEST_DATA=/usr/share/tests/osbuild-composer/ + # Get OS data. source /etc/os-release ARCH=$(uname -m) @@ -19,7 +21,7 @@ case "${ID}-${VERSION_ID}" in BOOT_LOCATION="https://mirrors.rit.edu/fedora/fedora/linux/releases/32/Everything/x86_64/os/";; "rhel-8.3") # Override old rhel-8-beta.json because test needs latest systemd and redhat-release - sudo cp "$(dirname "$0")"/rhel-8-beta.json /etc/osbuild-composer/repositories/ + sudo cp schutzbot/repositories/rhel-8-beta.json /etc/osbuild-composer/repositories/ sudo systemctl restart osbuild-composer.socket IMAGE_TYPE=rhel-edge-commit OSTREE_REF="rhel/8/${ARCH}/edge" @@ -113,8 +115,7 @@ COMPOSE_INFO=${TEMPDIR}/compose-info-${IMAGE_KEY}.json # SSH setup. SSH_OPTIONS=(-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ConnectTimeout=5) -SSH_KEY=${WORKSPACE}/test/keyring/id_rsa -chmod 0600 "$SSH_KEY" +SSH_KEY=${OSBUILD_COMPOSER_TEST_DATA}keyring/id_rsa # Get the compose log. get_compose_log () { @@ -200,7 +201,7 @@ build_image() { # Wait for the ssh server up to be. wait_for_ssh_up () { - SSH_STATUS=$(ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" admin@"${1}" '/bin/bash -c "echo -n READY"') + SSH_STATUS=$(sudo ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" admin@"${1}" '/bin/bash -c "echo -n READY"') if [[ $SSH_STATUS == READY ]]; then echo 1 else @@ -438,8 +439,8 @@ UPGRADE_HASH=$(jq -r '."ostree-commit"' < "${UPGRADE_PATH}"/compose.json) # Upgrade image/commit. greenprint "Upgrade ostree image/commit" -ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" admin@${GUEST_ADDRESS} 'sudo rpm-ostree upgrade' -ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" admin@${GUEST_ADDRESS} 'nohup sudo systemctl reboot &>/dev/null & exit' +sudo ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" admin@${GUEST_ADDRESS} 'sudo rpm-ostree upgrade' +sudo ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" admin@${GUEST_ADDRESS} 'nohup sudo systemctl reboot &>/dev/null & exit' # Sleep 10 seconds here to make sure vm restarted already sleep 10 @@ -472,7 +473,7 @@ ansible_ssh_common_args="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/ EOF # Test IoT/Edge OS -ansible-playbook -v -i "${TEMPDIR}"/inventory -e image_type=${IMAGE_TYPE} -e ostree_commit="${UPGRADE_HASH}" "$(dirname "$0")"/../ansible/check_ostree.yaml || RESULTS=0 +sudo ansible-playbook -v -i "${TEMPDIR}"/inventory -e image_type=${IMAGE_TYPE} -e ostree_commit="${UPGRADE_HASH}" /usr/share/tests/osbuild-composer/ansible/check_ostree.yaml || RESULTS=0 check_result # Final success clean up diff --git a/test/integration/qemu.sh b/test/cmd/qemu.sh similarity index 96% rename from test/integration/qemu.sh rename to test/cmd/qemu.sh index 6629a5c40..bc040fe29 100755 --- a/test/integration/qemu.sh +++ b/test/cmd/qemu.sh @@ -1,6 +1,8 @@ #!/bin/bash set -euo pipefail +OSBUILD_COMPOSER_TEST_DATA=/usr/share/tests/osbuild-composer/ + # Get OS data. source /etc/os-release ARCH=$(uname -m) @@ -104,11 +106,10 @@ COMPOSE_INFO=${TEMPDIR}/compose-info-${IMAGE_KEY}.json # Check for the smoke test file on the AWS instance that we start. smoke_test_check () { # Ensure the ssh key has restricted permissions. - SSH_KEY=${WORKSPACE}/test/keyring/id_rsa - chmod 0600 "$SSH_KEY" + SSH_KEY=${OSBUILD_COMPOSER_TEST_DATA}keyring/id_rsa SSH_OPTIONS=(-o StrictHostKeyChecking=no -o ConnectTimeout=5) - SMOKE_TEST=$(ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" redhat@"${1}" 'cat /etc/smoke-test.txt') + SMOKE_TEST=$(sudo ssh "${SSH_OPTIONS[@]}" -i "${SSH_KEY}" redhat@"${1}" 'cat /etc/smoke-test.txt') if [[ $SMOKE_TEST == smoke-test ]]; then echo 1 else @@ -218,8 +219,8 @@ sudo mv "$IMAGE_FILENAME" "$LIBVIRT_IMAGE_PATH" # Prepare cloud-init data. CLOUD_INIT_DIR=$(mktemp -d) -cp "${WORKSPACE}"/test/cloud-init/{meta,user}-data "${CLOUD_INIT_DIR}"/ -cp "${WORKSPACE}"/test/cloud-init/network-config "${CLOUD_INIT_DIR}"/ +cp "${OSBUILD_COMPOSER_TEST_DATA}"/cloud-init/{meta,user}-data "${CLOUD_INIT_DIR}"/ +cp "${OSBUILD_COMPOSER_TEST_DATA}"/cloud-init/network-config "${CLOUD_INIT_DIR}"/ # Set up a cloud-init ISO. greenprint "💿 Creating a cloud-init ISO" diff --git a/test/ansible/check_ostree.yaml b/test/data/ansible/check_ostree.yaml similarity index 100% rename from test/ansible/check_ostree.yaml rename to test/data/ansible/check_ostree.yaml diff --git a/test/azure/deployment-template.json b/test/data/azure/deployment-template.json similarity index 100% rename from test/azure/deployment-template.json rename to test/data/azure/deployment-template.json diff --git a/test/data/ca/ca-crt.pem b/test/data/ca/ca-crt.pem new file mode 100644 index 000000000..4ca50c170 --- /dev/null +++ b/test/data/ca/ca-crt.pem @@ -0,0 +1,19 @@ +-----BEGIN CERTIFICATE----- +MIIDDTCCAfWgAwIBAgIUVrgJCBlYNv2uMIP04BH2fOTCPr4wDQYJKoZIhvcNAQEL +BQAwFjEUMBIGA1UEAwwLb3NidWlsZC5vcmcwHhcNMjAxMDA1MDgzODUzWhcNMjEx +MDA1MDgzODUzWjAWMRQwEgYDVQQDDAtvc2J1aWxkLm9yZzCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAMCii5Z8O+P3HfrYZmUVJAvQFSyxCvarpjSjopUD +J3VCFBa601swg5vDBSnDg0CRiW8r5LHi4seaOULD3OhttabeLZ5a4ESR98Q/XjcE +RWWOx9FdQkx1BXlpFDwbWHPTaKXhFfii35fjjmCoprCX6OVVGLfq95yfU7jj2wme +BfQoN/Xv+yXzYr6vCVOgTdG8Hc2G639xBf0zaZsDoJH5gtfxpD7s3HRLwN/XWy1e +800pHqdBji0Nt1Gz97K3x2HgqzmtX/cUfZN71AHEIt2DzhRjOQbfG0r/W2YztDJb +aZ3CultmJOCwXl5dGkSSmVYjB/y104XzbVMl0Mm0arq714kCAwEAAaNTMFEwHQYD +VR0OBBYEFFNDFT1jOr4HlFrICey0ukYdzq27MB8GA1UdIwQYMBaAFFNDFT1jOr4H +lFrICey0ukYdzq27MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEB +AAey3ciGtbfpzRwHL+KR5SqfVfxKI/LtVU74VFxFfMnVzAuFteV/k9CEHGxbCjmZ +nt4Z2vncLzGxJ3wnjm4GfzCCPKCfPdqD6bAwJ5tpDJyFWs0xOe2f9U5i1Yx5UHG+ +lIR1t/vlmPRkcC1lQlV+xhM/8MPJYl+0Bsjt2vjAvEbHEGifb2voJy2k1AabYwks +sDzkfC/0EU1MeHj8tjt98xVsGezdmduZMOee/OyhQ3Z5nuqKvQoiRCUBYVxPbxLV +bwwtECtHqs1DDMZSbc095BPMm4TuSMi1YqSiAcDQm776hff26mbeyEg0NROQ30M8 +8vu25FPz/AlY+0tb2/P7SGI= +-----END CERTIFICATE----- diff --git a/test/data/ca/ca-key.pem b/test/data/ca/ca-key.pem new file mode 100644 index 000000000..d991fa7e8 --- /dev/null +++ b/test/data/ca/ca-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDAoouWfDvj9x36 +2GZlFSQL0BUssQr2q6Y0o6KVAyd1QhQWutNbMIObwwUpw4NAkYlvK+Sx4uLHmjlC +w9zobbWm3i2eWuBEkffEP143BEVljsfRXUJMdQV5aRQ8G1hz02il4RX4ot+X445g +qKawl+jlVRi36vecn1O449sJngX0KDf17/sl82K+rwlToE3RvB3Nhut/cQX9M2mb +A6CR+YLX8aQ+7Nx0S8Df11stXvNNKR6nQY4tDbdRs/eyt8dh4Ks5rV/3FH2Te9QB +xCLdg84UYzkG3xtK/1tmM7QyW2mdwrpbZiTgsF5eXRpEkplWIwf8tdOF821TJdDJ +tGq6u9eJAgMBAAECggEBAJBA6NEPRXYoFu5C4SLvGugxsbme9rvTvIoMw/Jcw06e +5hZDX4UZJmUdPJ+SxpYypj13HDJN2k9o4Vpq++GeTnqgRH8iRHF08ZqnbXE7pJAx +xNa2xLAmravGkZ2VSL6r4ODfVqmzpkbC5Frj0LfLel9KQ1FvBm/mLDb3go6IJKM5 +sg78bfzKWPsDqCD4Wy37xtm53av63Tvqp7K54SWQ/tlGPZDLb0uUGgc5XMilp58o +FaUK4JY6+aH/q5SlhLkKR5TPClZZqUOqB3ccsIQUmx77MNogVi0tZJ9CPs6wGxHt +0/9bW+zaGsnaWaAQz9UVGOndC7MwKGN09wrEky/kiRECgYEA59kvyYZEzt0t6dm3 +0t+71vMMZpqz883WkT4hWIpQdMGSTM68lFBH5EoQhryegMxZ2/9iUAl1IS7+K0CT +57hV4JjNaHgux+sbAb2Kcr0H6GbZ05suksPrM7p9TXfCRizKSJUX8PxIaUOnIkcT +Ek7w4uwkB8k9Ar4LbI/L+bclf3UCgYEA1LOie2LeYDDUl+Qb/DK0RrhsQssfrxZH +McCgeSjsho5ncXumF1+dR7SE/ArgESm0Sw2mTbmKaMex13YFQeB+69RkmHE/C7w8 +L8iRLXcVkBn+AzI7K5zD3eiyZmk6zZS34Ka0DKIfW+RAgs3VqM8zCBVNCB/9Yt6a +oaeXzD1D6UUCgYEA0PEkZeOBY0RlOlihl4NWT1LenCFTh6a7dk2d06Ni+rXwWRP/ +U1I+V/h/iE24Mq73VJKFUUgUrQEiwmwCX1P64NwUUc/tqPGydxEQEnNVCxaVvGQf +xtiVwRqSDhydkoyPCHaFCwLxZxw3JWcUQu2tnXPezL2JJE2NEhtNYhCx1HkCgYA+ +kgV3RJNkOpkfgZQV8ZiEwVXfpD9S0zvoT+ElIzvJLXUStiwa7h6nbFw+hLh7dAg8 +l+xXKwCjaDNRzb8oLPFJULay/YVtX1dZOygx9rkaJftKV2l+n+QikISCiewpc9lP +tdp7aOnOr2umzwROX32EoDeD710ry44zhciq5U7n/QKBgCCLEU2UMUcGSgqP4gAF +5bg+W6vg5ivuajRPc7Kio4+DVWuppd8KZOtR8LaOUzYtCFjT90s5MEduDEbAq6bF +CdlALFkOlF/hJU2XzmSQEy4+UysT0jwEgMGTTaFnWoIJZZsUPzLUjZUrWrsFfnpc +WCxhsvYiBZIsGBgbKqjhfs+e +-----END PRIVATE KEY----- diff --git a/test/data/ca/composer-crt.pem b/test/data/ca/composer-crt.pem new file mode 100644 index 000000000..b6676e089 --- /dev/null +++ b/test/data/ca/composer-crt.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICsTCCAZkCFElB9131Tg40vCU0/10eVenAgwa/MA0GCSqGSIb3DQEBCwUAMBYx +FDASBgNVBAMMC29zYnVpbGQub3JnMB4XDTIwMTAwNTA4Mzg1M1oXDTIwMTEwNDA4 +Mzg1M1owFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAxqmrytbO2mOd3x43nIyvX/G5+S5VpDITPs3KeeJEBUbB1nZa +GI7cC36c6bqGV6bnJGv3BdCL9z8L7BPPbSzy3NCvtQ5Q0bGsJgwX0Lkm/H1DzIbP +vmktBBrQJrn9L6h4x2e+wxLTOo7oM5NIROBdIDXzAXiJFR3J5TY0bYQH1WD4+xmX +vHHIIJignsrNl08ODruG0UGn/I9wMKu7pS3wlWbyHvzuPsUUi1cCxZowUp52l1GU +Y7b54R1zMX7yTkiY4rshKfDqkKLQwk0RphXF4SLVjfPM38gA2zTcXecAahn/Si2b +7VNmUD0NTMxf5UtCv0iqdUFLekgFOb8q1J+osQIDAQABMA0GCSqGSIb3DQEBCwUA +A4IBAQCaOtOFXGfjAQRMOrSiy62wigw+D26jml01krRDCch/8MiDtG9agX0qIQnP +hK/lkY4AbRqwMe9MugJmCBEgHDwgOgPX7GH+J8l/DbjOp1NUzD4rxy/bfTXLP+5j +dkUzD7GIedygTm4jGTxFE9P6iYo/Un0GffSIsjIWaXyGf2T6kn1oE8sygXwhNaqm +F1duIXbseNo4brXBwWncw/C0gw8dXZDzlozIKhUzH/Ff6Q3h1Axu/5uNV7Svmkb1 +pHg9faWkZHhLasm40LTGG2B83z3f38R2AwcRRkH5Wque1FwfT886XnF//E9dfGi8 +cr1i2trLhweFMp1w5qbbqojMYs3h +-----END CERTIFICATE----- diff --git a/test/data/ca/composer-key.pem b/test/data/ca/composer-key.pem new file mode 100644 index 000000000..2efcf5b9d --- /dev/null +++ b/test/data/ca/composer-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDGqavK1s7aY53f +HjecjK9f8bn5LlWkMhM+zcp54kQFRsHWdloYjtwLfpzpuoZXpucka/cF0Iv3Pwvs +E89tLPLc0K+1DlDRsawmDBfQuSb8fUPMhs++aS0EGtAmuf0vqHjHZ77DEtM6jugz +k0hE4F0gNfMBeIkVHcnlNjRthAfVYPj7GZe8ccggmKCeys2XTw4Ou4bRQaf8j3Aw +q7ulLfCVZvIe/O4+xRSLVwLFmjBSnnaXUZRjtvnhHXMxfvJOSJjiuyEp8OqQotDC +TRGmFcXhItWN88zfyADbNNxd5wBqGf9KLZvtU2ZQPQ1MzF/lS0K/SKp1QUt6SAU5 +vyrUn6ixAgMBAAECggEARR3o4ARGKWL5HRQ1QukLZvUBv/jn4N1vJq2QYUFgavmI +HOZGSD8DvZgKXaMAdGRkDJ7nbYV1/MpZioQF6bT2te6BAxv88EfBXeddLcgNEVE/ +klvg0R1khQYTHzYcKUWS58VncBUPmlL35GG8hgINRFSgvAVEpC0d/foS2XtTAmBC +IxJUr6C9TewK4R1psFMqUOhUJUwoAAN1HVN/zRQttOK9P5JYc4nl4UuaeQ0AYIro +OSvseKBCgD9fGFpeT0lM/rB5qBh+/25faUs3hhF6kQZcvVqDVfUi2FbkSeoqV5BB +Gr1LKzxK3TBsKzZIsJt/ZTcVlfXNho2F+WqWDADHQQKBgQD1ezi+8ItR8SE0j/1q +5jpevjFQWipzwCBjZFtJBYutlw76MbGV0YAPgNNXzTFi35N5b5FB0cvfQlD0bG1c +25xZw16hSiBh8uVpEpWcB2FQbtMg3N81T5TD/gVoZZpOSW9G0zdeRkQYPf+aNgaA +/bCI60Bnz7oqMCfAp9m1plplSQKBgQDPLOD5HCOS+gqyS7hHpb4aDetgKErHuxki +l9/jzWLt6QR3q7rVwvc91tbvJejQh+aL+vw5xfjyN8DnjHQ7qjV0pPyW86bpd1Cf +b2AlBnKc9kI2ghcWirod6lu3Xwm+LYboh6++cCyYuq8lsKzslMPluzbEZzi+r1p0 +WAuo9KnwKQKBgQCiZe5YgxHoF7l76HYiLkUXQIOnQL8s7EGA/3dUi5KoOHL0GcP9 +9SbfGr62K00st/P8Nk7GWGCjRmAAE2sWL0L0L0d/NGbP5bzXEjBflJJQf8C00Onp +fshQENDLC8xVVkeDd1/9wkZyMzHRd0Q+OZZ8PgXRp57lIg5qaaChh3ft4QKBgBKL +J8/kTuLW8qIm2OXA1hUq7ch7ksXx3zwTb/zJ43L8CmRTwLNlcg/c7PwW3pHbuC0L +WAwrxi6YAvI2xiiZAZPhOKKiSGxZO6QpqedmflfCSwbp+fsQi7wlv/PX091r4clq +a7aV/8fj3c131OKQJkCn0y0dOB0JQQVs5A5JZ/SRAoGBAO4JCRa7OGNYEd+C2XkK +JbZ7HFgnvFcdPVnH4AikrtJ2tujvz9npVpLHAgfbxxxqo3GTw/5hlY4MWftXrorf +FWwuO/dBeVWWN9P0tIp2IGuw+lXgUqgr3UPSJmxurlKNtQvggjxM55WT/mV6cYYi +dHkErd2bkiUF0KjuNz5VZD94 +-----END PRIVATE KEY----- diff --git a/test/data/ca/worker-crt.pem b/test/data/ca/worker-crt.pem new file mode 100644 index 000000000..36e5e43e2 --- /dev/null +++ b/test/data/ca/worker-crt.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICsTCCAZkCFElB9131Tg40vCU0/10eVenAgwbAMA0GCSqGSIb3DQEBCwUAMBYx +FDASBgNVBAMMC29zYnVpbGQub3JnMB4XDTIwMTAwNTA4Mzg1N1oXDTIwMTEwNDA4 +Mzg1N1owFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAwJ0dIkgyH0Vq82Xnuez6Y30AAUg8BmVdWhEXW07XBUYdjnqG +XoDDk2hyqSKlCo4wtOgajS9j08eZG09b/JuQOIzoOP39HkmMFYW2ocJFcNM07h5Z +X248ANyG4XorIQPk6HiJJd+hCKm6Pta5HgRC6MBy9RRl+DOxJRfyMxSmI3LaH52d +GvsjhSGWAp57ksappadLAcYhnMQDwqgUcG9mtRXcewo5r6ypDDDnv0DL8qs9H9uN +Bw46LeE8zrfS6fVOOMly0GWPjcTCk2AWKRnSFJo5eoVue1NYm1lwAtVXMeZ21IQp +tEVi/vl1CSo3j/wyp95cApCoTQkqt0zjng/uEQIDAQABMA0GCSqGSIb3DQEBCwUA +A4IBAQBV1IhkPMGhYVvomI/rvb+wXjUNnEZyg6VTfOxjVWdZfCisfTqk3uw4ar0t +43b4QExm2dl1IFFtrfnRlx3uN1MQ4biH2A1p8go6mWILRjo3zLA78RzA//BG05UZ +DN98VP6VdCjFDMpwvhfUXFZzWfenUIjACnqY/VaURI+iT92M9jG1qFS9s50dmDn3 +lK3prS+HSKNdHc3KDfYoFzPoTfpuwJv10tkQd4jSt2FJevlQpcuXyytW5UGJrTgN +UVHVevYJhOjMuLMZ77QvDJvF4XEkap1FPP/tGwbhMEIPnD3qWCjD3+HA/PXcHMRq +hk4DBD+WNpxL6zMgMqUwRdfsBzec +-----END CERTIFICATE----- diff --git a/test/data/ca/worker-key.pem b/test/data/ca/worker-key.pem new file mode 100644 index 000000000..73a6f2ede --- /dev/null +++ b/test/data/ca/worker-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDAnR0iSDIfRWrz +Zee57PpjfQABSDwGZV1aERdbTtcFRh2OeoZegMOTaHKpIqUKjjC06BqNL2PTx5kb +T1v8m5A4jOg4/f0eSYwVhbahwkVw0zTuHllfbjwA3IbheishA+ToeIkl36EIqbo+ +1rkeBELowHL1FGX4M7ElF/IzFKYjctofnZ0a+yOFIZYCnnuSxqmlp0sBxiGcxAPC +qBRwb2a1Fdx7CjmvrKkMMOe/QMvyqz0f240HDjot4TzOt9Lp9U44yXLQZY+NxMKT +YBYpGdIUmjl6hW57U1ibWXAC1Vcx5nbUhCm0RWL++XUJKjeP/DKn3lwCkKhNCSq3 +TOOeD+4RAgMBAAECggEBAI6J9oxvJwBzS7Fx4Wl7ENTdJUrNnPYSv2Gusj00+/SA +LdFJpPR8j78flXLLG53TGgJWnYeL4XFRDWHjeaxXpwPiatv6Qf3O6abnu/67GM5k +zo/Ez9jKaAcvK3XjBdW53wWWZdAsTSxvBlAIcRfgiW9bM/dgMBHclyRfMzJP/p7N +z+l2yKrizImojL/CXEG6BjkjpcS5l5hr8/DGCMCEes9CcQamFb281wPXdktICOHG +tkyR8+E571rr+nzDYdaTLFa5jLiFDbNdCk378c8T5eOWCGQayEwBUfd06h7Fqn95 +Jt6TdFbWz1bXykUyKAkmniqgRNDol/wR6WjlnBEejV0CgYEA5vhX0IEwLoqIJww8 +sttGDkVJXjwAHOb9FQy5uWcz0b7QeLS8pJaGbact0nveMM3HXl3A/uVWvMtpnrEk +vEfE2ZktxwFIiYbrqjTbDp2s0yvjDde/FHJD2UkP0mGnzLas/NwV+pljZ7iAev4q +GlpcSBrxaeFabxENWfx6NY75QwsCgYEA1XysqOzmUXiPCxTwOnz+k9/4E9d8cg79 +nuQo8vJ8lEAzKAxic434GX4ijsu7OE5SqMotrpUtwtruNOVliDnpyxRz4TdTwo+A +4MgZG3BkG2OZNGsg3VaTpMtdkLWnd3Zato2AwQrUhUGMDW+kf/vRGsCJOmVsVWg/ +1hlWxgekhNMCgYAxG3AgRrdlzdJw6usk4/YbJqQYww0LGBmLFi+OueCModNVNqg9 +HjvqqHbXn7p4CehvqeNUzpIIhf8o3GUBGwlBco4HF8DCbMtCXwaMLv4Fz/jwgoR/ +5mOCmUQh6N1yawyQnoKVy3MVJGc8vzlYbQnd0sytRFqj7q42CbY6GPHqTQKBgHoF +1956Aa8hfIk1/5U+qng1NOOKcEv1O4udF7a9WO2XwGWspn0r8VoI2ZHK6wjk46Qs +Y239QHm2jx7W23DAwVvdJdrdt9dmFKDmXktrsxxgkkn+zXsVqDAyORmkasMCeBkN +ykEMgqpj67wmSt0IPt3OnOEu5XvvqUUjmJB5/9QXAoGBALLyTFgqiJdQwhlDCmMD +eUpd4OW6NAmsOke+udhjcXMF+WNieDI6z4TWhwpoFjtdRsrMHmB5VXZFwkvh7L53 +hEis0a9DX+ltNdHysMyrDBww7DyAC3gesf+N9iblPERn1G7lukNU2JcvpeCrwgtf +gM0xvSJPc+eNOmM3aKQsA/l9 +-----END PRIVATE KEY----- diff --git a/test/cases/fedora_31-aarch64-ami-boot.json b/test/data/cases/fedora_31-aarch64-ami-boot.json similarity index 100% rename from test/cases/fedora_31-aarch64-ami-boot.json rename to test/data/cases/fedora_31-aarch64-ami-boot.json diff --git a/test/cases/fedora_31-aarch64-openstack-boot.json b/test/data/cases/fedora_31-aarch64-openstack-boot.json similarity index 100% rename from test/cases/fedora_31-aarch64-openstack-boot.json rename to test/data/cases/fedora_31-aarch64-openstack-boot.json diff --git a/test/cases/fedora_31-aarch64-qcow2-boot.json b/test/data/cases/fedora_31-aarch64-qcow2-boot.json similarity index 100% rename from test/cases/fedora_31-aarch64-qcow2-boot.json rename to test/data/cases/fedora_31-aarch64-qcow2-boot.json diff --git a/test/cases/fedora_31-x86_64-ami-boot.json b/test/data/cases/fedora_31-x86_64-ami-boot.json similarity index 100% rename from test/cases/fedora_31-x86_64-ami-boot.json rename to test/data/cases/fedora_31-x86_64-ami-boot.json diff --git a/test/cases/fedora_31-x86_64-openstack-boot.json b/test/data/cases/fedora_31-x86_64-openstack-boot.json similarity index 100% rename from test/cases/fedora_31-x86_64-openstack-boot.json rename to test/data/cases/fedora_31-x86_64-openstack-boot.json diff --git a/test/cases/fedora_31-x86_64-qcow2-boot.json b/test/data/cases/fedora_31-x86_64-qcow2-boot.json similarity index 100% rename from test/cases/fedora_31-x86_64-qcow2-boot.json rename to test/data/cases/fedora_31-x86_64-qcow2-boot.json diff --git a/test/cases/fedora_31-x86_64-qcow2-customize.json b/test/data/cases/fedora_31-x86_64-qcow2-customize.json similarity index 100% rename from test/cases/fedora_31-x86_64-qcow2-customize.json rename to test/data/cases/fedora_31-x86_64-qcow2-customize.json diff --git a/test/cases/fedora_31-x86_64-vhd-boot.json b/test/data/cases/fedora_31-x86_64-vhd-boot.json similarity index 100% rename from test/cases/fedora_31-x86_64-vhd-boot.json rename to test/data/cases/fedora_31-x86_64-vhd-boot.json diff --git a/test/cases/fedora_31-x86_64-vmdk-boot.json b/test/data/cases/fedora_31-x86_64-vmdk-boot.json similarity index 100% rename from test/cases/fedora_31-x86_64-vmdk-boot.json rename to test/data/cases/fedora_31-x86_64-vmdk-boot.json diff --git a/test/cases/fedora_32-aarch64-ami-boot.json b/test/data/cases/fedora_32-aarch64-ami-boot.json similarity index 100% rename from test/cases/fedora_32-aarch64-ami-boot.json rename to test/data/cases/fedora_32-aarch64-ami-boot.json diff --git a/test/cases/fedora_32-aarch64-openstack-boot.json b/test/data/cases/fedora_32-aarch64-openstack-boot.json similarity index 100% rename from test/cases/fedora_32-aarch64-openstack-boot.json rename to test/data/cases/fedora_32-aarch64-openstack-boot.json diff --git a/test/cases/fedora_32-aarch64-qcow2-boot.json b/test/data/cases/fedora_32-aarch64-qcow2-boot.json similarity index 100% rename from test/cases/fedora_32-aarch64-qcow2-boot.json rename to test/data/cases/fedora_32-aarch64-qcow2-boot.json diff --git a/test/cases/fedora_32-x86_64-ami-boot.json b/test/data/cases/fedora_32-x86_64-ami-boot.json similarity index 100% rename from test/cases/fedora_32-x86_64-ami-boot.json rename to test/data/cases/fedora_32-x86_64-ami-boot.json diff --git a/test/cases/fedora_32-x86_64-fedora_iot_commit-boot.json b/test/data/cases/fedora_32-x86_64-fedora_iot_commit-boot.json similarity index 100% rename from test/cases/fedora_32-x86_64-fedora_iot_commit-boot.json rename to test/data/cases/fedora_32-x86_64-fedora_iot_commit-boot.json diff --git a/test/cases/fedora_32-x86_64-openstack-boot.json b/test/data/cases/fedora_32-x86_64-openstack-boot.json similarity index 100% rename from test/cases/fedora_32-x86_64-openstack-boot.json rename to test/data/cases/fedora_32-x86_64-openstack-boot.json diff --git a/test/cases/fedora_32-x86_64-qcow2-boot.json b/test/data/cases/fedora_32-x86_64-qcow2-boot.json similarity index 100% rename from test/cases/fedora_32-x86_64-qcow2-boot.json rename to test/data/cases/fedora_32-x86_64-qcow2-boot.json diff --git a/test/cases/fedora_32-x86_64-qcow2-customize.json b/test/data/cases/fedora_32-x86_64-qcow2-customize.json similarity index 100% rename from test/cases/fedora_32-x86_64-qcow2-customize.json rename to test/data/cases/fedora_32-x86_64-qcow2-customize.json diff --git a/test/cases/fedora_32-x86_64-vhd-boot.json b/test/data/cases/fedora_32-x86_64-vhd-boot.json similarity index 100% rename from test/cases/fedora_32-x86_64-vhd-boot.json rename to test/data/cases/fedora_32-x86_64-vhd-boot.json diff --git a/test/cases/fedora_32-x86_64-vmdk-boot.json b/test/data/cases/fedora_32-x86_64-vmdk-boot.json similarity index 100% rename from test/cases/fedora_32-x86_64-vmdk-boot.json rename to test/data/cases/fedora_32-x86_64-vmdk-boot.json diff --git a/test/cases/fedora_33-x86_64-ami-boot.json b/test/data/cases/fedora_33-x86_64-ami-boot.json similarity index 100% rename from test/cases/fedora_33-x86_64-ami-boot.json rename to test/data/cases/fedora_33-x86_64-ami-boot.json diff --git a/test/cases/fedora_33-x86_64-openstack-boot.json b/test/data/cases/fedora_33-x86_64-openstack-boot.json similarity index 100% rename from test/cases/fedora_33-x86_64-openstack-boot.json rename to test/data/cases/fedora_33-x86_64-openstack-boot.json diff --git a/test/cases/fedora_33-x86_64-qcow2-boot.json b/test/data/cases/fedora_33-x86_64-qcow2-boot.json similarity index 100% rename from test/cases/fedora_33-x86_64-qcow2-boot.json rename to test/data/cases/fedora_33-x86_64-qcow2-boot.json diff --git a/test/cases/fedora_33-x86_64-qcow2-customize.json b/test/data/cases/fedora_33-x86_64-qcow2-customize.json similarity index 100% rename from test/cases/fedora_33-x86_64-qcow2-customize.json rename to test/data/cases/fedora_33-x86_64-qcow2-customize.json diff --git a/test/cases/fedora_33-x86_64-vhd-boot.json b/test/data/cases/fedora_33-x86_64-vhd-boot.json similarity index 100% rename from test/cases/fedora_33-x86_64-vhd-boot.json rename to test/data/cases/fedora_33-x86_64-vhd-boot.json diff --git a/test/cases/fedora_33-x86_64-vmdk-boot.json b/test/data/cases/fedora_33-x86_64-vmdk-boot.json similarity index 100% rename from test/cases/fedora_33-x86_64-vmdk-boot.json rename to test/data/cases/fedora_33-x86_64-vmdk-boot.json diff --git a/test/cases/rhel_8-aarch64-ami-boot.json b/test/data/cases/rhel_8-aarch64-ami-boot.json similarity index 100% rename from test/cases/rhel_8-aarch64-ami-boot.json rename to test/data/cases/rhel_8-aarch64-ami-boot.json diff --git a/test/cases/rhel_8-aarch64-openstack-boot.json b/test/data/cases/rhel_8-aarch64-openstack-boot.json similarity index 100% rename from test/cases/rhel_8-aarch64-openstack-boot.json rename to test/data/cases/rhel_8-aarch64-openstack-boot.json diff --git a/test/cases/rhel_8-aarch64-qcow2-boot.json b/test/data/cases/rhel_8-aarch64-qcow2-boot.json similarity index 100% rename from test/cases/rhel_8-aarch64-qcow2-boot.json rename to test/data/cases/rhel_8-aarch64-qcow2-boot.json diff --git a/test/cases/rhel_8-aarch64-rhel_edge_commit-boot.json b/test/data/cases/rhel_8-aarch64-rhel_edge_commit-boot.json similarity index 100% rename from test/cases/rhel_8-aarch64-rhel_edge_commit-boot.json rename to test/data/cases/rhel_8-aarch64-rhel_edge_commit-boot.json diff --git a/test/cases/rhel_8-aarch64-tar-boot.json b/test/data/cases/rhel_8-aarch64-tar-boot.json similarity index 100% rename from test/cases/rhel_8-aarch64-tar-boot.json rename to test/data/cases/rhel_8-aarch64-tar-boot.json diff --git a/test/cases/rhel_8-ppc64le-qcow2-boot.json b/test/data/cases/rhel_8-ppc64le-qcow2-boot.json similarity index 100% rename from test/cases/rhel_8-ppc64le-qcow2-boot.json rename to test/data/cases/rhel_8-ppc64le-qcow2-boot.json diff --git a/test/cases/rhel_8-ppc64le-tar-boot.json b/test/data/cases/rhel_8-ppc64le-tar-boot.json similarity index 100% rename from test/cases/rhel_8-ppc64le-tar-boot.json rename to test/data/cases/rhel_8-ppc64le-tar-boot.json diff --git a/test/cases/rhel_8-s390x-qcow2-boot.json b/test/data/cases/rhel_8-s390x-qcow2-boot.json similarity index 100% rename from test/cases/rhel_8-s390x-qcow2-boot.json rename to test/data/cases/rhel_8-s390x-qcow2-boot.json diff --git a/test/cases/rhel_8-s390x-tar-boot.json b/test/data/cases/rhel_8-s390x-tar-boot.json similarity index 100% rename from test/cases/rhel_8-s390x-tar-boot.json rename to test/data/cases/rhel_8-s390x-tar-boot.json diff --git a/test/cases/rhel_8-x86_64-ami-boot.json b/test/data/cases/rhel_8-x86_64-ami-boot.json similarity index 100% rename from test/cases/rhel_8-x86_64-ami-boot.json rename to test/data/cases/rhel_8-x86_64-ami-boot.json diff --git a/test/cases/rhel_8-x86_64-openstack-boot.json b/test/data/cases/rhel_8-x86_64-openstack-boot.json similarity index 100% rename from test/cases/rhel_8-x86_64-openstack-boot.json rename to test/data/cases/rhel_8-x86_64-openstack-boot.json diff --git a/test/cases/rhel_8-x86_64-qcow2-boot.json b/test/data/cases/rhel_8-x86_64-qcow2-boot.json similarity index 100% rename from test/cases/rhel_8-x86_64-qcow2-boot.json rename to test/data/cases/rhel_8-x86_64-qcow2-boot.json diff --git a/test/cases/rhel_8-x86_64-qcow2-customize.json b/test/data/cases/rhel_8-x86_64-qcow2-customize.json similarity index 100% rename from test/cases/rhel_8-x86_64-qcow2-customize.json rename to test/data/cases/rhel_8-x86_64-qcow2-customize.json diff --git a/test/cases/rhel_8-x86_64-rhel_edge_commit-boot.json b/test/data/cases/rhel_8-x86_64-rhel_edge_commit-boot.json similarity index 100% rename from test/cases/rhel_8-x86_64-rhel_edge_commit-boot.json rename to test/data/cases/rhel_8-x86_64-rhel_edge_commit-boot.json diff --git a/test/cases/rhel_8-x86_64-tar-boot.json b/test/data/cases/rhel_8-x86_64-tar-boot.json similarity index 100% rename from test/cases/rhel_8-x86_64-tar-boot.json rename to test/data/cases/rhel_8-x86_64-tar-boot.json diff --git a/test/cases/rhel_8-x86_64-vhd-boot.json b/test/data/cases/rhel_8-x86_64-vhd-boot.json similarity index 100% rename from test/cases/rhel_8-x86_64-vhd-boot.json rename to test/data/cases/rhel_8-x86_64-vhd-boot.json diff --git a/test/cases/rhel_8-x86_64-vmdk-boot.json b/test/data/cases/rhel_8-x86_64-vmdk-boot.json similarity index 100% rename from test/cases/rhel_8-x86_64-vmdk-boot.json rename to test/data/cases/rhel_8-x86_64-vmdk-boot.json diff --git a/test/cloud-init/meta-data b/test/data/cloud-init/meta-data similarity index 100% rename from test/cloud-init/meta-data rename to test/data/cloud-init/meta-data diff --git a/test/cloud-init/network-config b/test/data/cloud-init/network-config similarity index 100% rename from test/cloud-init/network-config rename to test/data/cloud-init/network-config diff --git a/test/cloud-init/user-data b/test/data/cloud-init/user-data similarity index 100% rename from test/cloud-init/user-data rename to test/data/cloud-init/user-data diff --git a/test/composer/osbuild-composer.toml b/test/data/composer/osbuild-composer.toml similarity index 100% rename from test/composer/osbuild-composer.toml rename to test/data/composer/osbuild-composer.toml diff --git a/test/composer/osbuild-worker.toml b/test/data/composer/osbuild-worker.toml similarity index 100% rename from test/composer/osbuild-worker.toml rename to test/data/composer/osbuild-worker.toml diff --git a/test/kerberos/krb5-local.conf b/test/data/kerberos/krb5-local.conf similarity index 100% rename from test/kerberos/krb5-local.conf rename to test/data/kerberos/krb5-local.conf diff --git a/test/keyring/id_rsa b/test/data/keyring/id_rsa similarity index 100% rename from test/keyring/id_rsa rename to test/data/keyring/id_rsa diff --git a/test/keyring/id_rsa.pub b/test/data/keyring/id_rsa.pub similarity index 100% rename from test/keyring/id_rsa.pub rename to test/data/keyring/id_rsa.pub diff --git a/schutzbot/vendor/87-podman-bridge.conflist b/test/data/vendor/87-podman-bridge.conflist similarity index 100% rename from schutzbot/vendor/87-podman-bridge.conflist rename to test/data/vendor/87-podman-bridge.conflist diff --git a/schutzbot/vendor/README.md b/test/data/vendor/README.md similarity index 100% rename from schutzbot/vendor/README.md rename to test/data/vendor/README.md diff --git a/schutzbot/vendor/dnsname b/test/data/vendor/dnsname similarity index 100% rename from schutzbot/vendor/dnsname rename to test/data/vendor/dnsname