summaryrefslogtreecommitdiffstats
path: root/tests/old/infrastructure/run.nix
diff options
context:
space:
mode:
Diffstat (limited to 'tests/old/infrastructure/run.nix')
-rw-r--r--tests/old/infrastructure/run.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/old/infrastructure/run.nix b/tests/old/infrastructure/run.nix
new file mode 100644
index 00000000..3148a2d9
--- /dev/null
+++ b/tests/old/infrastructure/run.nix
@@ -0,0 +1,54 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{
+ pkgs,
+ lib,
+}:
+pkgs.writeShellScriptBin "run_test_description" ''
+ set -eu
+
+ [ "$#" -ne 1 ] && {
+ echo "Usage: $0 <Test description file>";
+ exit 2
+ }
+ description="$(realpath "$1")"
+
+ base="$(mktemp -d)"
+ cd "$base"
+
+ __TEST_TMUX="${lib.getExe pkgs.tmux}"
+ __TEST_SHELL="${lib.getExe pkgs.dash}"
+ __TEST_TMUX_PANE="__TEST_TMUX_PANE"
+
+ __TEST_EVAL_USE_ALTERNATE_SCREEN="false"
+ __TEST_EVAL_AWK_CLEAN_FILE="${./clean.awk}"
+ __TEST_EVAL_LOG_FILE="__test_log"
+ __TEST_EVAL_GOLDEN_FILE="$(mktemp)"
+ printf "%s" "__test_golden" >"$__TEST_EVAL_GOLDEN_FILE"
+
+ . ${./driver.sh}
+
+ echo "Setting up a session.."
+ if "$__TEST_TMUX" has-session -t "$__TEST_TMUX_PANE"; then
+ echo "Killing old '$__TEST_TMUX_PANE' session."
+ "$__TEST_TMUX" kill-session -t "$__TEST_TMUX_PANE"
+ fi
+ "$__TEST_TMUX" new-session -d -s "$__TEST_TMUX_PANE"
+
+ echo "Initializing pipe.."
+ "$__TEST_TMUX" pipe-pane -t "$__TEST_TMUX_PANE" -o 'cat >>./test.golden'
+
+ echo "Evaluating description.."
+ __test_eval "$description"
+
+ "$__TEST_TMUX" pipe-pane -t "$__TEST_TMUX_PANE"
+
+ echo "Base dir: $base"
+''