1 thisdir
= tools
/mono-symbolicate
3 include ..
/..
/build
/rules.make
5 PROGRAM
= mono-symbolicate.exe
7 LOCAL_MCS_FLAGS
= /D
:NO_AUTHENTICODE
/D
:CECIL
-nowarn
:649
9 LIB_REFS
= System.Xml System.Core System
11 include ..
/..
/build
/executable.make
13 LIB_PATH
= $(topdir
)/class
/lib
/$(PROFILE
)
15 MONO
= MONO_PATH
="$(LIB_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME
) -O
=-inline
17 MSYM_DIR
= $(OUT_DIR
)/msymdir
18 TEST_CS
= Test
/StackTraceDumper.cs
19 TEST_EXE
= StackTraceDumper.exe
20 STACKTRACE_FILE
= $(OUT_DIR
)/stacktrace.out
21 SYMBOLICATE_RAW_FILE
= $(OUT_DIR
)/symbolicate_raw.out
22 SYMBOLICATE_RESULT_FILE
= $(OUT_DIR
)/symbolicate.result
23 SYMBOLICATE_EXPECTED_FILE
= Test
/symbolicate.expected
26 $(MONO
) $(TEST_EXE
) > $(STACKTRACE_FILE
); \
27 $(MONO
) $(LIB_PATH
)/$(PROGRAM
) $(MSYM_DIR
) $(STACKTRACE_FILE
) > $(SYMBOLICATE_RAW_FILE
); \
28 cat
$(SYMBOLICATE_RAW_FILE
) | tr
'\\' '/' | sed
"s/) .* in .*\/mcs\//) in mcs\//" | sed
"s/) .* in .*\/external\//) in external\//" | sed
'/\[MVID\]/d' | sed
'/\[AOTID\]/d' > $(SYMBOLICATE_RESULT_FILE
); \
29 DIFF
=$$(diff
-up
$(SYMBOLICATE_EXPECTED_FILE
) $(SYMBOLICATE_RESULT_FILE
)); \
30 if
[ ! -z
"$$DIFF" ]; then \
31 echo
"Symbolicate tests failed."; \
32 echo
"If $(SYMBOLICATE_RESULT_FILE) is correct copy it to $(SYMBOLICATE_EXPECTED_FILE)."; \
33 echo
"Otherwise runtime sequence points need to be fixed."; \
39 CHECK_DIFF
= @echo
"WARNING: running in mcs mode, tests are specific to roslyn and would fail. Skipping diff check."
44 mkdir
-p
$(OUT_DIR
); \
48 $(MONO
) $(LIB_PATH
)/$(PROGRAM
) store-symbols
$(MSYM_DIR
) $(OUT_DIR
); \
49 $(MONO
) $(LIB_PATH
)/$(PROGRAM
) store-symbols
$(MSYM_DIR
) $(LIB_PATH
);
52 cp
$(TEST_EXE
) $(OUT_DIR
); \
53 cp
$(TEST_EXE
:.exe
=.pdb
) $(OUT_DIR
);
57 AOT_SUPPORTED
= $(shell $(MONO
) --aot
2>&1 | grep
-q
"AOT compilation is not supported" && echo
0 || echo
1)
59 test-local
: $(TEST_EXE
)
62 mkdir
-p
$(TEST_BUNDLE_PATH
)/tests
/symbolicate
63 cp
-L
$(TEST_EXE
) $(TEST_EXE
:.exe
=.pdb
) $(SYMBOLICATE_EXPECTED_FILE
) $(TEST_BUNDLE_PATH
)/tests
/symbolicate
/
65 $(TEST_EXE
): $(TEST_CS
)
66 $(CSCOMPILE
) $(TEST_CS
) -r
:$(LIB_PATH
)/mscorlib.dll
-r
:$(LIB_PATH
)/System.Core.dll
-warn
:0 -out
:$(TEST_EXE
)
68 run-test-local
: run-test-without-aot run-test-with-aot run-test-with-aot-msym
70 run-test-without-aot
: OUT_DIR
= Test
/without_aot
71 run-test-without-aot
: all
72 @echo
"Checking $(TEST_EXE) without AOT in $(OUT_DIR)"
78 run-test-with-aot
: OUT_DIR
= Test
/with_aot
79 run-test-with-aot
: all
80 ifeq ($(AOT_SUPPORTED
), 1)
81 @echo
"Checking $(TEST_EXE) with AOT in $(OUT_DIR)"
85 @
$(MONO
) --aot
$(OUT_DIR
)/$(TEST_EXE
) > /dev
/null
89 run-test-with-aot-msym
: OUT_DIR
= Test
/with_aot_msym
90 run-test-with-aot-msym
: all
91 ifeq ($(AOT_SUPPORTED
), 1)
92 @echo
"Checking $(TEST_EXE) with AOT (using .msym) in $(OUT_DIR)"
96 @
$(MONO
) --aot
=msym-dir
=$(MSYM_DIR
) $(OUT_DIR
)/$(TEST_EXE
) > /dev
/null