3 TEST_DESCRIPTION
="Run unit tests under containers"
4 RUN_IN_UNPRIVILEGED_CONTAINER
=yes
6 .
$TEST_BASE_DIR/test-functions
8 check_result_nspawn
() {
10 [[ -e $TESTDIR/$1/testok
]] && _ret
=0
11 if [[ -s $TESTDIR/$1/failed
]]; then
13 echo "=== Failed test log ==="
14 cat $TESTDIR/$1/failed
16 if [[ -s $TESTDIR/$1/skipped
]]; then
17 echo "=== Skipped test log =="
18 cat $TESTDIR/$1/skipped
20 if [[ -s $TESTDIR/$1/testok
]]; then
21 echo "=== Passed tests ==="
22 cat $TESTDIR/$1/testok
25 cp -a $TESTDIR/$1/var
/log
/journal
$TESTDIR
26 [[ -n "$TIMED_OUT" ]] && _ret
=$
(($_ret+1))
32 mkdir
-p $TESTDIR/root
33 mount
${LOOPDEV}p1
$TESTDIR/root
34 [[ -e $TESTDIR/root
/testok
]] && _ret
=0
35 if [[ -s $TESTDIR/root
/failed
]]; then
37 echo "=== Failed test log ==="
38 cat $TESTDIR/root
/failed
40 if [[ -s $TESTDIR/root
/skipped
]]; then
41 echo "=== Skipped test log =="
42 cat $TESTDIR/root
/skipped
44 if [[ -s $TESTDIR/root
/testok
]]; then
45 echo "=== Passed tests ==="
46 cat $TESTDIR/root
/testok
49 cp -a $TESTDIR/root
/var
/log
/journal
$TESTDIR
51 [[ -n "$TIMED_OUT" ]] && _ret
=$
(($_ret+1))
56 if type -P meson
&& [[ "$(meson configure $BUILD_DIR | grep install-tests | awk '{ print $2 }')" != "true" ]]; then
57 dfatal
"Needs to be built with -Dinstall-tests=true"
62 mkdir
-p $TESTDIR/root
63 mount
${LOOPDEV}p1
$TESTDIR/root
65 # Create what will eventually be our root filesystem onto an overlay
68 eval $
(udevadm info
--export --query=env
--name=${LOOPDEV}p2
)
70 for i
in getfacl
dirname basename capsh cut
rev stat mktemp
rmdir ionice unshare uname
tr awk getent
diff xzcat lz4cat
; do
76 setup_basic_environment
79 # Install nproc to determine # of CPUs for correct parallelization
82 # setup the testsuite service
83 cat >$initdir/etc
/systemd
/system
/testsuite.service
<<EOF
85 Description=Testsuite service
88 ExecStart=/testsuite.sh
91 cp testsuite.sh
$initdir/
97 # mask some services that we do not want to run in these tests
98 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-networkd.service
99 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-networkd.socket
100 ln -s /dev
/null
$initdir/etc
/systemd
/system
/systemd-resolved.service
102 ddebug
"umount $TESTDIR/root"