run_nspawn() {
- systemd-nspawn -b -D $TESTDIR/nspawn-root --capability=CAP_AUDIT_CONTROL,CAP_AUDIT_WRITE /usr/lib/systemd/systemd
+ ../../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/failed $TESTDIR
LABEL=systemd / ext3 rw 0 1
EOF
- # setup the testsuite target
- cat >$initdir/etc/systemd/system/testsuite.target <<EOF
-[Unit]
-Description=Testsuite target
-Requires=multi-user.target
-After=multi-user.target
-Conflicts=rescue.target
-AllowIsolate=yes
-EOF
+ # setup the testsuite target and the test ending service
+ cp $TEST_BASE_DIR/{testsuite.target,end.service} $initdir/etc/systemd/system/
# setup the testsuite service
cat >$initdir/etc/systemd/system/testsuite.service <<EOF
[Service]
ExecStart=/bin/bash -c 'set -x; systemctl --failed --no-legend --no-pager > /failed ; echo OK > /testok; while : ;do echo "testsuite service waiting for journal to move to /var/log/journal" > /dev/console ; for i in /var/log/journal/*;do [ -d "\$i" ] && echo "\$i" && break 2; done; sleep 1; done; sleep 1; exit 0;'
-ExecStopPost=/usr/bin/systemctl poweroff
Type=oneshot
EOF
+
mkdir -p $initdir/etc/systemd/system/testsuite.target.wants
ln -fs ../testsuite.service $initdir/etc/systemd/system/testsuite.target.wants/testsuite.service
+ ln -fs ../end.service $initdir/etc/systemd/system/testsuite.target.wants/end.service
# make the testsuite the default target
ln -fs testsuite.target $initdir/etc/systemd/system/default.target
# install ld.so.conf* and run ldconfig
cp -a /etc/ld.so.conf* $initdir/etc
ldconfig -r "$initdir"
- ddebug "Strip binaeries"
+ ddebug "Strip binaries"
find "$initdir" -perm +111 -type f | xargs strip --strip-unneeded | ddebug
# copy depmod files
ddebug "cp -ar $TESTDIR/root $TESTDIR/nspawn-root"
cp -ar $TESTDIR/root $TESTDIR/nspawn-root
# we don't mount in the nspawn root
- rm -fr $TESTDIR/nspawn-root/etc/fstab
+ rm -f $TESTDIR/nspawn-root/etc/fstab
ddebug "umount $TESTDIR/root"
umount $TESTDIR/root