Fix process stress tests to not popup thousands of Windows.
[mono-project.git] / mono / tests / testing_gac / Makefile.am
blob588ab6d1a2b3b79b4c75cec60cc17e2260f6a4f5
1 include $(top_srcdir)/mk/common.mk
3 ### buildtree stuff
5 CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
7 if FULL_AOT_TESTS
8 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY,FULL_AOT_DESKTOP 
9 endif
11 if HYBRID_AOT_TESTS
12 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY 
13 endif
15 ### test runner stuff
17 if HOST_WIN32
18 PLATFORM_PATH_SEPARATOR=;
19 else
20 PLATFORM_PATH_SEPARATOR=:
21 endif
23 RUNTIME= $(top_builddir)/runtime/mono-wrapper
24 TEST_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME)
25 TOOLS_RUNTIME= MONO_PATH=$(mcs_topdir)/class/lib/build $(RUNTIME)
27 # These tests are testing strict assembly strong-name resolution
28 TEST_RUNNER = ../test-runner.exe --runtime $(RUNTIME) --runtime-args "--assembly-loader=strict"
30 if HOST_WIN32
31 if ENABLE_MSVC
32         DEFAULT_WIN32_RUNTIME=$(shell cygpath -w -a $(top_builddir)/@mono_runtime@ | sed 's/\\/\\\\/g')
33 else
34         DEFAULT_WIN32_RUNTIME=$(top_builddir)/runtime/mono-wrapper)
35 endif
36 TEST_RUNNER_ARGS=--runtime $(if $(MONO_EXECUTABLE),$(shell cygpath -w -a $(MONO_EXECUTABLE) | sed 's/\\/\\\\/g'),$(DEFAULT_WIN32_RUNTIME))
37 else
38 TEST_RUNNER_ARGS=--runtime $(if $(MONO_EXECUTABLE),$(MONO_EXECUTABLE),mono)
39 endif
41 TEST_RUNNER_ARGS += $(if $(V), --verbose,)
43 if FULL_AOT_TESTS
44 TEST_RUNNER += --runtime-args "$(AOT_RUN_FLAGS)"
45 endif
47 if HYBRID_AOT_TESTS
48 TEST_RUNNER += --runtime-args "$(AOT_RUN_FLAGS)"
49 endif
51 ### tools
53 GACUTIL= $(mcs_topdir)/class/lib/build/gacutil.exe
54 SN= $(mcs_topdir)/class/lib/build/sn.exe
56 MCS= $(TOOLS_RUNTIME) $(CSC) -noconfig -nologo -debug:portable -target:library $(PROFILE_MCS_FLAGS)
58 ### testcase stuff
60 BASE_MONO_PATH=$(CLASS)
62 V1_SRC= v1/gactestlib.cs
63 V2_SRC= v2/gactestlib.cs
64 APP_V1_SRC = v1/app.cs v1/app-refl-load.cs
66 APP_SIGNED_V1_EXE = app-v1.exe app-refl-load-v1.exe
68 APP_BOTH_EXE = app-both.exe
70 UNSIGNED_V1_DLL= unsigned_v1/gactestlib.dll
71 UNSIGNED_V2_DLL= unsigned_v2/gactestlib.dll
73 SIGNED_V1_DLL= signed_v1/gactestlib.dll
74 SIGNED_V2_DLL= signed_v2/gactestlib.dll
76 GACTESTLIB_SRCS= $(V1_SRC) $(V2_SRC)
77 GACTESTLIB_DLLS= $(SIGNED_V1_DLL) $(SIGNED_V2_DLL) $(UNSIGNED_V1_DLL) $(UNSIGNED_V2_DLL)
79 #if FULL_AOT_TESTS
80 #GACTESTLIB_DLLS_AOT=$(GACTESTLIB_DLLS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
81 #APP_SIGNED_V1_AOT=$(APP_SIGNED_V1_EXE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
82 #endif
84 #if HYBRID_AOT_TESTS
85 #GACTESTLIB_DLLS_AOT=$(GACTESTLIB_DLLS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
86 #APP_SIGNED_V1_AOT=$(APP_SIGNED_V1_EXE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
87 #endif
90 SIGNING_KEY= $(srcdir)/testkey.snk
92 # prefix for the testing gac.  gacutil will add lib/mono/gac directories
93 GACDIR=.
95 SIGN= -delaysign -keyfile:$(SIGNING_KEY)
98 ### autotools stuff
100 EXTRA_DIST= README $(SIGNING_KEY) $(GACTESTLIB_SRCS) 
102 ### Test cases
104 .PHONY: run-test test-local prereqs
106 run-test:
107         true
108 if !FULL_AOT_TESTS
109 if !HYBRID_AOT_TESTS
110         $(MAKE) test-app-both
111         $(MAKE) test-signed-v1-app-mp-unsigned-v1
112         $(MAKE) test-signed-v1-app-mp-signed-v1
113         $(MAKE) test-signed-v1-app-mp-unsigned-v2-signed-v1
114         $(MAKE) test-signed-v1-app-mp-signed-v2-signed-v1
115         $(MAKE) test-signed-v1-app-gac
116 endif
117 endif
119 test-local: prereqs $(APP_SIGNED_V1_EXE) $(APP_BOTH_EXE) $(APP_SIGNED_V1_AOT)
121 prereqs: $(GACTESTLIB_DLLS) $(GACTESTLIB_DLLS_AOT)
122         $(MAKE) gacinstall
124 $(UNSIGNED_V1_DLL): $(V1_SRC)
125         -mkdir -p $(@D)
126         $(MCS) -out:$@ $<
128 $(UNSIGNED_V2_DLL): $(V2_SRC)
129         -mkdir -p $(@D)
130         $(MCS) -out:$@ $<
132 $(SIGNED_V1_DLL): $(V1_SRC) $(SIGNING_KEY)
133         -mkdir -p $(@D)
134         $(MCS) -out:$@ $(SIGN) $< && $(TOOLS_RUNTIME) $(SN) -R $@ $(SIGNING_KEY)
136 $(SIGNED_V2_DLL): $(V2_SRC) $(SIGNING_KEY)
137         -mkdir -p $(@D)
138         $(MCS) -out:$@ $(SIGN) $< && $(TOOLS_RUNTIME) $(SN) -R $@ $(SIGNING_KEY)
140 app-both.exe: app-both.cs $(SIGNED_V1_DLL) $(SIGNED_V2_DLL)
141         $(MCS) -target:exe -out:$@ -r:V1=$(SIGNED_V1_DLL) /r:V2=$(SIGNED_V2_DLL) $<
143 %-v1.exe: v1/%.cs $(SIGNED_V1_DLL)
144         $(MCS) -target:exe -out:$@ -r:$(SIGNED_V1_DLL) $<
146 %.exe$(PLATFORM_AOT_SUFFIX): %.exe 
147         $(TEST_RUNTIME) $(AOT_BUILD_FLAGS) $<
149 %.dll$(PLATFORM_AOT_SUFFIX): %.dll 
150         $(TEST_RUNTIME) $(AOT_BUILD_FLAGS) $<
152 # MONO_PATH tests
154 test-signed-v1-app-mp-unsigned-v1: $(APP_SIGNED_V1_EXE) prereqs
155         $(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)
157 test-signed-v1-app-mp-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
158         $(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)
160 test-signed-v1-app-mp-unsigned-v2-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
161         $(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)
163 test-signed-v1-app-mp-signed-v2-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
164         $(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 # N.B. the path order is important - the test needs to load v1 successfully and then try to load v2 from the v1 directory.
167 test-app-both: $(APP_BOTH_EXE) prereqs
168         $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name "testing_gac_$@" --mono-path "signed_v1$(PLATFORM_PATH_SEPARATOR)signed_v2$(PLATFORM_PATH_SEPARATOR)$(BASE_MONO_PATH)" app-both.exe
170 # MONO_GAC_PREFIX tests
172 test-signed-v1-app-gac: $(APP_SIGNED_V1_EXE) gacinstall prereqs
173         $(TOOLS_RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name "testing_gac_$@" --mono-gac-prefix $(GACDIR) $(APP_SIGNED_V1_EXE)
175 .PHONY: gacinstall
177 gacinstall: $(SIGNED_V1_DLL) $(GACTESTLIB_DLLS_AOT)
178         $(TOOLS_RUNTIME) $(GACUTIL) -i $< -gacdir $(GACDIR) 
180 mostlyclean-local: clean-gac-subdir clean-gactestlib-dll
181         -rm -f TestResult-*.xml
183 .PHONY: clean-gac-subdir clean-gactestlib-dll
185 clean-gac-subdir:
186         -rm -rf $(GACDIR)/lib/mono/gac/
188 clean-gactestlib-dll:
189         -rm -f $(GACTESTLIB_DLLS)
190         -rm -f $(GACTESTLIB_DLLS_AOT)
191         -rm -f $(APP_SIGNED_V1_EXE) $(APP_SIGNED_V1_AOT)