hwdb: fix screen rotation for EXO Wings 2in1 w1125 (#36283)
[systemd.io.git] / test / units / TEST-87-AUX-UTILS-VM.modules-load.sh
blob140f3d5f9575618e9a1e012b15ee05322a4ac33a
1 #!/usr/bin/env bash
2 # SPDX-License-Identifier: LGPL-2.1-or-later
3 set -eux
4 set -o pipefail
6 MODULES_LOAD_BIN="/usr/lib/systemd/systemd-modules-load"
7 CONFIG_FILE="/run/modules-load.d/99-test.conf"
9 at_exit() {
10 rm -rfv "${CONFIG_FILE:?}"
13 (! systemd-detect-virt -cq)
15 trap at_exit EXIT
17 ORIG_MODULES_LOAD_CONFIG="$(systemd-analyze cat-config modules-load.d)"
19 # Check if we have required kernel modules
20 modprobe --all --resolve-alias dummy
22 mkdir -p /run/modules-load.d/
24 "$MODULES_LOAD_BIN"
25 "$MODULES_LOAD_BIN" --help
26 "$MODULES_LOAD_BIN" --version
28 # Explicit config file
29 modprobe -v --all --remove dummy
30 printf "dummy" >"$CONFIG_FILE"
31 "$MODULES_LOAD_BIN" "$CONFIG_FILE" |& tee /tmp/out.log
32 grep -E "Inserted module .*dummy" /tmp/out.log
34 # Implicit config file
35 modprobe -v --all --remove dummy
36 printf "dummy" >"$CONFIG_FILE"
37 "$MODULES_LOAD_BIN" |& tee /tmp/out.log
38 grep -E "Inserted module .*dummy" /tmp/out.log
40 # Valid & invalid data mixed together
41 modprobe -v --all --remove dummy
42 cat >"$CONFIG_FILE" <<EOF
44 dummy
45 dummy
46 dummy
47 dummy
48 dummy
49 \\n\n\n\\\\\\
51 dumm!@@123##2455
52 # This is a comment
53 $(printf "%.0sx" {0..4096})
54 dummy
55 dummy
56 foo-bar-baz
60 EOF
61 "$MODULES_LOAD_BIN" |& tee /tmp/out.log
62 grep -E "^Inserted module .*dummy" /tmp/out.log
63 grep -E "^Failed to find module .*foo-bar-baz" /tmp/out.log
64 (! grep -E "This is a comment" /tmp/out.log)
65 # Each module should be loaded only once, even if specified multiple times
66 [[ "$(grep -Ec "^Inserted module" /tmp/out.log)" -eq 1 ]]
67 [[ "$(grep -Ec "^Failed to find module" /tmp/out.log)" -eq 7 ]]
69 # Command line arguments
70 modprobe -v --all --remove dummy
71 # Make sure we have no config files left over that might interfere with
72 # following tests
73 rm -fv "$CONFIG_FILE"
74 [[ "$ORIG_MODULES_LOAD_CONFIG" == "$(systemd-analyze cat-config modules-load.d)" ]]
75 CMDLINE="ro root= modules_load= modules_load=, / = modules_load=foo-bar-baz,dummy modules_load=dummy,dummy,dummy"
76 SYSTEMD_PROC_CMDLINE="$CMDLINE" "$MODULES_LOAD_BIN" |& tee /tmp/out.log
77 grep -E "^Inserted module .*dummy" /tmp/out.log
78 grep -E "^Failed to find module .*foo-bar-baz" /tmp/out.log
79 # Each module should be loaded only once, even if specified multiple times
80 [[ "$(grep -Ec "^Inserted module" /tmp/out.log)" -eq 1 ]]
82 (! "$MODULES_LOAD_BIN" --nope)
83 (! "$MODULES_LOAD_BIN" /foo/bar/baz)