#!/bin/bash
cases=
cases="$cases application"
#cases="$cases audio"
cases="$cases argopt"
cases="$cases array"
cases="$cases binary"
cases="$cases block"
cases="$cases bom"
cases="$cases gzip-bzip2"
cases="$cases cairo"
cases="$cases chinese"
cases="$cases codec"
cases="$cases color"
cases="$cases complex"
cases="$cases csv"
cases="$cases datetime"
cases="$cases declaration"
cases="$cases dict"
cases="$cases diff"
cases="$cases doxygen"
cases="$cases encoding-big5"
cases="$cases encoding-euc-kr"
cases="$cases encoding-gb2312"
cases="$cases encoding-gbk"
cases="$cases encoding-shift_jis"
cases="$cases error"
cases="$cases expr"
cases="$cases filter"
cases="$cases formatter"
cases="$cases fs"
cases="$cases function"
cases="$cases gif"
cases="$cases gmp"
cases="$cases hash"
cases="$cases help"
cases="$cases image"
cases="$cases japanese"
cases="$cases jpeg"
cases="$cases korean"
cases="$cases list-iterator"
cases="$cases map"
cases="$cases markdown"
cases="$cases math"
cases="$cases mathdiff"
cases="$cases memory"
#cases="$cases midi"
cases="$cases model_obj"
cases="$cases module"
cases="$cases msico"
cases="$cases number"
cases="$cases object"
cases="$cases opengl"
cases="$cases operator"
cases="$cases optimize"
cases="$cases path"
cases="$cases pointer"
cases="$cases rational"
cases="$cases re"
cases="$cases repeater"
cases="$cases sqlite3"
cases="$cases serialize"
cases="$cases stream"
cases="$cases string"
cases="$cases suffixmgr"
cases="$cases tar"
cases="$cases template"
cases="$cases uri"
cases="$cases value"
cases="$cases vertex"
cases="$cases xhtml"
cases="$cases xml"
cases="$cases xpm"
cases="$cases yaml"
cases="$cases zip"

if [ $# -eq 0 ]; then
	echo "usage: tester all/casename [genscript/update]"
	exit
fi
options=""
if [ "$1" != "all" ]; then
	cases="$1"
	options="--detail"
fi
if [ $# -eq 1 ]; then
	for case in $cases
	do
		echo "$case"
		gura test-$case.gura > result/test-$case.result.txt
		gura diff-result.gura $options result/test-$case.expect.txt result/test-$case.result.txt
	done	
elif [ "$2" = "genscript" ]; then
	for case in $cases
	do
		echo "genscript: $case"
		gura genscript.gura --eval test-$case.gura > result/test-$case.result.txt
		gura diff-result.gura $options result/test-$case.expect.txt result/test-$case.result.txt
	done	
elif [ "$2" = "update" ]; then
	for case in $cases
	do
		echo "update: $case"
		gura test-$case.gura > result/test-$case.expect.txt
	done
fi
gura -c "printf('%s\nBuilt at %s\n', sys.executable, sys.timestamp)"
