47 lines
1.0 KiB
Bash
47 lines
1.0 KiB
Bash
#!/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
|