diff --git a/tests/test.sh b/tests/test.sh new file mode 100644 index 0000000..52dada1 --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,37 @@ +#!/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" calibre --version > "$TMPDIR/output" 2>&1 && RC=0 || RC=$? +assert_eq "calibre --version exits cleanly" "0" "$RC" + +if [ -s "$TMPDIR/output" ]; then + echo "PASS: calibre --version produces output" + PASSED=$((PASSED + 1)) +else + echo "FAIL: calibre --version produces no output" + FAILED=$((FAILED + 1)) +fi + +echo "" +echo "$PASSED/$((PASSED + FAILED)) tests passed" +if [ "$FAILED" -gt 0 ]; then + exit 1 +fi