]> git.sur5r.net Git - cc65/commitdiff
Run test for the 65C02 code generator / runtime too.
authorOliver Schmidt <ol.sc@web.de>
Sun, 19 Mar 2017 19:07:19 +0000 (20:07 +0100)
committerOliver Schmidt <ol.sc@web.de>
Sun, 19 Mar 2017 19:07:19 +0000 (20:07 +0100)
Now that sim65's 65C02 support is actually functional we can run test for the 65C02 support in the compiler and the runtime.

We learn the hard way this is a good idea as there are tests failing when built with optimizations for the 65C02:
- val/compare7
- val/compare8
- val/compare9
- val/compare10
- val/or1

test/misc/Makefile
test/ref/Makefile
test/val/Makefile

index 6512a9fd92f79b6317376324cd47f4a3a39da95e..06ee2a84f4389bff027951972ef7ab3e2d6467b6 100644 (file)
@@ -20,7 +20,6 @@ else
   DEL = $(RM) $1
 endif
 
-CC65FLAGS = -t sim6502
 SIM65FLAGS = -x 200000000
 
 CL65 := $(if $(wildcard ../../bin/cl65*),../../bin/cl65,cl65)
@@ -38,7 +37,8 @@ CFLAGS = -O2
 .PHONY: all clean
 
 SOURCES := $(wildcard *.c)
-TESTS = $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).prg))
+TESTS  = $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).6502.prg))
+TESTS += $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).65c02.prg))
 
 all: $(TESTS)
 
@@ -51,34 +51,35 @@ $(DIFF): ../bdiff.c | $(WORKDIR)
 define PRG_template
 
 # should compile, but then hangs in an endless loop
-$(WORKDIR)/endless.$1.prg: endless.c | $(WORKDIR)
-       $(CL65) $(CC65FLAGS) -$1 -o $$@ $$<
+$(WORKDIR)/endless.$1.$2.prg: endless.c | $(WORKDIR)
+       $(CL65) -t sim$2 -$1 -o $$@ $$<
        $(NOT) $(SIM65) $(SIM65FLAGS) $$@
 
 # these need reference data that can't be generated by a host-compiled program,
 # in a useful way
-$(WORKDIR)/limits.$1.prg: limits.c $(DIFF)
-       $(CL65) $(CC65FLAGS) -$1 -o $$@ $$<
+$(WORKDIR)/limits.$1.$2.prg: limits.c $(DIFF)
+       $(CL65) -t sim$2 -$1 -o $$@ $$<
        $(SIM65) $(SIM65FLAGS) $$@ > $(WORKDIR)/limits.$1.out
        $(DIFF) $(WORKDIR)/limits.$1.out limits.ref
 
 # the rest are tests that fail currently for one reason or another
-$(WORKDIR)/fields.$1.prg: fields.c | $(WORKDIR)
+$(WORKDIR)/fields.$1.$2.prg: fields.c | $(WORKDIR)
        @echo "FIXME: " $$@ "currently will fail."
-       $(CL65) $(CC65FLAGS) -$1 -o $$@ $$<
+       $(CL65) -t sim$2 -$1 -o $$@ $$<
        -$(SIM65) $(SIM65FLAGS) $$@
-$(WORKDIR)/sitest.$1.prg: sitest.c | $(WORKDIR)
+$(WORKDIR)/sitest.$1.$2.prg: sitest.c | $(WORKDIR)
        @echo "FIXME: " $$@ "currently will fail."
-       -$(CL65) $(CC65FLAGS) -$1 -o $$@ $$<
+       -$(CL65) -t sim$2 -$1 -o $$@ $$<
 #      -$(SIM65) $(SIM65FLAGS) $$@
-$(WORKDIR)/cc65141011.$1.prg: cc65141011.c | $(WORKDIR)
+$(WORKDIR)/cc65141011.$1.$2.prg: cc65141011.c | $(WORKDIR)
        @echo "FIXME: " $$@ "currently can fail."
-       $(CL65) $(CC65FLAGS) -$1 -o $$@ $$<
+       $(CL65) -t sim$2 -$1 -o $$@ $$<
        -$(SIM65) $(SIM65FLAGS) $$@
 
 endef # PRG_template
 
