A test script usually summarizes passed and failed checks before deciding whether the run should be green or red.

Program

Play the script to choose a failure count and see the resulting status summary.

failed
test_summary.sh
Replay: real traced execution (multi-file project)
#!/usr/bin/env bash

failed=1
passed=3
total=$((passed + failed))
if [[ "$failed" -eq 0 ]]; then
    status="green"
else
    status="red"
fi
echo "tests=$total failed=$failed status=$status"
#!/usr/bin/env bash

failed=0
passed=3
total=$((passed + failed))
if [[ "$failed" -eq 0 ]]; then
    status="green"
else
    status="red"
fi
echo "tests=$total failed=$failed status=$status"
#!/usr/bin/env bash

failed=2
passed=3
total=$((passed + failed))
if [[ "$failed" -eq 0 ]]; then
    status="green"
else
    status="red"
fi
echo "tests=$total failed=$failed status=$status"
  1. failed ← 1

    3failed=14passed=3
    values this step1failed
  2. passed ← 3

    3failed=14passed=35total=$((passed + failed))
    values this step3passed
  3. total ← 4

    4passed=35total=$((passed + failed))6if [[ "$failed" -eq 0 ]]; then
    values this step4total3passed1failed
  4. if [[ "$failed" -eq 0 ]]; then

    5total=$((passed + failed))6if [[ "$failed" -eq 0 ]]; then7    status="green"
    values this step1failed
  5. status ← red

    8else9    status="red"10fi
    values this stepredstatus
  6. echo "tests=$total failed=$failed status=$status"

    10fi11echo "tests=$total failed=$failed status=$status"
    outputtests=4 failed=1 status=red
    values this step4total1failedredstatus
  1. failed ← 0

    3failed=04passed=3
    values this step0failed
  2. passed ← 3

    3failed=04passed=35total=$((passed + failed))
    values this step3passed
  3. total ← 3

    4passed=35total=$((passed + failed))6if [[ "$failed" -eq 0 ]]; then
    values this step3total3passed0failed
  4. if [[ "$failed" -eq 0 ]]; then

    5total=$((passed + failed))6if [[ "$failed" -eq 0 ]]; then7    status="green"
    values this step0failed
  5. status ← green

    6if [[ "$failed" -eq 0 ]]; then7    status="green"8else
    values this stepgreenstatus
  6. echo "tests=$total failed=$failed status=$status"

    10fi11echo "tests=$total failed=$failed status=$status"
    outputtests=3 failed=0 status=green
    values this step3total0failedgreenstatus
  1. failed ← 2

    3failed=24passed=3
    values this step2failed
  2. passed ← 3

    3failed=24passed=35total=$((passed + failed))
    values this step3passed
  3. total ← 5

    4passed=35total=$((passed + failed))6if [[ "$failed" -eq 0 ]]; then
    values this step5total3passed2failed
  4. if [[ "$failed" -eq 0 ]]; then

    5total=$((passed + failed))6if [[ "$failed" -eq 0 ]]; then7    status="green"
    values this step2failed
  5. status ← red

    8else9    status="red"10fi
    values this stepredstatus
  6. echo "tests=$total failed=$failed status=$status"

    10fi11echo "tests=$total failed=$failed status=$status"
    outputtests=5 failed=2 status=red
    values this step5total2failedredstatus
summary A summary line gives humans and automation one compact result.
exit plan This example models the status decision without exiting the browser replay.
green/red result Zero failures produce green; any failure keeps the run red.