[mini] Fix the llvmonlycheck test.
[mono.git] / mono / tests / testing_gac / Makefile.am
1
2 ### buildtree stuff
3
4 CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
5
6 if FULL_AOT_TESTS
7 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY,FULL_AOT_DESKTOP 
8 endif
9
10 if HYBRID_AOT_TESTS
11 PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY 
12 endif
13
14 ### test runner stuff
15
16 if HOST_WIN32
17 PLATFORM_PATH_SEPARATOR=;
18 else
19 PLATFORM_PATH_SEPARATOR=:
20 endif
21
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)
25
26 # These tests are testing strict assembly strong-name resolution
27 TEST_RUNNER = ../test-runner.exe --runtime $(RUNTIME) --runtime-args "--assembly-loader=strict"
28
29 if HOST_WIN32
30 TEST_RUNNER_ARGS=--runtime $(if $(MONO_EXECUTABLE),$(shell cygpath -w -a $(MONO_EXECUTABLE) | sed 's/\\/\\\\/g'),mono)
31 else
32 TEST_RUNNER_ARGS=--runtime $(if $(MONO_EXECUTABLE),$(MONO_EXECUTABLE),mono)
33 endif
34
35 TEST_RUNNER_ARGS += $(if $(V), --verbose,)
36
37 if FULL_AOT_TESTS
38 TEST_RUNNER += --runtime-args "$(AOT_RUN_FLAGS)"
39 endif
40
41 if HYBRID_AOT_TESTS
42 TEST_RUNNER += --runtime-args "$(AOT_RUN_FLAGS)"
43 endif
44
45 ### tools
46
47 GACUTIL= $(mcs_topdir)/class/lib/build/gacutil.exe
48 SN= $(mcs_topdir)/class/lib/build/sn.exe
49
50 MCS= $(TOOLS_RUNTIME) $(CSC) -noconfig -nologo -debug:portable -target:library $(PROFILE_MCS_FLAGS)
51
52 ### testcase stuff
53
54 BASE_MONO_PATH=$(CLASS)
55
56 V1_SRC= v1/gactestlib.cs
57 V2_SRC= v2/gactestlib.cs
58 APP_V1_SRC = v1/app.cs v1/app-refl-load.cs
59
60 APP_SIGNED_V1_EXE = app-v1.exe app-refl-load-v1.exe
61
62 UNSIGNED_V1_DLL= unsigned_v1/gactestlib.dll
63 UNSIGNED_V2_DLL= unsigned_v2/gactestlib.dll
64
65 SIGNED_V1_DLL= signed_v1/gactestlib.dll
66 SIGNED_V2_DLL= signed_v2/gactestlib.dll
67
68 GACTESTLIB_SRCS= $(V1_SRC) $(V2_SRC)
69 GACTESTLIB_DLLS= $(SIGNED_V1_DLL) $(SIGNED_V2_DLL) $(UNSIGNED_V1_DLL) $(UNSIGNED_V2_DLL)
70
71 if FULL_AOT_TESTS
72 GACTESTLIB_DLLS_AOT=$(GACTESTLIB_DLLS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
73 APP_SIGNED_V1_AOT=$(APP_SIGNED_V1_EXE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
74 endif
75
76 if HYBRID_AOT_TESTS
77 GACTESTLIB_DLLS_AOT=$(GACTESTLIB_DLLS:.dll=.dll$(PLATFORM_AOT_SUFFIX))
78 APP_SIGNED_V1_AOT=$(APP_SIGNED_V1_EXE:.exe=.exe$(PLATFORM_AOT_SUFFIX))
79 endif
80
81
82 SIGNING_KEY= $(srcdir)/testkey.snk
83
84 # prefix for the testing gac.  gacutil will add lib/mono/gac directories
85 GACDIR=.
86
87 SIGN= -delaysign -keyfile:$(SIGNING_KEY)
88
89
90 ### autotools stuff
91
92 EXTRA_DIST= README $(SIGNING_KEY) $(GACTESTLIB_SRCS) 
93
94 ### Test cases
95
96 .PHONY: runtest compile-tests prereqs
97
98 runtest:
99 if !FULL_AOT_TESTS
100 if !HYBRID_AOT_TESTS
101         $(MAKE) test-signed-v1-app-mp-unsigned-v1
102         $(MAKE) test-signed-v1-app-mp-signed-v1
103         $(MAKE) test-signed-v1-app-mp-unsigned-v2-signed-v1
104         $(MAKE) test-signed-v1-app-mp-signed-v2-signed-v1
105         $(MAKE) test-signed-v1-app-gac
106 endif
107 endif
108
109 compile-tests: prereqs $(APP_SIGNED_V1_EXE) $(APP_SIGNED_V1_AOT)
110
111 prereqs: $(GACTESTLIB_DLLS) $(GACTESTLIB_DLLS_AOT)
112         $(MAKE) gacinstall
113
114 $(UNSIGNED_V1_DLL): $(V1_SRC)
115         -mkdir -p $(@D)
116         $(MCS) -out:$@ $<
117
118 $(UNSIGNED_V2_DLL): $(V2_SRC)
119         -mkdir -p $(@D)
120         $(MCS) -out:$@ $<
121
122 $(SIGNED_V1_DLL): $(V1_SRC) $(SIGNING_KEY)
123         -mkdir -p $(@D)
124         $(MCS) -out:$@ $(SIGN) $< && $(TOOLS_RUNTIME) $(SN) -R $@ $(SIGNING_KEY)
125
126 $(SIGNED_V2_DLL): $(V2_SRC) $(SIGNING_KEY)
127         -mkdir -p $(@D)
128         $(MCS) -out:$@ $(SIGN) $< && $(TOOLS_RUNTIME) $(SN) -R $@ $(SIGNING_KEY)
129
130 %-v1.exe: v1/%.cs $(SIGNED_V1_DLL)
131         $(MCS) -target:exe -out:$@ -r:$(SIGNED_V1_DLL) $<
132
133 %.exe$(PLATFORM_AOT_SUFFIX): %.exe 
134         $(TEST_RUNTIME) $(AOT_BUILD_FLAGS) $<
135
136 %.dll$(PLATFORM_AOT_SUFFIX): %.dll 
137         $(TEST_RUNTIME) $(AOT_BUILD_FLAGS) $<
138
139 # MONO_PATH tests
140
141 test-signed-v1-app-mp-unsigned-v1: $(APP_SIGNED_V1_EXE) prereqs
142         $(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)
143
144 test-signed-v1-app-mp-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
145         $(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)
146
147 test-signed-v1-app-mp-unsigned-v2-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
148         $(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)
149
150 test-signed-v1-app-mp-signed-v2-signed-v1: $(APP_SIGNED_V1_EXE) prereqs
151         $(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)
152
153 # MONO_GAC_PREFIX tests
154
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)
157
158 .PHONY: gacinstall
159
160 gacinstall: $(SIGNED_V1_DLL) $(GACTESTLIB_DLLS_AOT)
161         $(TOOLS_RUNTIME) $(GACUTIL) -i $< -gacdir $(GACDIR) 
162
163 mostlyclean-local: clean-gac-subdir clean-gactestlib-dll
164         -rm -f TestResult-*.xml
165
166 .PHONY: clean-gac-subdir clean-gactestlib-dll
167
168 clean-gac-subdir:
169         -rm -rf $(GACDIR)/lib/mono/gac/
170
171 clean-gactestlib-dll:
172         -rm -f $(GACTESTLIB_DLLS)
173         -rm -f $(GACTESTLIB_DLLS_AOT)
174         -rm -f $(APP_SIGNED_V1_EXE) $(APP_SIGNED_V1_AOT)