4 CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
7 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY,FULL_AOT_DESKTOP
11 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY
17 PLATFORM_PATH_SEPARATOR=;
19 PLATFORM_PATH_SEPARATOR=:
22 RUNTIME= $(top_builddir)/runtime/mono-wrapper
23 TEST_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME)
24 TOOLS_RUNTIME= MONO_PATH=$(mcs_topdir)/class/lib/build $(RUNTIME)
26 TEST_RUNNER = ../test-runner.exe --runtime $(RUNTIME)
29 TEST_RUNNER_ARGS=--runtime $(if $(MONO_EXECUTABLE),$(shell cygpath -w -a $(MONO_EXECUTABLE) | sed 's/\\/\\\\/g'),mono)
31 TEST_RUNNER_ARGS=--runtime $(if $(MONO_EXECUTABLE),$(MONO_EXECUTABLE),mono)
34 TEST_RUNNER_ARGS += $(if $(V), --verbose,)
36 CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
39 TEST_RUNNER += --aot-run-flags "$(AOT_RUN_FLAGS)" --aot-build-flags "$(AOT_BUILD_FLAGS)"
43 TEST_RUNNER += --aot-run-flags "$(AOT_RUN_FLAGS)" --aot-build-flags "$(AOT_BUILD_FLAGS)"
48 GACUTIL= $(mcs_topdir)/class/lib/build/gacutil.exe
49 SN= $(mcs_topdir)/class/lib/build/sn.exe
51 MCS= $(TOOLS_RUNTIME) $(CSC) -noconfig -nologo -debug:portable -target:library $(PROFILE_MCS_FLAGS)
55 BASE_MONO_PATH=$(CLASS)
57 V1_SRC= v1/gactestlib.cs
58 V2_SRC= v2/gactestlib.cs
59 APP_V1_SRC = v1/app.cs v1/app-refl-load.cs
61 APP_SIGNED_V1_EXE = app-v1.exe app-refl-load-v1.exe
63 UNSIGNED_V1_DLL= unsigned_v1/gactestlib.dll
64 UNSIGNED_V2_DLL= unsigned_v2/gactestlib.dll
66 SIGNED_V1_DLL= signed_v1/gactestlib.dll
67 SIGNED_V2_DLL= signed_v2/gactestlib.dll
69 GACTESTLIB_SRCS= $(V1_SRC) $(V2_SRC)
70 GACTESTLIB_DLLS= $(SIGNED_V1_DLL) $(SIGNED_V2_DLL) $(UNSIGNED_V1_DLL) $(UNSIGNED_V2_DLL)
73 GACTESTLIB_DLLS_AOT=$(GACTESTLIB_DLLS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
74 APP_SIGNED_V1_AOT=$(APP_SIGNED_V1_EXE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
78 GACTESTLIB_DLLS_AOT=$(GACTESTLIB_DLLS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
79 APP_SIGNED_V1_AOT=$(APP_SIGNED_V1_EXE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
83 SIGNING_KEY= testkey.snk
85 # prefix for the testing gac. gacutil will add lib/mono/gac directories
88 SIGN= -delaysign -keyfile:$(SIGNING_KEY)
93 EXTRA_DIST= README $(SIGNING_KEY) $(GACTESTLIB_SRCS)
97 # MONO_GAC_PREFIX tests
104 GAC_TESTS= test-signed-v1-app-gac
109 MP_TESTS= test-signed-v1-app-mp-unsigned-v1 \
110 test-signed-v1-app-mp-signed-v1 \
111 test-signed-v1-app-mp-unsigned-v2-signed-v1 \
112 test-signed-v1-app-mp-signed-v2-signed-v1
116 .PHONY: runtest compile-tests prereqs
118 runtest: $(MP_TESTS) $(GAC_TESTS)
120 compile-tests: prereqs $(APP_SIGNED_V1_EXE) $(APP_SIGNED_V1_AOT)
122 prereqs: $(GACTESTLIB_DLLS) $(GACTESTLIB_DLLS_AOT) gacinstall
124 $(UNSIGNED_V1_DLL): $(V1_SRC)
128 $(UNSIGNED_V2_DLL): $(V2_SRC)
132 $(SIGNED_V1_DLL): $(V1_SRC) $(SIGNING_KEY)
134 $(MCS) -out:$@ $(SIGN) $< && $(TOOLS_RUNTIME) $(SN) -R $@ $(SIGNING_KEY)
136 $(SIGNED_V2_DLL): $(V2_SRC) $(SIGNING_KEY)
138 $(MCS) -out:$@ $(SIGN) $< && $(TOOLS_RUNTIME) $(SN) -R $@ $(SIGNING_KEY)
140 %-v1.exe: v1/%.cs $(SIGNED_V1_DLL)
141 $(MCS) -target:exe -out:$@ -r:$(SIGNED_V1_DLL) $<
143 %.exe$(PLATFORM_AOT_SUFFIX): %.exe
144 $(TEST_RUNTIME) $(AOT_BUILD_FLAGS) $<
146 %.dll$(PLATFORM_AOT_SUFFIX): %.dll
147 $(TEST_RUNTIME) $(AOT_BUILD_FLAGS) $<
149 test-signed-v1-app-mp-unsigned-v1: $(APP_SIGNED_V1_EXE) prereqs
150 $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name "testing_gac_$@" --mono-path "unsigned_v1$(PLATFORM_PATH_SEPARATOR)$(BASE_MONO_PATH)" --expected-exit-code 1 $(APP_SIGNED_V1_EXE)
152 test-signed-v1-app-mp-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
153 $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name "testing_gac_$@" --mono-path "signed_v1$(PLATFORM_PATH_SEPARATOR)$(BASE_MONO_PATH)" $(APP_SIGNED_V1_EXE)
155 test-signed-v1-app-gac: $(APP_SIGNED_V1_EXE) gacinstall prereqs
156 $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name "testing_gac_$@" --mono-gac-prefix $(GACDIR) $(APP_SIGNED_V1_EXE)
158 test-signed-v1-app-mp-unsigned-v2-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
159 $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name "testing_gac_$@" --mono-path "unsigned_v2$(PLATFORM_PATH_SEPARATOR)signed_v1$(PLATFORM_PATH_SEPARATOR)$(BASE_MONO_PATH)" $(APP_SIGNED_V1_EXE)
161 test-signed-v1-app-mp-signed-v2-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
162 $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name "testing_gac_$@" --mono-path "signed_v2$(PLATFORM_PATH_SEPARATOR)signed_v1$(PLATFORM_PATH_SEPARATOR)$(BASE_MONO_PATH)" $(APP_SIGNED_V1_EXE)
166 gacinstall: $(SIGNED_V1_DLL) $(GACTESTLIB_DLLS_AOT)
167 $(TOOLS_RUNTIME) $(GACUTIL) -i $< -gacdir $(GACDIR)
169 mostlyclean-local: clean-gac-subdir clean-gactestlib-dll
170 -rm -f TestResult-*.xml
172 .PHONY: clean-gac-subdir clean-gactestlib-dll
175 -rm -rf $(GACDIR)/lib/mono/gac/
177 clean-gactestlib-dll:
178 -rm -f $(GACTESTLIB_DLLS)
179 -rm -f $(GACTESTLIB_DLLS_AOT)
180 -rm -f $(APP_SIGNED_V1_EXE) $(APP_SIGNED_V1_AOT)