gen.sh

1.6 KB · raw

1#!/usr/bin/env sh2# G-01/G-02/G-03 generations validation, run inside the VM. Prints nina's output3# alongside ground-truth system-profile state so the host can judge pass/fail.4# Ground truth uses the SYSTEM profile explicitly (-p), which is what5# nixos-rebuild manages.6set -u7N=/root/nina89sysgens() { nix-env -p /nix/var/nix/profiles/system --list-generations 2>/dev/null | wc -l | tr -d ' '; }10syscur()  { readlink /nix/var/nix/profiles/system | sed -n 's/.*system-\([0-9][0-9]*\)-link/\1/p'; }1112echo "KILN_GEN_TEST_BEGIN"13echo "GROUND before: sysgens=$(sysgens) syscur=$(syscur)"1415echo "### T-001 nina apply (expect exit 0, system generation increments)"16$N apply; echo "T001_RC=$?"17echo "GROUND after apply#1: sysgens=$(sysgens) syscur=$(syscur)"1819echo "### T-002 nina apply again (expect generation increments again)"20$N apply; echo "T002_RC=$?"21echo "GROUND after apply#2: sysgens=$(sysgens) syscur=$(syscur)"2223echo "### T-015 nina history (expect all system generations, current marked)"24$N history; echo "HIST_RC=$?"2526echo "### T-017 nina gen current (expect current system generation number)"27$N gen current; echo "GENCUR_RC=$?"2829echo "### T-010 nina back (expect system generation decrements)"30$N back; echo "BACK_RC=$?"31echo "GROUND after back: syscur=$(syscur)"3233echo "### T-012 nina go <syscur+1> (return forward)"34TARGET=$(( $(syscur) + 1 ))35$N go "$TARGET"; echo "GO_RC=$?"36echo "GROUND after go $TARGET: syscur=$(syscur)"3738echo "### T-030 nina clean (expect exit 0, garbage collected)"39$N clean; echo "CLEAN_RC=$?"40echo "GROUND after clean: sysgens=$(sysgens)"4142echo "KILN_GEN_TEST_END"