diff --git a/tests/test.sh b/tests/test.sh new file mode 100644 index 0000000..bdac9c3 --- /dev/null +++ b/tests/test.sh @@ -0,0 +1,46 @@ +#!/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" --version > "$TMPDIR/output" 2>&1 && RC=0 || RC=$? +assert_eq "iperf3 --version exits cleanly" "0" "$RC" + +if [ -s "$TMPDIR/output" ]; then + echo "PASS: --version produces output" + PASSED=$((PASSED + 1)) +else + echo "FAIL: --version produces no output" + FAILED=$((FAILED + 1)) +fi + +docker run --rm "$IMAGE" --help > "$TMPDIR/output" 2>&1 +if grep -qi "iperf" "$TMPDIR/output"; then + echo "PASS: --help mentions iperf" + PASSED=$((PASSED + 1)) +else + echo "FAIL: --help does not mention iperf" + FAILED=$((FAILED + 1)) +fi + +echo "" +echo "$PASSED/$((PASSED + FAILED)) tests passed" +if [ "$FAILED" -gt 0 ]; then + exit 1 +fi