test.sh revision 5c404f1ab8e96efedb983806443ca982a1b2a372
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen#!/bin/bash
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen# ex: ts=8 sw=4 sts=4 et filetype=sh
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom GundersenTEST_DESCRIPTION="Basic systemd setup"
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen. $TEST_BASE_DIR/test-functions
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersencheck_result_qemu() {
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen ret=1
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen mkdir -p $TESTDIR/root
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen mount ${LOOPDEV}p1 $TESTDIR/root
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen [[ -e $TESTDIR/root/testok ]] && ret=0
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen [[ -f $TESTDIR/root/var/log/journal ]] && cp -a $TESTDIR/root/var/log/journal $TESTDIR
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen umount $TESTDIR/root
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen ls -l $TESTDIR/journal/*/*.journal
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen test -s $TESTDIR/failed && ret=$(($ret+1))
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen return $ret
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen}
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersentest_run() {
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen if run_qemu; then
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen check_result_qemu || return 1
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen else
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen dwarn "can't run QEMU, skipping"
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen fi
1346b1f0388f4100bb3c2a2bb23bc881769c020cTom Gundersen if check_nspawn; then
f5be560181d092c5f52a2b819aedcd48220f36abTom Gundersen run_nspawn
dd43110f781a9245ec00531456fee68ed763a179Tom Gundersen check_result_nspawn || return 1
5c1d3fc93d91384bbac29adf01074fa4375317eaUmut Tezduyar Lindskog else
4138fb2c7936758da709eaed3f6b4f3df1d04effPatrik Flykt dwarn "can't run systemd-nspawn, skipping"
4138fb2c7936758da709eaed3f6b4f3df1d04effPatrik Flykt fi
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen return 0
ce43e484465050c619ea9a1991d49b3d6215028bSusant Sahani}
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersentest_setup() {
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen create_empty_image
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen mkdir -p $TESTDIR/root
06f021a8048583d66202e3ac5cd0a12386d33ac2Tom Gundersen mount ${LOOPDEV}p1 $TESTDIR/root
134e56dcc53970a20a858283650bb92cd5da1d17Lennart Poettering
3b653205cf7bd3851befd0a9f6a3ded6e267c173Lennart Poettering # Create what will eventually be our root filesystem onto an overlay
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen (
aba496a58acf9d9c61314de71353550e579f85eeUmut Tezduyar Lindskog LOG_LEVEL=5
4faefc7ff884eae65a80e82313fd9f4bb859d6dbLennart Poettering eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
4faefc7ff884eae65a80e82313fd9f4bb859d6dbLennart Poettering
aba496a58acf9d9c61314de71353550e579f85eeUmut Tezduyar Lindskog setup_basic_environment
1a436809498faf6486815baa0338fb6b8e5def07Tom Gundersen
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen # setup the testsuite service
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen cat >$initdir/etc/systemd/system/testsuite.service <<EOF
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom Gundersen[Unit]
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom GundersenDescription=Testsuite service
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom GundersenAfter=multi-user.target
11bf3cced13c885ca215c108cb0bdb7a148520d6Lennart Poettering
b98b483bac585af754e8a22ea890db8486905d8aAlin Rauta[Service]
f579559b3a14c1f1ef96c372e7626c4733e6ef7dTom GundersenExecStart=/bin/sh -x -c 'systemctl --failed --no-legend --no-pager > /failed ; echo OK > /testok'
cb9fc36a1211967e8c58b0502a26c42552ac8060Lennart PoetteringType=oneshot
769d324c99aab129148bd25f5f663ef441287d86Lennart PoetteringEOF
769d324c99aab129148bd25f5f663ef441287d86Lennart Poettering
769d324c99aab129148bd25f5f663ef441287d86Lennart Poettering setup_testsuite
769d324c99aab129148bd25f5f663ef441287d86Lennart Poettering )
769d324c99aab129148bd25f5f663ef441287d86Lennart Poettering setup_nspawn_root
cb9fc36a1211967e8c58b0502a26c42552ac8060Lennart Poettering
cb9fc36a1211967e8c58b0502a26c42552ac8060Lennart Poettering ddebug "umount $TESTDIR/root"
cb9fc36a1211967e8c58b0502a26c42552ac8060Lennart Poettering umount $TESTDIR/root
ed942a9eb22d50f667909ad6184b45015d28d054Tom Gundersen}
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersen
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersentest_cleanup() {
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersen umount $TESTDIR/root 2>/dev/null
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersen [[ $LOOPDEV ]] && losetup -d $LOOPDEV
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersen return 0
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersen}
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersen
bd8f65387673e29f46136a4ed172097035002c23Tom Gundersendo_test "$@"
e331e24649213f2e093e16e4d3d64ee823dfc375Tom Gundersen