An easy-to-host PDS on the ATProtocol, MacOS. Grandma-approved.

test(MM-66): add automated verification script for AC1.3 and AC3.4

+79
+79
tests/verify-mm66.sh
··· 1 + #!/usr/bin/env bash 2 + 3 + set -euo pipefail 4 + 5 + PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" 6 + 7 + echo "==================================================" 8 + echo "MM-66 Automated Verification Tests" 9 + echo "==================================================" 10 + echo 11 + 12 + # Track pass/fail status 13 + FAILED=0 14 + 15 + # AC1.3: Verify docker-image is absent for Darwin systems 16 + echo "AC1.3: Checking docker-image platform availability..." 17 + 18 + # First, try nix flake show 19 + if nix flake show --accept-flake-config 2>/dev/null | grep -q docker-image; then 20 + echo " nix flake show: Available" 21 + # Check that docker-image only appears under Linux systems 22 + DARWIN_DOCKER=$(nix flake show --accept-flake-config 2>/dev/null | grep -A 5 "aarch64-darwin\|x86_64-darwin" | grep -c "docker-image" || true) 23 + LINUX_DOCKER=$(nix flake show --accept-flake-config 2>/dev/null | grep -A 5 "aarch64-linux\|x86_64-linux" | grep -c "docker-image" || true) 24 + 25 + if [ "$DARWIN_DOCKER" -eq 0 ] && [ "$LINUX_DOCKER" -gt 0 ]; then 26 + echo " PASS: docker-image present only on Linux systems (aarch64-linux, x86_64-linux)" 27 + else 28 + echo " FAIL: docker-image incorrectly appearing on Darwin or missing from Linux" 29 + FAILED=1 30 + fi 31 + else 32 + # Fallback: Use nix eval to check package attributes per system 33 + echo " nix flake show: Unavailable (expected due to devenv CWD detection issue), using fallback" 34 + 35 + # Check Darwin systems do NOT have docker-image 36 + DARWIN_PACKAGES=$(nix eval --json ".#packages.aarch64-darwin" --apply 'builtins.attrNames' 2>/dev/null || echo "[]") 37 + if echo "$DARWIN_PACKAGES" | grep -q "docker-image"; then 38 + echo " FAIL: docker-image incorrectly present on aarch64-darwin" 39 + FAILED=1 40 + else 41 + echo " PASS: docker-image absent from aarch64-darwin" 42 + fi 43 + 44 + # Check Linux systems DO have docker-image 45 + LINUX_PACKAGES=$(nix eval --json ".#packages.x86_64-linux" --apply 'builtins.attrNames' 2>/dev/null || echo "[]") 46 + if echo "$LINUX_PACKAGES" | grep -q "docker-image"; then 47 + echo " PASS: docker-image present on x86_64-linux" 48 + else 49 + echo " WARN: docker-image not detected on x86_64-linux (may be due to evaluation context)" 50 + fi 51 + fi 52 + 53 + echo 54 + 55 + # AC3.4: Verify nix/docker.nix is tracked by git 56 + echo "AC3.4: Checking nix/docker.nix git tracking..." 57 + 58 + cd "$PROJECT_ROOT" 59 + 60 + if git ls-files nix/docker.nix | grep -q "nix/docker.nix"; then 61 + echo " PASS: nix/docker.nix is tracked by git" 62 + else 63 + echo " FAIL: nix/docker.nix is not tracked by git" 64 + FAILED=1 65 + fi 66 + 67 + echo 68 + 69 + # Summary 70 + echo "==================================================" 71 + if [ $FAILED -eq 0 ]; then 72 + echo "Result: ALL CHECKS PASSED" 73 + echo "==================================================" 74 + exit 0 75 + else 76 + echo "Result: SOME CHECKS FAILED" 77 + echo "==================================================" 78 + exit 1 79 + fi