Skip to content

Commit

Permalink
WIP: test: migrte install tests to pytest
Browse files Browse the repository at this point in the history
  • Loading branch information
ejoerns committed Nov 6, 2023
1 parent eb87bff commit 2d6a3e6
Show file tree
Hide file tree
Showing 3 changed files with 186 additions and 159 deletions.
6 changes: 6 additions & 0 deletions test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,3 +232,9 @@ def rauc_dbus_service():
yield

service.kill()


@pytest.fixture
def rauc_dbus_service_with_system(rauc_dbus_service):
os.mkdir("")
open().close()
159 changes: 0 additions & 159 deletions test/rauc.t
Original file line number Diff line number Diff line change
Expand Up @@ -476,165 +476,6 @@ test_expect_success "rauc encrypt (verity bundle)" "
test ! -f ${TEST_TMPDIR}/encrypted.raucb
"

test_expect_success ROOT,SERVICE "rauc install" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-bundle.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
test -d /run/rauc/slots/active &&
test -L /run/rauc/slots/active/rootfs &&
readlink /run/rauc/slots/active/rootfs &&
test \"\$(readlink /run/rauc/slots/active/rootfs)\" = \"${SHARNESS_TEST_DIRECTORY}/images/rootfs-0\" &&
rauc \
install ${TEST_TMPDIR}/good-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,SERVICE "rauc install (verity)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-verity-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-verity-bundle.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install ${TEST_TMPDIR}/good-verity-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,SERVICE "rauc install (crypt)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-crypt-bundle-encrypted.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-crypt-bundle-encrypted.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/crypt-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install ${TEST_TMPDIR}/good-crypt-bundle-encrypted.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,SERVICE,CASYNC "rauc install (plain, casync, local)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-casync-bundle-1.5.1.raucb ${TEST_TMPDIR}/ &&
cp -rL ${SHARNESS_TEST_DIRECTORY}/good-casync-bundle-1.5.1.castr ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-casync-bundle-1.5.1.raucb &&
test_when_finished rm -rf ${TEST_TMPDIR}/good-casync-bundle-1.5.1.castr &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install ${TEST_TMPDIR}/good-casync-bundle-1.5.1.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,SERVICE,CASYNC,HTTP "rauc install (verity, casync, http)" "
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install http://127.0.0.1/test/good-casync-bundle-verity.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,SERVICE,STREAMING "rauc install (streaming)" "
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install http://127.0.0.1/test/good-verity-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,SERVICE,STREAMING "rauc install (streaming error)" "
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
test_must_fail rauc \
install http://127.0.0.1/test/missing-bundle.raucb &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,SERVICE "rauc install --progress" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-bundle.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install --progress ${TEST_TMPDIR}/good-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,!SERVICE "rauc install (no service)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-bundle.raucb &&
rm -rf ${SHARNESS_TEST_DIRECTORY}/images &&
mkdir ${SHARNESS_TEST_DIRECTORY}/images &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-1 &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--override-boot-slot=system0 \
install ${TEST_TMPDIR}/good-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,!SERVICE,STREAMING "rauc install (no service, streaming)" "
rm -rf ${SHARNESS_TEST_DIRECTORY}/images &&
mkdir ${SHARNESS_TEST_DIRECTORY}/images &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-1 &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--override-boot-slot=system0 \
install http://127.0.0.1/test/good-verity-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

test_expect_success ROOT,!SERVICE,STREAMING "rauc install (no service, streaming error)" "
rm -rf ${SHARNESS_TEST_DIRECTORY}/images &&
mkdir ${SHARNESS_TEST_DIRECTORY}/images &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-1 &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
test_must_fail rauc \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--override-boot-slot=system0 \
install http://127.0.0.1/test/missing-bundle.raucb &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"

rm -rf $TEST_TMPDIR

test_done
180 changes: 180 additions & 0 deletions test/test_rauc_install.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
import os
import pytest
import shutil

from helper import run
from conftest import is_root
from conftest import have_service


