]> git.ipfire.org Git - thirdparty/systemd.git/blob - test/TEST-04-JOURNAL/test.sh
Merge pull request #2267 from gdamjan/dont-drop-critical
[thirdparty/systemd.git] / test / TEST-04-JOURNAL / 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="Journal-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-journal.sh
57 Type=oneshot
58 EOF
59
60 cat >$initdir/etc/systemd/system/forever-print-hola.service <<EOF
61 [Unit]
62 Description=ForeverPrintHola service
63
64 [Service]
65 Type=simple
66 ExecStart=/bin/sh -x -c 'while :; do printf "Hola\n" || touch /i-lose-my-logs; sleep 1; done'
67 EOF
68
69 cp test-journal.sh $initdir/
70
71 setup_testsuite
72 ) || return 1
73 setup_nspawn_root
74
75 ddebug "umount $TESTDIR/root"
76 umount $TESTDIR/root
77 }
78
79 test_cleanup() {
80 umount $TESTDIR/root 2>/dev/null
81 [[ $LOOPDEV ]] && losetup -d $LOOPDEV
82 return 0
83 }
84
85 do_test "$@"