Skip to content

Commit 054ee24

Browse files
martinpittevverx
authored andcommitted
test: Factorize common integration test functions (systemd#6540)
All test/TEST* but TEST-02-CRYPTSETUP share the same check_result_qemu() and test_cleanup(), so move them into test_functions and only override them in TEST-02-CRYPTSETUP. Also provide a common test_run() which by default assumes that both QEMU and nspawn tests are run. Particular tests which don't support either need to explicitly opt out by setting $TEST_NO_{QEMU,NSPAWN}. Do it this way around to avoid accidentally forgetting to opt in, and to encourage test authors to at least always support nspawn.
1 parent a93e2f6 commit 054ee24

File tree

16 files changed

+52
-394
lines changed

16 files changed

+52
-394
lines changed

test/TEST-01-BASIC/test.sh

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Basic systemd setup"
55

66
. $TEST_BASE_DIR/test-functions
77

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 run_nspawn; then
29-
check_result_nspawn || return 1
30-
else
31-
dwarn "can't run systemd-nspawn, skipping"
32-
fi
33-
return 0
34-
}
35-
368
test_setup() {
379
create_empty_image
3810
mkdir -p $TESTDIR/root
@@ -71,10 +43,4 @@ EOF
7143
umount $TESTDIR/root
7244
}
7345

74-
test_cleanup() {
75-
umount $TESTDIR/root 2>/dev/null
76-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
77-
return 0
78-
}
79-
8046
do_test "$@"

test/TEST-02-CRYPTSETUP/test.sh

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
33
# ex: ts=8 sw=4 sts=4 et filetype=sh
44
TEST_DESCRIPTION="cryptsetup systemd setup"
5+
TEST_NO_NSPAWN=1
56

67
. $TEST_BASE_DIR/test-functions
78

@@ -24,15 +25,6 @@ check_result_qemu() {
2425
}
2526

2627

27-
test_run() {
28-
if run_qemu; then
29-
check_result_qemu || return 1
30-
else
31-
dwarn "can't run QEMU, skipping"
32-
fi
33-
return 0
34-
}
35-
3628
test_setup() {
3729
create_empty_image
3830
echo -n test >$TESTDIR/keyfile

test/TEST-03-JOBS/test.sh

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Job-related tests"
55

66
. $TEST_BASE_DIR/test-functions
77

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 run_nspawn; then
29-
check_result_nspawn || return 1
30-
else
31-
dwarn "can't run systemd-nspawn, skipping"
32-
fi
33-
return 0
34-
}
35-
368
test_setup() {
379
create_empty_image
3810
mkdir -p $TESTDIR/root
@@ -69,10 +41,4 @@ EOF
6941
umount $TESTDIR/root
7042
}
7143

72-
test_cleanup() {
73-
umount $TESTDIR/root 2>/dev/null
74-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
75-
return 0
76-
}
77-
7844
do_test "$@"

test/TEST-04-JOURNAL/test.sh

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Journal-related tests"
55

66
. $TEST_BASE_DIR/test-functions
77

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 run_nspawn; then
29-
check_result_nspawn || return 1
30-
else
31-
dwarn "can't run systemd-nspawn, skipping"
32-
fi
33-
return 0
34-
}
35-
368
test_setup() {
379
create_empty_image
3810
mkdir -p $TESTDIR/root
@@ -75,10 +47,4 @@ EOF
7547
umount $TESTDIR/root
7648
}
7749

78-
test_cleanup() {
79-
umount $TESTDIR/root 2>/dev/null
80-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
81-
return 0
82-
}
83-
8450
do_test "$@"

test/TEST-05-RLIMITS/test.sh

Lines changed: 0 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,6 @@ TEST_DESCRIPTION="Resource limits-related tests"
55

66
. $TEST_BASE_DIR/test-functions
77

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 run_nspawn; then
29-
check_result_nspawn || return 1
30-
else
31-
dwarn "can't run systemd-nspawn, skipping"
32-
fi
33-
return 0
34-
}
35-
368
test_setup() {
379
create_empty_image
3810
mkdir -p $TESTDIR/root
@@ -71,10 +43,4 @@ EOF
7143
umount $TESTDIR/root
7244
}
7345

74-
test_cleanup() {
75-
umount $TESTDIR/root 2>/dev/null
76-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
77-
return 0
78-
}
79-
8046
do_test "$@"

test/TEST-06-SELINUX/test.sh

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
33
# ex: ts=8 sw=4 sts=4 et filetype=sh
44
TEST_DESCRIPTION="SELinux tests"
5+
TEST_NO_NSPAWN=1
56

67
# Requirements:
78
# Fedora 23
@@ -12,29 +13,6 @@ TEST_DESCRIPTION="SELinux tests"
1213
SETUP_SELINUX=yes
1314
KERNEL_APPEND="$KERNEL_APPEND selinux=1 security=selinux"
1415

