blob: dcc3fd2ee4364744fb141fc8862b895f4b96daa1 [file] [log] [blame]
Gavin Howard363f7242018-09-11 12:28:53 -06001#! /bin/sh
Gavin Howard64f113c2018-09-25 09:38:57 -06002#
3# Copyright 2018 Gavin D. Howard
4#
5# Permission to use, copy, modify, and/or distribute this software for any
6# purpose with or without fee is hereby granted.
7#
8# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
9# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
10# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
11# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
12# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14# PERFORMANCE OF THIS SOFTWARE.
15#
Gavin Howard363f7242018-09-11 12:28:53 -060016
17script="$0"
18
19testdir=$(dirname "$script")
20
21if [ "$#" -lt 1 ]; then
22 bc="$testdir/../bc"
23else
24 bc="$1"
25 shift
26fi
27
28if [ "$#" -lt 1 ]; then
29 resultsdir="$testdir/../../results"
30else
31 resultsdir="$1"
32 shift
33fi
34
Gavin Howard4d93cf32018-09-21 10:38:15 -060035out="$testdir/../.test.txt"
36
Gavin Howard363f7242018-09-11 12:28:53 -060037for d in $resultsdir/*; do
38
39 echo "$d"
40
41 for f in $d/crashes/*; do
42
43 echo " $f"
44
45 base=$(basename "$f")
46
47 [ -e "$f" ] || continue
48 [ "$base" != "README.txt" ] || continue
49
50 while read line; do
51
Gavin Howarde0dec602018-09-26 10:12:32 -060052 echo "$line" | "$bc" "$@" -lq > /dev/null 2>&1
Gavin Howard363f7242018-09-11 12:28:53 -060053 error="$?"
54
55 if [ "$error" -gt 127 ]; then
Gavin Howard242f1462018-09-18 14:52:52 -060056
Gavin Howard363f7242018-09-11 12:28:53 -060057 echo "\nbc crashed on test:\n"
58 echo " $line"
Gavin Howard242f1462018-09-18 14:52:52 -060059
Gavin Howard4d93cf32018-09-21 10:38:15 -060060 echo "\nCopying to \"$out\""
61 cp "$f" "$out"
Gavin Howard242f1462018-09-18 14:52:52 -060062
Gavin Howard363f7242018-09-11 12:28:53 -060063 echo "\nexiting..."
64 exit "$error"
Gavin Howard242f1462018-09-18 14:52:52 -060065
Gavin Howard363f7242018-09-11 12:28:53 -060066 fi
67
68 done < "$f"
69
Gavin Howardf80dfb02018-09-20 09:12:27 -060070 echo " Running whole file..."
71
Gavin Howarde0dec602018-09-26 10:12:32 -060072 echo "halt" | "$bc" "$@" -lq "$f" > /dev/null 2>&1
Gavin Howardf80dfb02018-09-20 09:12:27 -060073 error="$?"
74
75 if [ "$error" -gt 127 ]; then
76
77 echo "\nbc crashed on file:\n"
78 echo " $f"
79
Gavin Howard4d93cf32018-09-21 10:38:15 -060080 echo "\nCopying to \"$out\""
81 cp "$f" "$out"
Gavin Howardf80dfb02018-09-20 09:12:27 -060082
83 echo "\nexiting..."
84 exit "$error"
85
86 fi
87
Gavin Howard363f7242018-09-11 12:28:53 -060088 done
89
90done