]> git.ipfire.org Git - thirdparty/systemd.git/blob - test/TEST-24-UNIT-TESTS/test.sh
test-network: change default sleep time of start_networkd()
[thirdparty/systemd.git] / test / TEST-24-UNIT-TESTS / test.sh
1 #!/bin/bash
2 set -e
3 TEST_DESCRIPTION="Run unit tests under containers"
4 RUN_IN_UNPRIVILEGED_CONTAINER=yes
5
6 . $TEST_BASE_DIR/test-functions
7
8 check_result_nspawn() {
9 local _ret=1
10 [[ -e $TESTDIR/$1/testok ]] && _ret=0
11 if [[ -s $TESTDIR/$1/failed ]]; then
12 _ret=$(($_ret+1))
13 echo "=== Failed test log ==="
14 cat $TESTDIR/$1/failed
15 else
16 if [[ -s $TESTDIR/$1/skipped ]]; then
17 echo "=== Skipped test log =="
18 cat $TESTDIR/$1/skipped
19 fi
20 if [[ -s $TESTDIR/$1/testok ]]; then
21 echo "=== Passed tests ==="
22 cat $TESTDIR/$1/testok
23 fi
24 fi
25 cp -a $TESTDIR/$1/var/log/journal $TESTDIR
26 [[ -n "$TIMED_OUT" ]] && _ret=$(($_ret+1))
27 return $_ret
28 }
29
30 check_result_qemu() {
31 local _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
36 _ret=$(($_ret+1))
37 echo "=== Failed test log ==="
38 cat $TESTDIR/root/failed
39 else
40 if [[ -s $TESTDIR/root/skipped ]]; then
41 echo "=== Skipped test log =="
42 cat $TESTDIR/root/skipped
43 fi
44 if [[ -s $TESTDIR/root/testok ]]; then
45 echo "=== Passed tests ==="
46 cat $TESTDIR/root/testok
47 fi
48 fi
49 cp -a $TESTDIR/root/var/log/journal $TESTDIR
50 umount $TESTDIR/root
51 [[ -n "$TIMED_OUT" ]] && _ret=$(($_ret+1))
52 return $_ret
53 }
54
55 test_setup() {
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"
58 exit 1
59 fi
60
61 create_empty_image
62 mkdir -p $TESTDIR/root
63 mount ${LOOPDEV}p1 $TESTDIR/root
64
65 # Create what will eventually be our root filesystem onto an overlay
66 (
67 LOG_LEVEL=5
68 eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
69
70 for i in getfacl dirname basename capsh cut rev stat mktemp rmdir ionice unshare uname tr awk getent diff xzcat lz4cat; do
71 inst_binary $i
72 done
73
74 inst /etc/hosts
75
76 setup_basic_environment
77 install_keymaps yes
78 install_zoneinfo
79 # Install nproc to determine # of CPUs for correct parallelization
80 inst_binary nproc
81
82 # setup the testsuite service
83 cat >$initdir/etc/systemd/system/testsuite.service <<EOF
84 [Unit]
85 Description=Testsuite service
86
87 [Service]
88 ExecStart=/testsuite.sh
89 Type=oneshot
90 EOF
91 cp testsuite.sh $initdir/
92
93 setup_testsuite
94 ) || return 1
95 setup_nspawn_root
96
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
101
102 ddebug "umount $TESTDIR/root"
103 umount $TESTDIR/root
104 }
105
106 do_test "$@"