blob: 9bd74efbaff50ed20e0041bca22898be560ed009 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
#!/usr/bin/env bash
# SPDX-License-Identifier: LGPL-2.1-or-later
# shellcheck disable=SC2235
set -eux
set -o pipefail
# shellcheck source=test/units/generator-utils.sh
. "$(dirname "$0")/generator-utils.sh"
GENERATOR_BIN="/usr/lib/systemd/system-generators/systemd-run-generator"
OUT_DIR="$(mktemp -d /tmp/run-generator.XXX)"
at_exit() {
rm -frv "${OUT_DIR:?}"
}
trap at_exit EXIT
test -x "${GENERATOR_BIN:?}"
check_kernel_cmdline_target() {
local out_dir="${1:?}/normal"
cat "$out_dir/kernel-command-line.target"
grep -qE "^Requires=kernel-command-line.service$" "$out_dir/kernel-command-line.target"
grep -qE "^After=kernel-command-line.service$" "$out_dir/kernel-command-line.target"
link_eq "$out_dir/default.target" "kernel-command-line.target"
}
: "run-generator: empty cmdline"
SYSTEMD_PROC_CMDLINE="" run_and_list "$GENERATOR_BIN" "$OUT_DIR"
[[ "$(find "$OUT_DIR" ! -type d | wc -l)" -eq 0 ]]
: "run-generator: single command"
CMDLINE="systemd.run='echo hello world'"
SYSTEMD_PROC_CMDLINE="$CMDLINE" run_and_list "$GENERATOR_BIN" "$OUT_DIR"
check_kernel_cmdline_target "$OUT_DIR"
UNIT="$OUT_DIR/normal/kernel-command-line.service"
cat "$UNIT"
systemd-analyze verify --man=no --recursive-errors=no "$UNIT"
grep -qE "^SuccessAction=exit$" "$UNIT"
grep -qE "^FailureAction=exit$" "$UNIT"
grep -qE "^ExecStart=echo hello world$" "$UNIT"
: "run-generator: multiple commands + success/failure actions"
ARGS=(
# These should be ignored
"systemd.run"
"systemd.run_success_action"
"systemd.run_failure_action"
# Set actions which we will overwrite later
"systemd.run_success_action="
"systemd.run_failure_action="
"systemd.run=/bin/false"
"systemd.run="
"systemd.run=/bin/true"
"systemd.run='echo this is a long string'"
"systemd.run_success_action=reboot"
"systemd.run_failure_action=poweroff-force"
)
CMDLINE="${ARGS[*]}"
SYSTEMD_PROC_CMDLINE="$CMDLINE" run_and_list "$GENERATOR_BIN" "$OUT_DIR"
check_kernel_cmdline_target "$OUT_DIR"
UNIT="$OUT_DIR/normal/kernel-command-line.service"
cat "$UNIT"
systemd-analyze verify --man=no --recursive-errors=no "$UNIT"
grep -qE "^SuccessAction=reboot$" "$UNIT"
grep -qE "^FailureAction=poweroff-force$" "$UNIT"
grep -qE "^ExecStart=/bin/false$" "$UNIT"
grep -qE "^ExecStart=$" "$UNIT"
grep -qE "^ExecStart=/bin/true$" "$UNIT"
grep -qE "^ExecStart=echo this is a long string$" "$UNIT"
|