summaryrefslogtreecommitdiff
path: root/test/test-runner.bash
blob: 8360308283b0cf313b5cfd43f884be6e553013c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# shellcheck disable=2001,2154,2207

set -e -u -o pipefail

run-tests() (
  root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)

  cd "$root"

  if [[ $# -gt 0 ]]; then
    ids=("$@")
  else
    ids=($(cd data; printf "%s\n" * | grep '[0-9]'))
  fi

  count=0
  for id in "${ids[@]}"; do
    check-test "$id" || continue

    dir=data/$id
    label="$id: $(< "$dir/===")"
    [[ -e $dir/in.yaml ]] || continue

    run-test "$dir"

    if $ok; then
      echo "ok $((++count)) $label"
    else
      echo "not ok $((++count)) $label"
      echo "$output" | sed 's/^/# /'
    fi
  done

  echo "1..$count"
)