diff --git a/tests/test.sh b/tests/test.sh new file mode 100644 index 0000000..2aa03bf --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,38 @@ +#!/bin/bash +set -euo pipefail + +IMAGE="$1" +FAILED=0 +PASSED=0 + +TMPDIR="$(mktemp -d)" +trap 'rm -rf "$TMPDIR"' EXIT + +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 +} + +RC=0 +docker run --rm "$IMAGE" offlineimap --version > "$TMPDIR/output" 2>&1 || RC=$? +assert_eq "Command exits cleanly" "0" "$RC" + +if [ -s "$TMPDIR/output" ]; then + echo "PASS: Command produces output" + PASSED=$((PASSED + 1)) +else + echo "FAIL: Command produces no output" + FAILED=$((FAILED + 1)) +fi + +echo "" +echo "$PASSED/$((PASSED + FAILED)) tests passed" +if [ "$FAILED" -gt 0 ]; then + exit 1 +fi