# Uncomment this to debug failures
#DEBUGFAIL="systemd.unit=multi-user.target"
+DEBUGTOOLS="df free ls stty cat ps ln ip route dmesg dhclient mkdir cp ping dhclient strace less grep id tty touch du sort"
-test_run() {
+
+run_qemu() {
qemu-kvm \
-hda $TESTDIR/rootdisk.img \
-m 256M -nographic \
return $ret
}
+
+run_nspawn() {
+ systemd-nspawn -b -D $TESTDIR/nspawn-root /usr/lib/systemd/systemd
+ ret=1
+ [[ -e $TESTDIR/nspawn-root/testok ]] && ret=0
+ cp -a $TESTDIR/nspawn-root/var/log/journal $TESTDIR
+ cp -a $TESTDIR/nspawn-root/failed $TESTDIR
+ cat $TESTDIR/failed
+ ls -l $TESTDIR/journal/*/*.journal
+ test -s $TESTDIR/failed && ret=$(($ret+1))
+ return $ret
+}
+
+
+test_run() {
+ run_qemu || return 1
+ if [[ -d /sys/fs/cgroup/systemd ]]; then
+ run_nspawn || return 1
+ fi
+ return 0
+}
+
test_setup() {
rm -f $TESTDIR/rootdisk.img
# Create the blank file to use as a root filesystem
fi
# some helper tools for debugging
- dracut_install sh df free ls shutdown poweroff \
- stty cat ps ln ip route \
- mount dmesg dhclient mkdir cp ping dhclient \
- umount strace less grep id tty touch
+ [[ $DEBUGTOOLS ]] && dracut_install $DEBUGTOOLS
# install ld.so.conf* and run ldconfig
cp -a /etc/ld.so.conf* $initdir/etc
ldconfig -r "$initdir"
)
- umount $TESTDIR/root
+ rm -fr $TESTDIR/nspawn-root
+ cp -avr $TESTDIR/root $TESTDIR/nspawn-root
+ umount $TESTDIR/root
}
test_cleanup() {