-$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option))))
+$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option),6502)))
+$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option),65c02)))
 
 clean:
        @$(call RMDIR,$(WORKDIR))
index 7bd10cf14876ea267acf619f39a38005aa629b1a..55c859af1349a7e3afe109566d6b717fc994bf6e 100644 (file)
@@ -19,7 +19,6 @@ else
   DEL = $(RM) $1
 endif
 
-CC65FLAGS = -t sim6502
 SIM65FLAGS = -x 200000000
 
 CL65 := $(if $(wildcard ../../bin/cl65*),../../bin/cl65,cl65)
@@ -38,7 +37,8 @@ CFLAGS = -O2 -Wall -W -Wextra -funsigned-char -fwrapv -fno-strict-overflow
 
 SOURCES := $(wildcard *.c)
 REFS = $(SOURCES:%.c=$(WORKDIR)/%.ref)
-TESTS = $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).prg))
+TESTS  = $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).6502.prg))
+TESTS += $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).65c02.prg))
 
 all: $(REFS) $(TESTS)
 
@@ -70,14 +70,15 @@ $(WORKDIR)/yaccdbg.%.prg: yacc.c
 
 define PRG_template
 
-$(WORKDIR)/%.$1.prg: %.c $(WORKDIR)/%.ref $(DIFF)
-       $(CL65) $$(CC65FLAGS) -$1 -o $$@ $$<
+$(WORKDIR)/%.$1.$2.prg: %.c $(WORKDIR)/%.ref $(DIFF)
+       $(CL65) -t sim$2 $$(CC65FLAGS) -$1 -o $$@ $$<
        $(SIM65) $(SIM65FLAGS) $$@ > $(WORKDIR)/$$*.out
        $(DIFF) $(WORKDIR)/$$*.out $(WORKDIR)/$$*.ref
 
 endef # PRG_template
 
-$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option))))
+$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option),6502)))
+$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option),65c02)))
 
 clean:
        @$(call RMDIR,$(WORKDIR))
index 8a07045ee9d33067ad97333942b685521bb968b7..425d8ace69eef1f720ad17cb54161607e757b030 100644 (file)
@@ -14,7 +14,6 @@ else
   DEL = $(RM) $1
 endif
 
-CC65FLAGS = -t sim6502
 SIM65FLAGS = -x 200000000
 
 CL65 := $(if $(wildcard ../../bin/cl65*),../../bin/cl65,cl65)
@@ -27,7 +26,15 @@ OPTIONS = g O Os Osi Osir Oi Oir Or
 .PHONY: all clean
 
 SOURCES := $(wildcard *.c)
-TESTS = $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).prg))
+TESTS := $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).6502.prg))
+TESTS += $(foreach option,$(OPTIONS),$(SOURCES:%.c=$(WORKDIR)/%.$(option).65c02.prg))
+
+# FIXME: These tests fail when built with optimizations for the 65c02
+TESTS := $(filter-out $(WORKDIR)/compare7.O%.65c02.prg,$(TESTS))
+TESTS := $(filter-out $(WORKDIR)/compare8.O%.65c02.prg,$(TESTS))
+TESTS := $(filter-out $(WORKDIR)/compare9.O%.65c02.prg,$(TESTS))
+TESTS := $(filter-out $(WORKDIR)/compare10.O%.65c02.prg,$(TESTS))
+TESTS := $(filter-out $(WORKDIR)/or1.O%.65c02.prg,$(TESTS))
 
 all: $(TESTS)
 
@@ -46,13 +53,14 @@ $(WORKDIR)/cq84.%.prg: CC65FLAGS += -Wc --all-cdecl
 
 define PRG_template
 
-$(WORKDIR)/%.$1.prg: %.c | $(WORKDIR)
-       $(CL65) $$(CC65FLAGS) -$1 -o $$@ $$<
+$(WORKDIR)/%.$1.$2.prg: %.c | $(WORKDIR)
+       $(CL65) -t sim$2 $$(CC65FLAGS) -$1 -o $$@ $$<
        $(SIM65) $(SIM65FLAGS) $$@
 
 endef # PRG_template
 
-$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option))))
+$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option),6502)))
+$(foreach option,$(OPTIONS),$(eval $(call PRG_template,$(option),65c02)))
 
 clean:
        @$(call RMDIR,$(WORKDIR))