#!/bin/bash set -euo pipefail IMAGE="$1" FAILED=0 PASSED=0 assert_eq() { local desc="$1" expected="$2" actual="$3" if [ "$expected" = "$actual" ]; then echo "PASS: $desc" PASSED=$((PASSED + 1)) else echo "FAIL: $desc (expected $expected, got $actual)" FAILED=$((FAILED + 1)) fi } TMPDIR="$(mktemp -d)" trap 'rm -rf "$TMPDIR"' EXIT docker run --rm "$IMAGE" putty --help > "$TMPDIR/output" 2>&1 && RC=0 || RC=$? assert_eq "putty --help exits cleanly" "0" "$RC" if [ -s "$TMPDIR/output" ]; then echo "PASS: putty --help produces output" PASSED=$((PASSED + 1)) else echo "FAIL: putty --help produces no output" FAILED=$((FAILED + 1)) fi docker run --rm "$IMAGE" puttygen --version > "$TMPDIR/output" 2>&1 if grep -qiE "putty|release|version" "$TMPDIR/output"; then echo "PASS: puttygen produces recognizable output" PASSED=$((PASSED + 1)) else echo "FAIL: puttygen output unrecognized" FAILED=$((FAILED + 1)) fi echo "" echo "$PASSED/$((PASSED + FAILED)) tests passed" if [ "$FAILED" -gt 0 ]; then exit 1 fi