#!/usr/bin/env bash # SPDX-License-Identifier: LGPL-2.1-or-later set -eux set -o pipefail MODULES_LOAD_BIN="/usr/lib/systemd/systemd-modules-load" CONFIG_FILE="/run/modules-load.d/99-test.conf" at_exit() { rm -rfv "${CONFIG_FILE:?}" } trap at_exit EXIT if systemd-detect-virt -cq; then echo "Running in a container, skipping the systemd-modules-load test..." exit 0 fi # Check if we have required kernel modules modprobe --all --resolve-alias loop dummy mkdir -p /run/modules-load.d/ "$MODULES_LOAD_BIN" "$MODULES_LOAD_BIN" --help "$MODULES_LOAD_BIN" --version # Explicit config file modprobe -v --all --remove loop dummy printf "loop\ndummy" >"$CONFIG_FILE" "$MODULES_LOAD_BIN" "$CONFIG_FILE" |& tee /tmp/out.log grep -E "Inserted module .*loop" /tmp/out.log grep -E "Inserted module .*dummy" /tmp/out.log # Implicit config file modprobe -v --all --remove loop dummy printf "loop\ndummy" >"$CONFIG_FILE" "$MODULES_LOAD_BIN" |& tee /tmp/out.log grep -E "Inserted module .*loop" /tmp/out.log grep -E "Inserted module .*dummy" /tmp/out.log # Valid & invalid data mixed together modprobe -v --all --remove loop dummy cat >"$CONFIG_FILE" <