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 -unsafe
9 LIB_REFS
= System.Xml System.Core System
11 include ..
/..
/build
/executable.make
13 LIB_PATH
= $(topdir
)/class
/lib
/$(PROFILE
)
15 ifdef TARGET_NET_REFERENCE
16 LIB_REF_PATH
= $(topdir
)/..
/external
/binary-reference-assemblies
/$(TARGET_NET_REFERENCE
)
18 LIB_REF_PATH
= $(LIB_PATH
)
21 MONO
= MONO_PATH
="$(LIB_PATH)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME
) -O
=-inline
23 MSYM_DIR
= $(OUT_DIR
)/msymdir
24 TEST_CS
= Test
/StackTraceDumper.cs
25 TEST_EXE
= StackTraceDumper.exe
26 STACKTRACE_FILE
= $(OUT_DIR
)/stacktrace.out
27 SYMBOLICATE_RAW_FILE
= $(OUT_DIR
)/symbolicate_raw.out
28 SYMBOLICATE_RESULT_FILE
= $(OUT_DIR
)/symbolicate.result
29 SYMBOLICATE_EXPECTED_FILE
= Test
/symbolicate.expected
32 $(MONO
) $(TEST_EXE
) > $(STACKTRACE_FILE
); \
33 $(MONO
) $(LIB_PATH
)/$(PROGRAM
) $(MSYM_DIR
) $(STACKTRACE_FILE
) > $(SYMBOLICATE_RAW_FILE
); \
34 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
); \
35 DIFF
=$$(diff
-up
$(SYMBOLICATE_EXPECTED_FILE
) $(SYMBOLICATE_RESULT_FILE
)); \
36 if
[ ! -z
"$$DIFF" ]; then \
37 echo
"Symbolicate tests failed."; \
38 echo
"If $(SYMBOLICATE_RESULT_FILE) is correct copy it to $(SYMBOLICATE_EXPECTED_FILE)."; \
39 echo
"Otherwise runtime sequence points need to be fixed."; \
45 CHECK_DIFF
= @echo
"WARNING: running in mcs mode, tests are specific to roslyn and would fail. Skipping diff check."
50 mkdir
-p
$(OUT_DIR
); \
54 $(MONO
) $(LIB_PATH
)/$(PROGRAM
) store-symbols
$(MSYM_DIR
) $(OUT_DIR
); \
55 $(MONO
) $(LIB_PATH
)/$(PROGRAM
) store-symbols
$(MSYM_DIR
) $(LIB_PATH
);
58 cp
$(TEST_EXE
) $(OUT_DIR
); \
59 cp
$(TEST_EXE
:.exe
=.pdb
) $(OUT_DIR
);
63 AOT_SUPPORTED
= $(shell $(MONO
) --aot
2>&1 | grep
-q
"AOT compilation is not supported" && echo
0 || echo
1)
65 test-local
: $(TEST_EXE
)
68 mkdir
-p
$(TEST_BUNDLE_PATH
)/tests
/symbolicate
69 cp
-L
$(TEST_EXE
) $(TEST_EXE
:.exe
=.pdb
) $(SYMBOLICATE_EXPECTED_FILE
) $(TEST_BUNDLE_PATH
)/tests
/symbolicate
/
71 $(TEST_EXE
): $(TEST_CS
)
72 $(CSCOMPILE
) $(TEST_CS
) -r
:$(LIB_REF_PATH
)/mscorlib.dll
-r
:$(LIB_REF_PATH
)/System.Core.dll
-warn
:0 -out
:$(TEST_EXE
)
74 run-test-local
: run-test-without-aot run-test-with-aot run-test-with-aot-msym
76 run-test-without-aot
: OUT_DIR
= Test
/without_aot
77 run-test-without-aot
: all
78 @echo
"Checking $(TEST_EXE) without AOT in $(OUT_DIR)"
84 run-test-with-aot
: OUT_DIR
= Test
/with_aot
85 run-test-with-aot
: all
86 ifeq ($(AOT_SUPPORTED
), 1)
87 @echo
"Checking $(TEST_EXE) with AOT in $(OUT_DIR)"
91 @
$(MONO
) --aot
$(OUT_DIR
)/$(TEST_EXE
) > /dev
/null
95 run-test-with-aot-msym
: OUT_DIR
= Test
/with_aot_msym
96 run-test-with-aot-msym
: all
97 ifeq ($(AOT_SUPPORTED
), 1)
98 @echo
"Checking $(TEST_EXE) with AOT (using .msym) in $(OUT_DIR)"
102 @
$(MONO
) --aot
=msym-dir
=$(MSYM_DIR
) $(OUT_DIR
)/$(TEST_EXE
) > /dev
/null