about summary refs log tree commit diff
path: root/Test/runtests.zsh
blob: 538663f50fccc5c9947e013e59046711b1a51685 (plain) (blame)
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
#!/bin/zsh -f

emulate zsh

# Run all specified tests, keeping count of which succeeded.
# The reason for this extra layer above the test script is to
# protect from catastrophic failure of an individual test.
# We could probably do that with subshells instead.

integer success=0 failure=0 skipped=0 retval
for file in "${(f)ZTST_testlist}"; do
  $ZTST_exe +Z -f $ZTST_srcdir/ztst.zsh $file
  retval=$?
  if (( $retval == 2 )); then
    (( skipped++ ))
  elif (( $retval )); then
    (( failure++ ))
    (( $retval > 128 )) && print "$file: failed: SIG$signals[$retval - 127]."
  else
    (( success++ ))
  fi
done
print "**************************************
$success successful test script${${success:#1}:+s}, \
$failure failure${${failure:#1}:+s}, \
$skipped skipped
**************************************"
return $(( failure ? 1 : 0 ))