mirror of
https://github.com/cc65/cc65.git
synced 2025-01-08 20:31:31 +00:00
Run test for the 65C02 code generator / runtime too.
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
This commit is contained in:
parent
ff9b77b6cc
commit
4a6bca0b56
@ -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))
|
||||
|
@ -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))
|
||||
|
@ -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))
|
||||
|
Loading…
Reference in New Issue
Block a user