chiark / gitweb /
test/TEST-01-BASIC: make DEBUGTOOLS an environment variable
[elogind.git] / test / TEST-01-BASIC / test.sh
index c84fb668b43f79b651a13e31046f030be6880dc2..19676454ac55c33806a72221c5b3f59c4ab5c8fb 100755 (executable)
@@ -7,8 +7,10 @@ KVERSION=${KVERSION-$(uname -r)}
 
 # 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 \
@@ -27,6 +29,28 @@ test_run() {
     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
@@ -174,18 +198,17 @@ EOF
         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() {