1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao# Usage: make test.N.report 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao# 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao# COUNT can be over-ridden to change the number of tests generated per 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao# file, and TESTARGS is used to change the type generation. Make sure 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao# to 'make clean' after changing either of these parameters. 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoABITESTGEN := ../ABITestGen.py 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoTESTARGS := --max-args 0 --test-layout 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoCOUNT := 1000 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoTIMEOUT := 5 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoCFLAGS := -std=gnu99 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoX_COMPILER := llvm-gcc 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoY_COMPILER := clang 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoCC := gcc 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoifeq (0, 0) 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoX_CFLAGS := -m32 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoY_CFLAGS := -m32 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoCC_CFLAGS := -m32 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoelse 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoX_CFLAGS := -m64 24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoY_CFLAGS := -m64 25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei LiaoCC_CFLAGS := -m64 26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoendif 27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PHONY: test.%.report 29ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.report: test.%.x.diff test.%.y.diff 30ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao @for t in $^; do \ 31ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao if [ -s $$t ]; then \ 32ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao echo "TEST $*: $$t failed"; \ 33ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao fi; \ 34ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao done 35ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 36ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PHONY: test.%.build 37ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.build: test.%.ref test.%.x test.%.y 38ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao @true 39ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 40ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao### 41ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 42ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PRECIOUS: test.%.x.diff 43ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.x.diff: test.%.ref.out test.%.x.out 44ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao -diff $^ > $@ 45ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PRECIOUS: test.%.y.diff 46ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.y.diff: test.%.ref.out test.%.y.out 47ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao -diff $^ > $@ 48ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 49ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PRECIOUS: test.%.out 50ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.out: test.% 51ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao -./$< > $@ 52ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 53ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PRECIOUS: test.%.ref 54ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.ref: test.%.c 55ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao $(CC) $(CFLAGS) $(CC_CFLAGS) -o $@ $^ 56ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PRECIOUS: test.%.x 57ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.x: test.%.c 58ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao $(X_COMPILER) $(CFLAGS) $(X_CFLAGS) -o $@ $^ 59ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PRECIOUS: test.%.y 60ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.y: test.%.c 61ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao $(Y_COMPILER) $(CFLAGS) $(Y_CFLAGS) -o $@ $^ 62ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 63ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao.PRECIOUS: test.%.c 64ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaotest.%.c: $(ABITESTGEN) 65ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao $(ABITESTGEN) $(TESTARGS) -o $@ --min=$(shell expr $* '*' $(COUNT)) --count=$(COUNT) 66ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 67ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoclean: 68ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao rm -f test.* *~ 69