mirror of
https://github.com/dlang/dmd.git
synced 2025-04-27 05:30:13 +03:00
druntime: Make most *test* Makefiles usable on Windows too
Still to do: `test/{shared,stdcpp}`.
This commit is contained in:
parent
1bd0c930d3
commit
b99b9d2c20
38 changed files with 303 additions and 435 deletions
|
@ -1,31 +1,34 @@
|
|||
include ../common.mak
|
||||
|
||||
TESTS=stderr_msg unittest_assert invalid_memory_operation unknown_gc static_dtor \
|
||||
future_message refcounted rt_trap_exceptions_drt catch_in_finally \
|
||||
message_with_null
|
||||
future_message refcounted rt_trap_exceptions_drt catch_in_finally \
|
||||
message_with_null
|
||||
|
||||
ifeq ($(OS)-$(BUILD),linux-debug)
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc rt_trap_exceptions cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=-L--export-dynamic
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc rt_trap_exceptions cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=-L--export-dynamic
|
||||
endif
|
||||
ifeq ($(OS),linux)
|
||||
TESTS+=rt_trap_exceptions_drt_gdb
|
||||
TESTS+=rt_trap_exceptions_drt_gdb
|
||||
endif
|
||||
ifeq ($(OS)-$(BUILD),freebsd-debug)
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=-L--export-dynamic
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=-L--export-dynamic
|
||||
endif
|
||||
ifeq ($(OS)-$(BUILD),dragonflybsd-debug)
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=-L--export-dynamic
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=-L--export-dynamic
|
||||
endif
|
||||
ifeq ($(OS)-$(BUILD),osx-debug)
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=
|
||||
TESTS+=line_trace line_trace_21656 long_backtrace_trunc cpp_demangle
|
||||
LINE_TRACE_DFLAGS:=
|
||||
endif
|
||||
ifeq ($(OS)-$(BUILD),windows-debug)
|
||||
TESTS+=winstack
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD),debug)
|
||||
TESTS+=assert_fail
|
||||
TESTS+=assert_fail
|
||||
endif
|
||||
|
||||
DIFF:=diff
|
||||
|
@ -35,7 +38,7 @@ GDB:=gdb
|
|||
.PHONY: all clean
|
||||
all: $(addprefix $(ROOT)/,$(addsuffix .done,$(TESTS)))
|
||||
|
||||
$(ROOT)/line_trace.done: $(ROOT)/line_trace
|
||||
$(ROOT)/line_trace.done: $(ROOT)/line_trace$(DOTEXE)
|
||||
@echo Testing line_trace
|
||||
$(QUIET)$(TIMELIMIT)$(ROOT)/line_trace $(RUN_ARGS) > $(ROOT)/line_trace.output
|
||||
# Use sed to canonicalize line_trace.output and compare against expected output in line_trace.exp
|
||||
|
@ -44,7 +47,7 @@ $(ROOT)/line_trace.done: $(ROOT)/line_trace
|
|||
@touch $@
|
||||
|
||||
# https://issues.dlang.org/show_bug.cgi?id=21656
|
||||
$(ROOT)/line_trace_21656.done: $(ROOT)/line_trace
|
||||
$(ROOT)/line_trace_21656.done: $(ROOT)/line_trace$(DOTEXE)
|
||||
@echo Testing line_trace_21656
|
||||
@mkdir -p $(ROOT)/line_trace_21656
|
||||
@touch $(ROOT)/line_trace_21656/line_trace
|
||||
|
@ -53,7 +56,7 @@ $(ROOT)/line_trace_21656.done: $(ROOT)/line_trace
|
|||
@rm -rf $(ROOT)/line_trace_21656
|
||||
@touch $@
|
||||
|
||||
$(ROOT)/long_backtrace_trunc.done: $(ROOT)/long_backtrace_trunc
|
||||
$(ROOT)/long_backtrace_trunc.done: $(ROOT)/long_backtrace_trunc$(DOTEXE)
|
||||
@echo Testing long_backtrace_trunc
|
||||
$(QUIET)$(TIMELIMIT)$(ROOT)/long_backtrace_trunc $(RUN_ARGS) > $(ROOT)/long_backtrace_trunc.output
|
||||
# Use sed to canonicalize long_backtrace_trunc.output and compare against expected output in long_backtrace_trunc.exp
|
||||
|
@ -61,12 +64,17 @@ $(ROOT)/long_backtrace_trunc.done: $(ROOT)/long_backtrace_trunc
|
|||
@rm -f $(ROOT)/long_backtrace_trunc.output
|
||||
@touch $@
|
||||
|
||||
$(ROOT)/chain.done: $(ROOT)/chain
|
||||
$(ROOT)/chain.done: $(ROOT)/chain$(DOTEXE)
|
||||
@echo Testing chain
|
||||
$(QUIET)$(TIMELIMIT)$(ROOT)/chain $(RUN_ARGS) > $(ROOT)/chain.output
|
||||
@rm -f $(ROOT)/chain.output
|
||||
@touch $@
|
||||
|
||||
$(ROOT)/winstack.done: $(ROOT)/winstack$(DOTEXE)
|
||||
@echo Testing winstack
|
||||
$(QUIET)$(TIMELIMIT)$(ROOT)/winstack $(RUN_ARGS)
|
||||
@touch $@
|
||||
|
||||
$(ROOT)/stderr_msg.done: STDERR_EXP="stderr_msg msg"
|
||||
$(ROOT)/unittest_assert.done: STDERR_EXP="unittest_assert msg"
|
||||
$(ROOT)/invalid_memory_operation.done: STDERR_EXP="InvalidMemoryOperationError"
|
||||
|
@ -82,7 +90,7 @@ $(ROOT)/cpp_demangle.done: STDERR_EXP="thrower(int)"
|
|||
|
||||
$(ROOT)/message_with_null.done: STDERR_EXP=" world"
|
||||
|
||||
$(ROOT)/%.done: $(ROOT)/%
|
||||
$(ROOT)/%.done: $(ROOT)/%$(DOTEXE)
|
||||
@echo Testing $*
|
||||
$(QUIET)$(TIMELIMIT)$(ROOT)/$* $(RUN_ARGS) 2>$(ROOT)/$*.stderr || true
|
||||
|
||||
|
@ -105,7 +113,7 @@ $(ROOT)/rt_trap_exceptions_drt.done: RUN_ARGS="--DRT-trapExceptions=0"
|
|||
$(ROOT)/rt_trap_exceptions_drt.done: NEGATE=!
|
||||
|
||||
|
||||
$(ROOT)/rt_trap_exceptions_drt_gdb.done: $(ROOT)/rt_trap_exceptions_drt
|
||||
$(ROOT)/rt_trap_exceptions_drt_gdb.done: $(ROOT)/rt_trap_exceptions_drt$(DOTEXE)
|
||||
@echo Testing rt_trap_exceptions_drt_gdb
|
||||
$(QUIET)$(TIMELIMIT) $(GDB) -n -ex 'set confirm off' -ex run -ex 'bt full' -ex q --args $< --DRT-trapExceptions=0 \
|
||||
> $(ROOT)/rt_trap_exceptions_drt_gdb.output 2>&1 || true
|
||||
|
@ -115,23 +123,23 @@ $(ROOT)/rt_trap_exceptions_drt_gdb.done: $(ROOT)/rt_trap_exceptions_drt
|
|||
! grep "No stack." > /dev/null < $(ROOT)/rt_trap_exceptions_drt_gdb.output
|
||||
@touch $@
|
||||
|
||||
$(ROOT)/refcounted.done: $(ROOT)/refcounted
|
||||
$(ROOT)/refcounted.done: $(ROOT)/refcounted$(DOTEXE)
|
||||
$(QUIET) $<
|
||||
@touch $@
|
||||
|
||||
ifeq (ldmd,$(findstring ldmd,$(DMD)))
|
||||
ifneq (,$(findstring ldmd,$(DMD)))
|
||||
# LDC: Make sure allocation intended to provoke exception is not elided.
|
||||
$(ROOT)/invalid_memory_operation: DFLAGS+=-disable-gc2stack
|
||||
$(ROOT)/invalid_memory_operation$(DOTEXE): DFLAGS+=-disable-gc2stack
|
||||
endif
|
||||
$(ROOT)/unittest_assert: DFLAGS+=-unittest -version=CoreUnittest
|
||||
$(ROOT)/line_trace: DFLAGS+=$(LINE_TRACE_DFLAGS)
|
||||
$(ROOT)/long_backtrace_trunc: DFLAGS+=$(LINE_TRACE_DFLAGS)
|
||||
$(ROOT)/rt_trap_exceptions: DFLAGS+=$(LINE_TRACE_DFLAGS)
|
||||
$(ROOT)/rt_trap_exceptions_drt: DFLAGS+=-g
|
||||
$(ROOT)/refcounted: DFLAGS+=-dip1008
|
||||
$(ROOT)/cpp_demangle: DFLAGS+=-L-lstdc++ $(LINE_TRACE_DFLAGS)
|
||||
$(ROOT)/unittest_assert$(DOTEXE): DFLAGS+=-unittest -version=CoreUnittest
|
||||
$(ROOT)/line_trace$(DOTEXE): DFLAGS+=$(LINE_TRACE_DFLAGS)
|
||||
$(ROOT)/long_backtrace_trunc$(DOTEXE): DFLAGS+=$(LINE_TRACE_DFLAGS)
|
||||
$(ROOT)/rt_trap_exceptions$(DOTEXE): DFLAGS+=$(LINE_TRACE_DFLAGS)
|
||||
$(ROOT)/rt_trap_exceptions_drt$(DOTEXE): DFLAGS+=-g
|
||||
$(ROOT)/refcounted$(DOTEXE): DFLAGS+=-dip1008
|
||||
$(ROOT)/cpp_demangle$(DOTEXE): DFLAGS+=-L-lstdc++ $(LINE_TRACE_DFLAGS)
|
||||
|
||||
$(ROOT)/%: $(SRC)/%.d $(DMD) $(DRUNTIME)
|
||||
$(ROOT)/%$(DOTEXE): $(SRC)/%.d $(DMD) $(DRUNTIME)
|
||||
$(QUIET)$(DMD) $(DFLAGS) -of$@ $<
|
||||
|
||||
clean:
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
# built from the druntime top-level folder
|
||||
# to be overwritten by caller
|
||||
DMD=dmd
|
||||
MODEL=64
|
||||
DRUNTIMELIB=druntime64.lib
|
||||
|
||||
test:
|
||||
$(DMD) -m$(MODEL) -conf= -Iimport -defaultlib=$(DRUNTIMELIB) -g test\exceptions\src\winstack.d
|
||||
winstack.exe
|
||||
del winstack.*
|
Loading…
Add table
Add a link
Reference in a new issue