File: bats-exec-suite

package info (click to toggle)
git-secrets 1.3.0-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 292 kB
  • sloc: sh: 997; makefile: 27
file content (55 lines) | stat: -rwxr-xr-x 1,001 bytes parent folder | download | duplicates (15)
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/usr/bin/env bash
set -e

count_only_flag=""
if [ "$1" = "-c" ]; then
  count_only_flag=1
  shift
fi

extended_syntax_flag=""
if [ "$1" = "-x" ]; then
  extended_syntax_flag="-x"
  shift
fi

trap "kill 0; exit 1" int

count=0
for filename in "$@"; do
  let count+="$(bats-exec-test -c "$filename")"
done

if [ -n "$count_only_flag" ]; then
  echo "$count"
  exit
fi

echo "1..$count"
status=0
offset=0
for filename in "$@"; do
  index=0
  {
    IFS= read -r # 1..n
    while IFS= read -r line; do
      case "$line" in
      "begin "* )
        let index+=1
        echo "${line/ $index / $(($offset + $index)) }"
        ;;
      "ok "* | "not ok "* )
        [ -n "$extended_syntax_flag" ] || let index+=1
        echo "${line/ $index / $(($offset + $index)) }"
        [ "${line:0:6}" != "not ok" ] || status=1
        ;;
      * )
        echo "$line"
        ;;
      esac
    done
  } < <( bats-exec-test $extended_syntax_flag "$filename" )
  offset=$(($offset + $index))
done

exit "$status"