15-
check_result_qemu() {
16-
ret=1
17-
mkdir -p $TESTDIR/root
18-
mount ${LOOPDEV}p1 $TESTDIR/root
19-
[[ -e $TESTDIR/root/testok ]] && ret=0
20-
[[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
21-
cp -a $TESTDIR/root/var/log/journal $TESTDIR
22-
umount $TESTDIR/root
23-
[[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
24-
ls -l $TESTDIR/journal/*/*.journal
25-
test -s $TESTDIR/failed && ret=$(($ret+1))
26-
return $ret
27-
}
28-
29-
test_run() {
30-
if run_qemu; then
31-
check_result_qemu || return 1
32-
else
33-
dwarn "can't run QEMU, skipping"
34-
fi
35-
return 0
36-
}
37-
3816
test_setup() {
3917
create_empty_image
4018
mkdir -p $TESTDIR/root
@@ -126,10 +104,4 @@ EOF
126104
umount $TESTDIR/root
127105
}
128106

129-
test_cleanup() {
130-
umount $TESTDIR/root 2>/dev/null
131-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
132-
return 0
133-
}
134-
135107
do_test "$@"

test/TEST-07-ISSUE-1981/test.sh

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,12 @@
22
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
33
# ex: ts=8 sw=4 sts=4 et filetype=sh
44
TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/1981"
5+
TEST_NO_QEMU=1
56

67
. $TEST_BASE_DIR/test-functions
78

89
NSPAWN_TIMEOUT=30s
910

10-
test_run() {
11-
dwarn "skipping QEMU"
12-
if run_nspawn; then
13-
check_result_nspawn || return 1
14-
else
15-
dwarn "can't run systemd-nspawn, skipping"
16-
fi
17-
return 0
18-
}
19-
2011
test_setup() {
2112
create_empty_image
2213
mkdir -p $TESTDIR/root
@@ -50,10 +41,4 @@ EOF
5041
umount $TESTDIR/root
5142
}
5243

53-
test_cleanup() {
54-
umount $TESTDIR/root 2>/dev/null
55-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
56-
return 0
57-
}
58-
5944
do_test "$@"

test/TEST-08-ISSUE-2730/test.sh

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,13 @@
22
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
33
# ex: ts=8 sw=4 sts=4 et filetype=sh
44
TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/2730"
5+
TEST_NO_NSPAWN=1
56

67
. $TEST_BASE_DIR/test-functions
78
SKIP_INITRD=yes
89
QEMU_TIMEOUT=180
910
FSTYPE=ext4
1011

11-
check_result_qemu() {
12-
ret=1
13-
mkdir -p $TESTDIR/root
14-
mount ${LOOPDEV}p1 $TESTDIR/root
15-
[[ -e $TESTDIR/root/testok ]] && ret=0
16-
[[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
17-
cp -a $TESTDIR/root/var/log/journal $TESTDIR
18-
umount $TESTDIR/root
19-
[[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
20-
ls -l $TESTDIR/journal/*/*.journal
21-
test -s $TESTDIR/failed && ret=$(($ret+1))
22-
[ -n "$TIMED_OUT" ] && ret=$(($ret+1))
23-
return $ret
24-
}
25-
26-
test_run() {
27-
if run_qemu; then
28-
check_result_qemu || return 1
29-
else
30-
dwarn "can't run QEMU, skipping"
31-
fi
32-
return 0
33-
}
34-
3512
test_setup() {
3613
create_empty_image
3714
mkdir -p $TESTDIR/root
@@ -103,10 +80,4 @@ EOF
10380
umount $TESTDIR/root
10481
}
10582

106-
test_cleanup() {
107-
umount $TESTDIR/root 2>/dev/null
108-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
109-
return 0
110-
}
111-
11283
do_test "$@"

test/TEST-09-ISSUE-2691/test.sh

Lines changed: 1 addition & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,12 @@
22
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
33
# ex: ts=8 sw=4 sts=4 et filetype=sh
44
TEST_DESCRIPTION="https://github.com/systemd/systemd/issues/2691"
5+
TEST_NO_NSPAWN=1
56

67
. $TEST_BASE_DIR/test-functions
78
SKIP_INITRD=yes
89
QEMU_TIMEOUT=90
910

10-
check_result_qemu() {
11-
ret=1
12-
mkdir -p $TESTDIR/root
13-
mount ${LOOPDEV}p1 $TESTDIR/root
14-
[[ -e $TESTDIR/root/testok ]] && ret=0
15-
[[ -f $TESTDIR/root/failed ]] && cp -a $TESTDIR/root/failed $TESTDIR
16-
cp -a $TESTDIR/root/var/log/journal $TESTDIR
17-
umount $TESTDIR/root
18-
[[ -f $TESTDIR/failed ]] && cat $TESTDIR/failed
19-
ls -l $TESTDIR/journal/*/*.journal
20-
test -s $TESTDIR/failed && ret=$(($ret+1))
21-
[ -n "$TIMED_OUT" ] && ret=$(($ret+1))
22-
return $ret
23-
}
24-
25-
test_run() {
26-
if run_qemu; then
27-
check_result_qemu || return 1
28-
else
29-
dwarn "can't run QEMU, skipping"
30-
fi
31-
return 0
32-
}
33-
3411
test_setup() {
3512
create_empty_image
3613
mkdir -p $TESTDIR/root
@@ -71,10 +48,4 @@ EOF
7148
umount $TESTDIR/root
7249
}
7350

74-
test_cleanup() {
75-
umount $TESTDIR/root 2>/dev/null
76-
[[ $LOOPDEV ]] && losetup -d $LOOPDEV
77-
return 0
78-
}
79-
8051
do_test "$@"

0 commit comments

Comments
 (0)