summary refs log tree commit diff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/cra.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/tools/cra.sh b/tools/cra.sh
new file mode 100755
index 0000000..762ab76
--- /dev/null
+++ b/tools/cra.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+DIR=`cd $(dirname "$0"); pwd`
+QBE=$DIR/../obj/qbe
+BUGF=/tmp/bug.id
+FIND=$1
+FIND=${FIND:-afl-find}
+
+if ! test -f $BUGF
+then
+	echo 1 > $BUGF
+fi
+
+while true
+do
+	ID=`cat $BUGF`
+
+	if test `ls $FIND/crashes/id* | wc -l` -lt $ID
+	then
+		rm -f bug.ssa
+		echo "All done!"
+		exit 0
+	fi
+
+	BUG=`ls $FIND/crashes/id* | sed -ne "${ID}{p;q}"`
+
+	echo "*** Crash $ID"
+	cp $BUG bug.ssa
+
+	$QBE bug.ssa > /dev/null
+	RET=$?
+	if test \( $RET -ne 0 \) -a \( $RET -ne 1 \)
+	then
+		exit 1
+	fi
+
+	expr $ID + 1 > $BUGF
+done