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