chiark / gitweb /
udev: rules - ignore the lack of trailing newline
[elogind.git] / test / TEST-03-JOBS / test.sh
1 #!/bin/bash
2 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
3 # ex: ts=8 sw=4 sts=4 et filetype=sh
4 TEST_DESCRIPTION="Job-related tests"
5
6 . $TEST_BASE_DIR/test-functions
7
8 check_result_qemu() {
9     ret=1
10     mkdir -p $TESTDIR/root
11     mount ${LOOPDEV}p1 $TESTDIR/root
12     [[ -e $TESTDIR/root/testok ]] && ret=0
13     [[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
14     cp -a $TESTDIR/root/var/log/journal $TESTDIR
15     umount $TESTDIR/root
16     [[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
17     ls -l $TESTDIR/journal/*/*.journal
18     test -s $TESTDIR/failed && ret=$(($ret+1))
19     return $ret
20 }
21
22 test_run() {
23     if run_qemu; then
24         check_result_qemu || return 1
25     else
26         dwarn "can't run QEMU, skipping"
27     fi
28     if check_nspawn; then
29         run_nspawn
30         check_result_nspawn || return 1
31     else
32         dwarn "can't run systemd-nspawn, skipping"
33     fi
34     return 0
35 }
36
37 test_setup() {
38     create_empty_image
39     mkdir -p $TESTDIR/root
40     mount ${LOOPDEV}p1 $TESTDIR/root
41
42     # Create what will eventually be our root filesystem onto an overlay
43     (
44         LOG_LEVEL=5
45         eval $(udevadm info --export --query=env --name=${LOOPDEV}p2)
46
47         setup_basic_environment
48
49         # setup the testsuite service
50         cat >$initdir/etc/systemd/system/testsuite.service <<EOF
51 [Unit]
52 Description=Testsuite service
53 After=multi-user.target
54
55 [Service]
56 ExecStart=/test-jobs.sh
57 Type=oneshot
58 EOF
59
60         # copy the units used by this test
61         cp $TEST_BASE_DIR/{hello.service,sleep.service,hello-after-sleep.target,unstoppable.service} \
62             $initdir/etc/systemd/system
63         cp test-jobs.sh $initdir/
64
65         setup_testsuite
66     )
67     setup_nspawn_root
68
69     ddebug "umount $TESTDIR/root"
70     umount $TESTDIR/root
71 }
72
73 test_cleanup() {
74     umount $TESTDIR/root 2>/dev/null
75     [[ $LOOPDEV ]] && losetup -d $LOOPDEV
76     return 0
77 }
78
79 do_test "$@"