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