1 thisdir = tools/mono-symbolicate
3 include ../../build/rules.make
5 PROGRAM = mono-symbolicate.exe
10 LIB_REFS = Mono.Cecil Mono.Cecil.Mdb System.Xml System.Core System
12 include ../../build/executable.make
14 LIB_PATH = $(topdir)/class/lib/$(PROFILE)
16 MONO = MONO_PATH="$(LIB_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) -O=-inline
18 MSYM_DIR = $(OUT_DIR)/msymdir
19 TEST_CS = Test/StackTraceDumper.cs
20 TEST_EXE = $(OUT_DIR)/StackTraceDumper.exe
21 STACKTRACE_FILE = $(OUT_DIR)/stacktrace.out
22 SYMBOLICATE_RAW_FILE = $(OUT_DIR)/symbolicate_raw.out
23 SYMBOLICATE_RESULT_FILE = $(OUT_DIR)/symbolicate.result
24 SYMBOLICATE_EXPECTED_FILE = Test/symbolicate.expected
27 $(MONO) $(TEST_EXE) > $(STACKTRACE_FILE); \
28 $(MONO) $(LIB_PATH)/$(PROGRAM) $(MSYM_DIR) $(STACKTRACE_FILE) > $(SYMBOLICATE_RAW_FILE); \
29 sed "s/).*Test\//) in /" $(SYMBOLICATE_RAW_FILE) | sed '/\[MVID\]/d' | sed '/\[AOTID\]/d' > $(SYMBOLICATE_RESULT_FILE); \
30 DIFF=$$(diff $(SYMBOLICATE_RESULT_FILE) $(SYMBOLICATE_EXPECTED_FILE)); \
31 if [ ! -z "$$DIFF" ]; then \
32 echo "Symbolicate tests failed."; \
33 echo "If $(SYMBOLICATE_RESULT_FILE) is correct copy it to $(SYMBOLICATE_EXPECTED_FILE)."; \
34 echo "Otherwise runtime sequence points need to be fixed."; \
41 mkdir -p $(OUT_DIR); \
45 $(CSCOMPILE) $(TEST_CS) -out:$(TEST_EXE); \
46 $(MONO) $(LIB_PATH)/$(PROGRAM) store-symbols $(MSYM_DIR) $(OUT_DIR)
50 AOT_SUPPORTED = $(shell $(MONO) --aot 2>&1 | grep -q "AOT compilation is not supported" && echo 0 || echo 1)
52 test-local: test-without-aot test-with-aot test-with-aot-msym
54 test-without-aot: OUT_DIR = Test/without_aot
56 @echo "Checking $(TEST_EXE) without AOT in $(OUT_DIR)"
61 test-with-aot: OUT_DIR = Test/with_aot
63 ifeq ($(AOT_SUPPORTED), 1)
64 @echo "Checking $(TEST_EXE) with AOT in $(OUT_DIR)"
67 @$(MONO) --aot $(TEST_EXE) > /dev/null
71 test-with-aot-msym: OUT_DIR = Test/with_aot_msym
72 test-with-aot-msym: all
73 ifeq ($(AOT_SUPPORTED), 1)
74 @echo "Checking $(TEST_EXE) with AOT (using .msym) in $(OUT_DIR)"
77 @$(MONO) --aot=msym-dir=$(MSYM_DIR) $(TEST_EXE) > /dev/null