]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: Factorize common integration test functions (#6540)
authorMartin Pitt <martinpitt@users.noreply.github.com>
Fri, 4 Aug 2017 12:34:14 +0000 (14:34 +0200)
committerEvgeny Vereshchagin <evvers@ya.ru>
Fri, 4 Aug 2017 12:34:14 +0000 (15:34 +0300)
All test/TEST* but TEST-02-CRYPTSETUP share the same check_result_qemu()
and test_cleanup(), so move them into test_functions and only override
them in TEST-02-CRYPTSETUP.

Also provide a common test_run() which by default assumes that both QEMU
and nspawn tests are run. Particular tests which don't support either
need to explicitly opt out by setting $TEST_NO_{QEMU,NSPAWN}. Do it this
way around to avoid accidentally forgetting to opt in, and to encourage
test authors to at least always support nspawn.

16 files changed:
test/TEST-01-BASIC/test.sh
test/TEST-02-CRYPTSETUP/test.sh
test/TEST-03-JOBS/test.sh
test/TEST-04-JOURNAL/test.sh
test/TEST-05-RLIMITS/test.sh
test/TEST-06-SELINUX/test.sh
test/TEST-07-ISSUE-1981/test.sh
test/TEST-08-ISSUE-2730/test.sh
test/TEST-09-ISSUE-2691/test.sh
test/TEST-10-ISSUE-2467/test.sh
test/TEST-11-ISSUE-3166/test.sh
test/TEST-12-ISSUE-3171/test.sh
test/TEST-13-NSPAWN-SMOKE/test.sh
test/TEST-14-MACHINE-ID/test.sh
test/TEST-15-DROPIN/test.sh
test/test-functions

index 041195dcd8dc79794100ab053f4f52d02a41dbe9..b1d6e1931bdc9b4cb304f87cf9e96928a9a5c307 100755 (executable)
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Basic systemd setup"
 
 . $TEST_BASE_DIR/test-functions
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    if run_nspawn; then
-        check_result_nspawn || return 1
-    else
-        dwarn "can't run systemd-nspawn, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -71,10 +43,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index aea0fc53f6c27deb1f3f79199a907e2d93cb7259..31eced5809683684c001d93b754ef5aa4d84bae9 100755 (executable)
@@ -2,6 +2,7 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="cryptsetup systemd setup"
+TEST_NO_NSPAWN=1
 
 . $TEST_BASE_DIR/test-functions
 
@@ -24,15 +25,6 @@ check_result_qemu() {
 }
 
 
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     echo -n test >$TESTDIR/keyfile
index ab0de0bfd14fc9060b5782a06c9ec72b20160a15..a3755a7a7a9d387e517fed70ab261f05395ea04c 100755 (executable)
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Job-related tests"
 
 . $TEST_BASE_DIR/test-functions
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    if run_nspawn; then
-        check_result_nspawn || return 1
-    else
-        dwarn "can't run systemd-nspawn, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -69,10 +41,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 3ccf1130190f0033d6cd0d4f222ca1d70a3a2608..66fc5af3d25497884c1195b0a9eccb5871476e36 100755 (executable)
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Journal-related tests"
 
 . $TEST_BASE_DIR/test-functions
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    if run_nspawn; then
-        check_result_nspawn || return 1
-    else
-        dwarn "can't run systemd-nspawn, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -75,10 +47,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index a5f7e8de0bba5443bc8a369e915c2ac063cf945c..e684b6dd2d36f42762fc48482313dd0cd4651495 100755 (executable)
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Resource limits-related tests"
 
 . $TEST_BASE_DIR/test-functions
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    if run_nspawn; then
-        check_result_nspawn || return 1
-    else
-        dwarn "can't run systemd-nspawn, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -71,10 +43,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 1ae4a7c0d96579c471b207deca72b80b48472e83..ab4bb435dcd841460a825de13551c07b2632b0ab 100755 (executable)
@@ -2,6 +2,7 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="SELinux tests"
+TEST_NO_NSPAWN=1
 
 # Requirements:
 # Fedora 23
@@ -12,29 +13,6 @@ TEST_DESCRIPTION="SELinux tests"
 SETUP_SELINUX=yes
 KERNEL_APPEND="$KERNEL_APPEND selinux=1 security=selinux"
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -126,10 +104,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 2f7f01058eeb0b447cba8c3d0fa8e46d494ab5b2..a55c691a6293c54591b690f1386976b1b87e9c96 100755 (executable)
@@ -2,21 +2,12 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/1981"
+TEST_NO_QEMU=1
 
 . $TEST_BASE_DIR/test-functions
 
 NSPAWN_TIMEOUT=30s
 
-test_run() {
-    dwarn "skipping QEMU"
-    if run_nspawn; then
-        check_result_nspawn || return 1
-    else
-        dwarn "can't run systemd-nspawn, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -50,10 +41,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 44831983b3bfd5cf7620b7d353558aebc964270e..f7f34007f9af4c9f1070034c841f3cf4f2c25c13 100755 (executable)
@@ -2,36 +2,13 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/2730"
+TEST_NO_NSPAWN=1
 
 . $TEST_BASE_DIR/test-functions
 SKIP_INITRD=yes
 QEMU_TIMEOUT=180
 FSTYPE=ext4
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    [ -n "$TIMED_OUT" ] && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -103,10 +80,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 8ae02e61ac594f4864cb0ea3bda419c7ed1a1e5e..1bd620a2679d6b06ca2539d474c0f5df7bf321c3 100755 (executable)
@@ -2,35 +2,12 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/2691"
+TEST_NO_NSPAWN=1
 
 . $TEST_BASE_DIR/test-functions
 SKIP_INITRD=yes
 QEMU_TIMEOUT=90
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    [ -n "$TIMED_OUT" ] && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -71,10 +48,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 4eca6784bce24f07ff35302165bc21c669b3131f..dfc7cbe52d0d04c116d24e1c41dfdd70c3f6c1cb 100755 (executable)
@@ -2,33 +2,11 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/2467"
+TEST_NO_NSPAWN=1
 
 . $TEST_BASE_DIR/test-functions
 SKIP_INITRD=yes
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -82,10 +60,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 0f269c8211fd58dfa9a06f2cd6f604feafd1fab6..12bf84252b04d4e079aa1fe123d0b3daabf198d0 100755 (executable)
@@ -2,33 +2,11 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/3166"
+TEST_NO_NSPAWN=1
 
 . $TEST_BASE_DIR/test-functions
 SKIP_INITRD=yes
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -85,10 +63,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index c252bdfbad014529e43c038456d82eabf2206db0..7837f639a16f5d56e981f8ead25c4ff6af0ead04 100755 (executable)
@@ -2,18 +2,10 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/3171"
+TEST_NO_QEMU=1
 
 . $TEST_BASE_DIR/test-functions
 
-test_run() {
-    if run_nspawn; then
-        check_result_nspawn || return 1
-    else
-        dwarn "can't run systemd-nspawn, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -100,10 +92,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 75b99236a3d2f7452910715cc2b6a8909f896830..84a3af30a3b8ea80c9afe49b7cd65fedcca7d1d5 100755 (executable)
@@ -2,32 +2,10 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="systemd-nspawn smoke test"
+TEST_NO_NSPAWN=1
 SKIP_INITRD=yes
 . $TEST_BASE_DIR/test-functions
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -153,10 +131,4 @@ EOF
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 35106e39d22668133549a4a55ff0ba304f471a15..c406205c513fd0a1ac65c68755390f3014aa7fd2 100755 (executable)
@@ -2,32 +2,10 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 TEST_DESCRIPTION="Basic systemd setup"
+TEST_NO_NSPAWN=1
 SKIP_INITRD=yes
 . $TEST_BASE_DIR/test-functions
 
-check_result_qemu() {
-    ret=1
-    mkdir -p $TESTDIR/root
-    mount ${LOOPDEV}p1 $TESTDIR/root
-    [[ -e $TESTDIR/root/testok ]] && ret=0
-    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
-    cp -a $TESTDIR/root/var/log/journal $TESTDIR
-    umount $TESTDIR/root
-    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
-    ls -l $TESTDIR/journal/*/*.journal
-    test -s $TESTDIR/failed && ret=$(($ret+1))
-    return $ret
-}
-
-test_run() {
-    if run_qemu; then
-        check_result_qemu || return 1
-    else
-        dwarn "can't run QEMU, skipping"
-    fi
-    return 0
-}
-
 test_setup() {
     create_empty_image
     mkdir -p $TESTDIR/root
@@ -110,10 +88,4 @@ chmod +x $initdir/test-machine-id-setup.sh
     umount $TESTDIR/root
 }
 
-test_cleanup() {
-    umount $TESTDIR/root 2>/dev/null
-    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
-    return 0
-}
-
 do_test "$@"
index 1b460db7b19c52240a4636d7d6bb6a0f767e7290..536b379f642f8282f0acecb98c790539ed5b3e83 100755 (executable)
@@ -3,22 +3,10 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 TEST_DESCRIPTION="Dropin tests"
+TEST_NO_QEMU=1
 
 . $TEST_BASE_DIR/test-functions
 
-
-test_run_nspawn() {
-        if ! run_nspawn; then
-                dwarn "can't run systemd-nspawn, skipping"
-                return 0
-        fi
-        check_result_nspawn
-}
-
-test_run() {
-        test_run_nspawn || return
-}
-
 test_setup() {
         # create the basic filesystem layout
         setup_basic_environment >/dev/null
index 64926089d4ce9238d004e9ed69385067d2deb08d..5d66b7bc5b005e482ecb3a6aea5907d858b4d2cf 100644 (file)
@@ -375,6 +375,22 @@ check_result_nspawn() {
     return $ret
 }
 
+# can be overridden in specific test
+check_result_qemu() {
+    ret=1
+    mkdir -p $TESTDIR/root
+    mount ${LOOPDEV}p1 $TESTDIR/root
+    [[ -e $TESTDIR/root/testok ]] && ret=0
+    [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
+    cp -a $TESTDIR/root/var/log/journal $TESTDIR
+    umount $TESTDIR/root
+    [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
+    ls -l $TESTDIR/journal/*/*.journal
+    test -s $TESTDIR/failed && ret=$(($ret+1))
+    [ -n "$TIMED_OUT" ] && ret=$(($ret+1))
+    return $ret
+}
+
 strip_binaries() {
     if [[ "$STRIP_BINARIES" = "no" ]]; then
         ddebug "Don't strip binaries"
@@ -1360,6 +1376,31 @@ setup_suse() {
     inst_simple "/usr/lib/systemd/system/haveged.service"
 }
 
+# can be overridden in specific test
+test_cleanup() {
+    umount $TESTDIR/root 2>/dev/null || true
+    [[ $LOOPDEV ]] && losetup -d $LOOPDEV
+    return 0
+}
+
+test_run() {
+    if [ -z "$TEST_NO_QEMU" ]; then
+        if run_qemu; then
+            check_result_qemu || return 1
+        else
+            dwarn "can't run QEMU, skipping"
+        fi
+    fi
+    if [ -z "$TEST_NO_NSPAWN" ]; then
+        if run_nspawn; then
+            check_result_nspawn || return 1
+        else
+            dwarn "can't run systemd-nspawn, skipping"
+        fi
+    fi
+    return 0
+}
+
 do_test() {
     if [[ $UID != "0" ]]; then
         echo "TEST: $TEST_DESCRIPTION [SKIPPED]: not root" >&2