From 875e0762e788301dcca836dbf32a6dad988ba41c Mon Sep 17 00:00:00 2001 From: mrdudz Date: Sat, 22 Nov 2014 19:45:40 +0100 Subject: [PATCH] generate reference output using host compiler, compare using diff, fix yacc input file to work on both host and sim65 --- test/.gitignore | 2 ++ test/ref/Makefile | 36 +++++++++++++++++++++++++++--------- test/ref/yacc.in | 1 + 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/test/.gitignore b/test/.gitignore index ccdd4aef5..6ca887d5c 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1,3 +1,5 @@ *.o *.prg *.out +*.host +*.ref diff --git a/test/ref/Makefile b/test/ref/Makefile index 85cbb9bd8..88d54a296 100644 --- a/test/ref/Makefile +++ b/test/ref/Makefile @@ -9,9 +9,14 @@ CL65 := $(if $(wildcard ../../bin/cl65*),../../bin/cl65,cl65) SIM65 := $(if $(wildcard ../../bin/sim65*),../../bin/sim65,sim65) RM := rm -f +DIFF := diff -q + +CFLAGS := -O2 -Wall -W -Wextra -fwrapv -fno-strict-overflow .PHONY: all +REFS := $(patsubst %.c,%.ref,$(wildcard *.c)) + TESTS := $(patsubst %.c,%.prg,$(wildcard *.c)) TESTS += $(patsubst %.c,%.o.prg,$(wildcard *.c)) TESTS += $(patsubst %.c,%.os.prg,$(wildcard *.c)) @@ -21,42 +26,55 @@ TESTS += $(patsubst %.c,%.oi.prg,$(wildcard *.c)) TESTS += $(patsubst %.c,%.oir.prg,$(wildcard *.c)) TESTS += $(patsubst %.c,%.or.prg,$(wildcard *.c)) -all: $(TESTS) +all: $(REFS) $(TESTS) + +%.ref: %.c + $(CC) $(CFLAGS) $< -o $*.host + ./$*.host > $@ -%.prg: %.c +%.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref -%.o.prg: %.c +%.o.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref -%.os.prg: %.c +%.os.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref -%.osi.prg: %.c +%.osi.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref -%.osir.prg: %.c +%.osir.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref -%.oi.prg: %.c +%.oi.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref -%.oir.prg: %.c +%.oir.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref -%.or.prg: %.c +%.or.prg: %.c %.ref $(CL65) $(CC65FLAGS) $< -o $@ $(SIM65) $(SIM65FLAGS) $@ > $*.out + $(DIFF) $*.out $*.ref clean: @$(RM) *.o @$(RM) *.prg @$(RM) *.out @$(RM) *.ref + @$(RM) *.host diff --git a/test/ref/yacc.in b/test/ref/yacc.in index 0b89df5d7..79e716878 100755 --- a/test/ref/yacc.in +++ b/test/ref/yacc.in @@ -1 +1,2 @@ x=(e+1)*3/(3+7) + \ No newline at end of file -- 2.39.2