@pytest.mark.skipif(not is_root(), reason="Have no root")
@pytest.mark.skipif(not have_service(), reason="Have no service")
def test_rauc_install(rauc_service, rauc_dbus_service_with_system, tmp_path):

# copy to tmp path for safe ownership check
shutil.copy('good-bundle.raucb', tmp_path / 'good-bundle.raucb')

out, err, exitcode = run(f"rauc install {tmp_path}/good-bundle.raucb")

assert exitcode == 0

"""
test_expect_success ROOT,SERVICE "rauc install" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-bundle.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
test -d /run/rauc/slots/active &&
test -L /run/rauc/slots/active/rootfs &&
readlink /run/rauc/slots/active/rootfs &&
test \"\$(readlink /run/rauc/slots/active/rootfs)\" = \"${SHARNESS_TEST_DIRECTORY}/images/rootfs-0\" &&
rauc \
install ${TEST_TMPDIR}/good-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,SERVICE "rauc install (verity)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-verity-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-verity-bundle.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install ${TEST_TMPDIR}/good-verity-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,SERVICE "rauc install (crypt)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-crypt-bundle-encrypted.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-crypt-bundle-encrypted.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/crypt-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install ${TEST_TMPDIR}/good-crypt-bundle-encrypted.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,SERVICE,CASYNC "rauc install (plain, casync, local)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-casync-bundle-1.5.1.raucb ${TEST_TMPDIR}/ &&
cp -rL ${SHARNESS_TEST_DIRECTORY}/good-casync-bundle-1.5.1.castr ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-casync-bundle-1.5.1.raucb &&
test_when_finished rm -rf ${TEST_TMPDIR}/good-casync-bundle-1.5.1.castr &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install ${TEST_TMPDIR}/good-casync-bundle-1.5.1.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,SERVICE,CASYNC,HTTP "rauc install (verity, casync, http)" "
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install http://127.0.0.1/test/good-casync-bundle-verity.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,SERVICE,STREAMING "rauc install (streaming)" "
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install http://127.0.0.1/test/good-verity-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,SERVICE,STREAMING "rauc install (streaming error)" "
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
test_must_fail rauc \
install http://127.0.0.1/test/missing-bundle.raucb &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,SERVICE "rauc install --progress" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-bundle.raucb &&
start_rauc_dbus_service_with_system \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--mount=${SHARNESS_TEST_DIRECTORY}/mnt \
--override-boot-slot=system0 &&
test_when_finished stop_rauc_dbus_service_with_system &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
install --progress ${TEST_TMPDIR}/good-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,!SERVICE "rauc install (no service)" "
cp -L ${SHARNESS_TEST_DIRECTORY}/good-bundle.raucb ${TEST_TMPDIR}/ &&
test_when_finished rm -f ${TEST_TMPDIR}/good-bundle.raucb &&
rm -rf ${SHARNESS_TEST_DIRECTORY}/images &&
mkdir ${SHARNESS_TEST_DIRECTORY}/images &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-1 &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--override-boot-slot=system0 \
install ${TEST_TMPDIR}/good-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,!SERVICE,STREAMING "rauc install (no service, streaming)" "
rm -rf ${SHARNESS_TEST_DIRECTORY}/images &&
mkdir ${SHARNESS_TEST_DIRECTORY}/images &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-1 &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
rauc \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--override-boot-slot=system0 \
install http://127.0.0.1/test/good-verity-bundle.raucb &&
test -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
test_expect_success ROOT,!SERVICE,STREAMING "rauc install (no service, streaming error)" "
rm -rf ${SHARNESS_TEST_DIRECTORY}/images &&
mkdir ${SHARNESS_TEST_DIRECTORY}/images &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-0 &&
touch ${SHARNESS_TEST_DIRECTORY}/images/appfs-1 &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1 &&
test_must_fail rauc \
--conf=${SHARNESS_TEST_DIRECTORY}/minimal-test.conf \
--override-boot-slot=system0 \
install http://127.0.0.1/test/missing-bundle.raucb &&
test ! -s ${SHARNESS_TEST_DIRECTORY}/images/rootfs-1
"
"""

0 comments on commit 2d6a3e6

Please sign in to comment.