3 # Rules for building unit tests.
5 # Includers of this file must define the following values:
14 TEST_COMPILE
= $(subst $(test_remove
),,$(CSCOMPILE
))
17 TEST_RUNTIME_WRAPPERS_PATH
= $(shell dirname
$(RUNTIME
))/_tmpinst
/bin
22 test_lib_dir
= $(topdir
)/class
/lib
/$(PROFILE
)/tests
24 test_nunit_lib
= nunitlite.dll
25 xunit_core
:= xunit.core xunit.execution.dotnet xunit.abstractions xunit.assert Xunit.NetCore.Extensions
26 xunit_deps
:= netstandard System.Runtime
27 xunit_src
:= $(patsubst %,$(topdir
)/..
/external
/xunit-binaries
/%,BenchmarkAttribute.cs BenchmarkDiscover.cs
) $(topdir
)/..
/mcs
/class
/test-helpers
/PlatformDetection.cs
29 ifeq ($(USE_XTEST_REMOTE_EXECUTOR
), YES
)
30 XTEST_REMOTE_EXECUTOR
= $(test_lib_dir
)/RemoteExecutorConsoleApp.exe
32 ifeq ($(BUILD_PLATFORM
), win32
)
33 XTEST_REMOTE_EXECUTOR_ABSPATH
= $(shell cygpath
-w
$(abspath
$(XTEST_REMOTE_EXECUTOR
)))
35 XTEST_REMOTE_EXECUTOR_ABSPATH
= $(abspath
$(XTEST_REMOTE_EXECUTOR
))
38 xunit_src
+= $(topdir
)/..
/mcs
/class
/test-helpers
/AdminHelper.cs \
39 $(topdir
)/..
/external
/corefx
/src
/CoreFx.Private.TestUtilities
/src
/System
/IO
/FileCleanupTestBase.cs \
40 $(topdir
)/..
/external
/corefx
/src
/CoreFx.Private.TestUtilities
/src
/System
/Diagnostics
/RemoteExecutorTestBase.cs \
41 $(topdir
)/..
/external
/corefx
/src
/Common
/src
/System
/PasteArguments.cs \
42 $(topdir
)/..
/external
/corefx
/src
/Common
/src
/System
/PasteArguments.Unix.cs
45 xunit_src
+= $(topdir
)/..
/mcs
/class
/test-helpers
/RemoteExecutorTestBase.Mobile.cs
47 ifeq ($(PROFILE
), xammac_net_4_5
)
48 xunit_src
+= $(topdir
)/..
/mcs
/class
/test-helpers
/RemoteExecutorTestBase.Mobile.cs
50 xunit_src
+= $(topdir
)/..
/mcs
/class
/test-helpers
/RemoteExecutorTestBase.Mono.cs
$(topdir
)/..
/external
/corefx
/src
/CoreFx.Private.TestUtilities
/src
/System
/Diagnostics
/RemoteExecutorTestBase.Process.cs
54 endif # ($(USE_XTEST_REMOTE_EXECUTOR), YES)
58 xunit_libs_ref
= $(patsubst %,-r
:$(topdir
)/..
/external
/xunit-binaries
/%.dll
,$(xunit_core
))
59 xunit_libs_ref
+= $(patsubst %,-r
:$(topdir
)/class
/lib
/$(PROFILE
)/Facades
/%.dll
,$(xunit_deps
))
61 xunit_libs_dep
= $(xunit_class_deps
:%=$(topdir
)/class
/lib
/$(PROFILE
)/%.dll
)
62 xunit_libs_ref
+= $(xunit_libs_dep
:%=-r
:%)
64 TEST_LIB_REFS_ALL
= $(TEST_LIB_REFS
) $(DEFAULT_REFERENCES
)
66 ifdef TARGET_NET_REFERENCE
67 # System*, mscorlib references come from the TARGET_NET_REFERENCE dir, others from the profile dir
68 TEST_LIB_REFS_MONO
= $(call _FILTER_OUT
,System
,$(call _FILTER_OUT
,mscorlib
,$(TEST_LIB_REFS_ALL
)))
69 TEST_LIB_REFS_SYSTEM
= $(filter-out $(TEST_LIB_REFS_MONO
),$(TEST_LIB_REFS_ALL
))
71 TEST_LIB_MCS_FLAGS
= $(patsubst %,-r
:$(topdir
)/..
/external
/binary-reference-assemblies
/$(TARGET_NET_REFERENCE
)/%.dll
,$(TEST_LIB_REFS_SYSTEM
))
72 TEST_LIB_MCS_FLAGS
+= $(patsubst %,-r
:$(topdir
)/class
/lib
/$(PROFILE_DIRECTORY
)/%.dll
,$(TEST_LIB_REFS_MONO
))
74 TEST_LIB_MCS_FLAGS
= $(patsubst %,-r
:$(topdir
)/class
/lib
/$(PROFILE_DIRECTORY
)/%.dll
,$(TEST_LIB_REFS_ALL
))
77 XTEST_LIB_MCS_FLAGS
= $(patsubst %,-r
:$(topdir
)/class
/lib
/$(PROFILE
)/%.dll
,$(XTEST_LIB_REFS
) $(DEFAULT_REFERENCES
))
79 test_nunit_dep
= $(test_nunit_lib
:%=$(topdir
)/class
/lib
/$(PROFILE
)/%)
80 test_nunit_ref
= $(test_nunit_dep
:%=-r
:%)
81 tests_CLEAN_FILES
+= TestResult
*.xml
83 test_sourcefile_base
= $(PROFILE
)_
$(ASSEMBLY
:$(ASSEMBLY_EXT
)=_test.dll.sources
)
85 ifeq ($(wildcard $(test_sourcefile_base
)),)
86 test_sourcefile_base
= $(ASSEMBLY
:$(ASSEMBLY_EXT
)=_test.dll.sources
)
89 test_lib
= $(PROFILE
)_
$(ASSEMBLY
:$(ASSEMBLY_EXT
)=_test.dll
)
90 test_lib_output
= $(test_lib_dir
)/$(test_lib
)
92 test_sourcefile_base_excludes
= $(test_lib
).exclude.sources
94 test_pdb
= $(test_lib
:.dll
=.pdb
)
95 test_flags
= $(test_nunit_ref
) $(TEST_MCS_FLAGS
) $(TEST_LIB_MCS_FLAGS
)
97 test_flags
+= -r
:$(the_assembly
)
98 test_assembly_dep
= $(the_assembly
)
100 tests_CLEAN_FILES
+= $(test_lib_output
) $(test_lib_output
:$(ASSEMBLY_EXT
)=.pdb
)
102 xtest_sourcefile_base
= $(PROFILE_PLATFORM
)_
$(PROFILE
)_
$(ASSEMBLY
:$(ASSEMBLY_EXT
)=_xtest.dll.sources
)
103 xtest_sourcefile_base_excludes_full
= $(PROFILE_PLATFORM
)_
$(PROFILE
)_
$(ASSEMBLY
:$(ASSEMBLY_EXT
)=_xtest.dll.exclude.sources
)
104 xtest_sourcefile_base_excludes
= $(xtest_sourcefile_base_excludes_full
:_
%=%)
106 xunit_test_lib
= $(PROFILE
)_
$(ASSEMBLY
:$(ASSEMBLY_EXT
)=_xunit-test.dll
)
107 xtest_lib_output
= $(test_lib_dir
)/$(xunit_test_lib
)
109 xtest_response
= $(depsdir
)/$(xunit_test_lib
).response
110 xtest_makefrag
= $(depsdir
)/$(xunit_test_lib
).makefrag
111 xtest_flags
= -r
:$(the_assembly
) $(xunit_libs_ref
) $(XTEST_MCS_FLAGS
) $(XTEST_LIB_MCS_FLAGS
) /unsafe
113 ifeq ($(wildcard $(xtest_sourcefile_base
)),)
114 xtest_sourcefile_base
= $(ASSEMBLY
:$(ASSEMBLY_EXT
)=_xtest.dll.sources
)
115 tests_CLEAN_FILES
+= $(xtest_lib_output
) $(xtest_response
) $(xtest_makefrag
)
119 HAVE_CS_TESTS
:= $(wildcard $(test_sourcefile_base
))
122 HAVE_CS_XTESTS
:= $(wildcard $(xtest_sourcefile_base
))
127 $(test_nunit_dep
): $(topdir
)/build
/deps
/nunit-
$(PROFILE
).stamp
128 @if
test -f
$@
; then
:; else rm -f
$<; $(MAKE
) $<; fi
130 $(topdir
)/build
/deps
/nunit-
$(PROFILE
).stamp
:
131 cd
${topdir}/tools
/nunit-lite
&& $(MAKE
)
134 tests_CLEAN_FILES
+= $(topdir
)/build
/deps
/nunit-
$(PROFILE
).stamp
141 test_assemblies
+= $(test_lib_output
)
144 test-local
: $(test_assemblies
) $(test_lib_dir
)/nunit-excludes.txt
145 run-test-local
: run-test-lib
146 run-test-ondotnet-local
: run-test-ondotnet-lib
148 TEST_HARNESS_EXCLUDES
= $(PLATFORM_TEST_HARNESS_EXCLUDES
) $(PROFILE_TEST_HARNESS_EXCLUDES
) NotWorking CAS
150 ifdef TEST_WITH_INTERPRETER
151 TEST_HARNESS_EXCLUDES
+= NotWorkingRuntimeInterpreter
157 FIXTURE_ARG
= -test=$(FIXTURE
)
161 TESTNAME_ARG
= -test=$(TESTNAME
)
164 ifdef TEST_HARNESS_VERBOSE
168 ifdef ALWAYS_AOT_TESTS
169 test-local-aot-compile
: $(topdir
)/build
/deps
/nunit-
$(PROFILE
).stamp
$(test_assemblies
)
170 PATH
="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" MONO_REGISTRY_PATH
="$(HOME)/.mono/registry" MONO_TESTS_IN_PROGRESS
="yes" $(TEST_RUNTIME
) $(TEST_RUNTIME_FLAGS
) $(AOT_BUILD_FLAGS
) $(test_assemblies
)
173 test-local-aot-compile
: $(topdir
)/build
/deps
/nunit-
$(PROFILE
).stamp
$(test_assemblies
)
175 endif # ALWAYS_AOT_TESTS
178 TEST_COVERAGE_FLAGS
= -O
=-aot
--profile
=coverage
:output
=$(topdir
)/class
/lib
/$(PROFILE_DIRECTORY
)/coverage_nunit_
$(ASSEMBLY
).xml
181 NUNITLITE_CONFIG_FILE
=$(topdir
)/class
/lib
/$(PROFILE
)/$(PARENT_PROFILE
)nunit-lite-console.exe.config
183 $(test_lib_output
).nunitlite.config
: $(topdir
)/tools
/nunit-lite
/nunit-lite-console
/nunit-lite-console.exe.config.tmpl
$(TEST_NUNITLITE_APP_CONFIG_GLOBAL
) $(TEST_NUNITLITE_APP_CONFIG_RUNTIME
) $(TEST_NUNITLITE_APP_CONFIG_SUPPLEMENTAL
) |
$(test_lib_dir
)
184 cp
-f
$(topdir
)/tools
/nunit-lite
/nunit-lite-console
/nunit-lite-console.exe.config.tmpl
$(test_lib_output
).nunitlite.config
185 ifdef TEST_NUNITLITE_APP_CONFIG_GLOBAL
186 sed
-i
-e
"/__INSERT_CUSTOM_APP_CONFIG_GLOBAL__/r $(TEST_NUNITLITE_APP_CONFIG_GLOBAL)" $(test_lib_output
).nunitlite.config
188 ifdef TEST_NUNITLITE_APP_CONFIG_RUNTIME
189 sed
-i
-e
"/__INSERT_CUSTOM_APP_CONFIG_RUNTIME__/r $(TEST_NUNITLITE_APP_CONFIG_RUNTIME)" $(test_lib_output
).nunitlite.config
191 ifdef TEST_NUNITLITE_APP_CONFIG_SUPPLEMENTAL
192 cp
-f
$(TEST_NUNITLITE_APP_CONFIG_SUPPLEMENTAL
) $(test_lib_output
).nunitlite.config.
$(TEST_NUNITLITE_APP_CONFIG_SUPPLEMENTAL
)
195 copy-nunitlite-appconfig
: $(test_lib_output
).nunitlite.config
196 cp
-f
$(test_lib_output
).nunitlite.config
$(NUNITLITE_CONFIG_FILE
)
198 ifdef PLATFORM_AOT_SUFFIX
200 DEDUP_DUMMY_CS
=$(topdir
)/class
/lib
/$(PROFILE
)/DedupInflatedMethods.cs
201 DEDUP_DUMMY
=$(topdir
)/class
/lib
/$(PROFILE
)/DedupInflatedMethods.dll
204 echo
" // Empty Assembly \n\n" > $(DEDUP_DUMMY_CS
)
205 $(CSCOMPILE
) -t
:library
-out
:$(DEDUP_DUMMY
) $(DEDUP_DUMMY_CS
)
208 MKBUNDLE_TEST_BIN
= $(TEST_HARNESS
).static
209 MKBUNDLE_EXE
= $(topdir
)/class
/lib
/$(PROFILE
)/mkbundle.exe
210 # Pattern based on the one in AOT_PROFILE_ASSEMBLIES
211 # It's easier if you read it backwards.
212 # What we do here is get the files in the profile directory that end in "test.dll" or are prefixed with nunit (filter)
213 # and then strip out everything that we expect to live outside the top level (filter-out)
214 TEST_ASSEMBLIES
:=$(sort $(patsubst .
//%,%,$(filter-out %.exe.static
%.dll.dll
%.exe.dll
%bare
% %plaincore
% %secxml
% %Facades
% %ilasm
%,$(filter %.dll
,$(wildcard $(topdir
)/class
/lib
/$(PROFILE
)/tests
/*)))))
216 $(MKBUNDLE_EXE
): $(topdir
)/tools
/mkbundle
/mkbundle.cs
217 $(MAKE
) -C
$(topdir
)/tools
/mkbundle
220 $(Q_AOT
) $(MAKE
) -C
$(topdir
)/class do-test
221 $(Q_AOT
) $(MAKE
) -C
$(topdir
)/tools
/mkbundle
222 $(Q_AOT
) $(MAKE
) $(MKBUNDLE_TEST_BIN
) # recursive make re-computes variables for TEST_ASSEMBLIES
225 MKBUNDLE_DEDUP_COND
:= $(DEDUP_DUMMY
)
226 DEDUP_ARGS
=--aot-dedup
$(DEDUP_DUMMY
)
229 $(MKBUNDLE_TEST_BIN
): $(TEST_ASSEMBLIES
) $(TEST_HARNESS
) $(MKBUNDLE_EXE
) $(MKBUNDLE_DEDUP_COND
)
230 $(Q_AOT
) MONO_PATH
="$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)" PKG_CONFIG_PATH
="$(topdir)/../data" $(RUNTIME
) $(RUNTIME_FLAGS
) $(MKBUNDLE_EXE
) -L
$(topdir
)/class
/lib
/$(PROFILE
) -v
--deps
$(TEST_HARNESS
) $(TEST_ASSEMBLIES
) -o
$(MKBUNDLE_TEST_BIN
) --aot-mode
$(AOT_MODE
) --aot-runtime
$(RUNTIME
) --aot-args
$(AOT_BUILD_ATTRS
) --in-tree
$(topdir
)/..
--managed-linker
$(topdir
)/class
/lib
/$(BUILD_TOOLS_PROFILE
)/monolinker.exe
--config
$(topdir
)/..
/data
/config
--i18n
all $(DEDUP_ARGS
) --keeptemp
232 endif # PLATFORM_AOT_SUFFIX
234 ifneq ($(wildcard $(MKBUNDLE_TEST_BIN
)),)
235 TEST_HARNESS_EXEC
=$(MKBUNDLE_TEST_BIN
)
236 TEST_HARNESS_EXCLUDES
:=$(TEST_HARNESS_EXCLUDES
) StaticLinkedAotNotWorking
238 TEST_HARNESS_EXEC
=$(TEST_RUNTIME
) $(TEST_RUNTIME_FLAGS
) $(TEST_COVERAGE_FLAGS
) $(AOT_RUN_FLAGS
) $(TEST_HARNESS
)
241 $(test_lib_dir
)/nunit-excludes.txt
: $(topdir
)/build
/tests.make |
$(test_lib_dir
)
243 @
$(foreach entry
,$(TEST_HARNESS_EXCLUDES
),echo
"$(entry)" >> $@
;)
245 ## FIXME: i18n problem in the 'sed' command below
246 run-test-lib
: test-local test-local-aot-compile copy-nunitlite-appconfig
248 PATH
="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" MONO_REGISTRY_PATH
="$(HOME)/.mono/registry" MONO_TESTS_IN_PROGRESS
="yes" DBG_RUNTIME_ARGS
="$(TEST_RUNTIME_FLAGS)" $(TEST_HARNESS_EXEC
) $(test_assemblies
) $(NOSHADOW_FLAG
) $(TEST_HARNESS_FLAGS
) $(LOCAL_TEST_HARNESS_FLAGS
) -exclude
=$(subst $(space
),$(comma
),$(TEST_HARNESS_EXCLUDES
)) $(LABELS_ARG
) -format
:nunit2
-result
:TestResult-
$(PROFILE
).xml
$(FIXTURE_ARG
) $(TESTNAME_ARG
)|| ok
=false
; \
249 if
[ ! -f
"TestResult-$(PROFILE).xml" ]; then echo
"<?xml version='1.0' encoding='utf-8'?><test-results failures='1' total='1' not-run='0' name='bcl-tests' date='$$(date +%F)' time='$$(date +%T)'><test-suite name='$(strip $(test_assemblies))' success='False' time='0'><results><test-case name='$(notdir $(strip $(test_assemblies))).crash' executed='True' success='False' time='0'><failure><message>The test runner didn't produce a test result XML, probably due to a crash of the runtime. Check the log for more details.</message><stack-trace></stack-trace></failure></test-case></results></test-suite></test-results>" > TestResult-
$(PROFILE
).xml
; fi
; \
252 ## Instructs compiler to compile to target .net execution, it can be usefull in rare cases when runtime detection is not possible
253 run-test-ondotnet-lib
: LOCAL_TEST_COMPILER_ONDOTNET_FLAGS
:=-d
:RUN_ONDOTNET
254 run-test-ondotnet-lib
: test-local
256 $(TEST_HARNESS
) $(test_assemblies
) $(NOSHADOW_FLAG
) $(TEST_HARNESS_FLAGS
) $(LOCAL_TEST_HARNESS_ONDOTNET_FLAGS
) /exclude
:$(subst $(space
),$(comma
),$(TEST_HARNESS_EXCLUDES
) NotDotNet
) $(LABELS_ARG
) -format
:nunit2
-result
:TestResult-ondotnet-
$(PROFILE
).xml
$(FIXTURE_ARG
) $(TESTNAME_ARG
) || ok
=false
; \
265 TEST_FILES
+= `sed -e '/^$$/d' -e 's,^../,,' -e '/^\#.*$$/d' -et -e 's,^,Test/,' $(test_sourcefile_base)`
273 test_library
= $(ASSEMBLY
:$(ASSEMBLY_EXT
)=)_test
$(ASSEMBLY_EXT
)
275 test_sourcefile
= $(depsdir
)/$(PROFILE_PLATFORM
)_
$(PROFILE
)_
$(test_library
).sources
276 $(test_sourcefile
): $(test_sourcefile_base
) $(wildcard *_test.dll.sources
) $(wildcard *_test.dll.exclude.sources
) $(depsdir
)/.stamp
277 $(GENSOURCES
) --basedir
:.
/Test
--strict
--platformsdir
:$(topdir
)/build
"$@" "$(test_library)" "$(PROFILE_PLATFORM)" "$(PROFILE)"
279 test_response
= $(depsdir
)/$(PROFILE_PLATFORM
)_
$(PROFILE
)_
$(test_library
).response
280 $(test_response
): $(test_sourcefile
) $(topdir
)/build
/tests.make
$(depsdir
)/.stamp
281 $(PLATFORM_CHANGE_SEPARATOR_CMD
) <$(test_sourcefile
) >$@
283 test_makefrag
= $(depsdir
)/$(PROFILE_PLATFORM
)_
$(PROFILE
)_
$(test_library
).makefrag
284 $(test_makefrag
): $(test_sourcefile
) $(topdir
)/build
/tests.make
$(depsdir
)/.stamp
285 @echo Creating
$@ ...
286 @sed
's,^,$(build_lib): ,' $< >$@
287 @if
test ! -f
$(test_sourcefile
).makefrag
; then
:; else \
288 cat
$(test_sourcefile
).makefrag
>> $@
; \
289 echo
'$@: $(test_sourcefile).makefrag' >> $@
; \
290 echo
'$(test_sourcefile).makefrag:' >> $@
; fi
292 $(test_lib_output
): $(test_assembly_dep
) $(test_response
) $(test_nunit_dep
) $(test_lib_output
).nunitlite.config |
$(test_lib_dir
)
293 $(TEST_COMPILE
) $(LIBRARY_FLAGS
) -target
:library
-out
:$@
$(test_flags
) $(LOCAL_TEST_COMPILER_ONDOTNET_FLAGS
) @
$(test_response
)
295 tests_CLEAN_FILES
+= $(test_sourcefile
) $(test_response
) $(test_makefrag
)
299 -include $(test_makefrag
)
301 build-test-lib
: $(test_lib_output
)
302 @echo Building testing lib
309 XTEST_HARNESS_PATH
:= $(topdir
)/..
/external
/xunit-binaries
310 XTEST_HARNESS
= $(XTEST_HARNESS_PATH
)/xunit.console.exe
311 XTEST_RESULT_FILE
:= TestResult-
$(PROFILE
)-xunit.xml
312 XTEST_HARNESS_FLAGS
:= -noappdomain
-noshadow
-parallel none
-nunit
$(XTEST_RESULT_FILE
)
314 XTEST_NOTRAITS
:= category
=failing category
=nonmonotests Benchmark
=true
317 XTEST_NOTRAITS
+= category
=outerloop
320 # The logic is double inverted so this actually excludes tests not intented for current platform
321 # best to search for `property name="category"` in the xml output to see what's going on
322 # https://github.com/dotnet/buildtools/blob/master/src/xunit.netcore.extensions/Discoverers/PlatformSpecificDiscoverer.cs
323 XTEST_NOTRAITS
+= category
=non
$(XTEST_PLATFORM
)tests
325 TEST_MONO_PATH
:= $(TEST_MONO_PATH
)$(PLATFORM_PATH_SEPARATOR
)$(XTEST_HARNESS_PATH
)
328 XTEST_HARNESS_FLAGS
+= -class
$(FIXTURE
)
332 XTEST_HARNESS_FLAGS
+= -method
$(TESTNAME
)
336 XTEST_COVERAGE_FLAGS
= -O
=-aot
--profile
=coverage
:output
=$(topdir
)/class
/lib
/$(PROFILE_DIRECTORY
)/coverage_xunit_
$(ASSEMBLY
).xml
339 check: run-xunit-test-local
340 xunit-test-local
: $(xtest_lib_output
) $(test_lib_dir
)/xunit-excludes.txt
$(test_lib_dir
)/Xunit.NetCore.Extensions.dll
$(test_lib_dir
)/xunit.execution.dotnet.dll
341 run-xunit-test-local
: run-xunit-test-lib
343 $(test_lib_dir
)/xunit-excludes.txt
: $(topdir
)/build
/tests.make |
$(test_lib_dir
)
345 $(foreach entry
,$(XTEST_NOTRAITS
),echo
"$(entry)" >> $@
;)
347 $(test_lib_dir
)/Xunit.NetCore.Extensions.dll
: $(topdir
)/build
/tests.make
$(topdir
)/..
/external
/xunit-binaries
/Xunit.NetCore.Extensions.dll |
$(test_lib_dir
)
348 @cp
-f
$(topdir
)/..
/external
/xunit-binaries
/Xunit.NetCore.Extensions.dll
$@
350 $(test_lib_dir
)/xunit.execution.dotnet.dll
: $(topdir
)/build
/tests.make
$(topdir
)/..
/external
/xunit-binaries
/xunit.execution.dotnet.dll |
$(test_lib_dir
)
351 @cp
-f
$(topdir
)/..
/external
/xunit-binaries
/xunit.execution.dotnet.dll
$@
353 run-xunit-test-lib
: xunit-test-local
355 PATH
="$(TEST_RUNTIME_WRAPPERS_PATH):$(PATH)" REMOTE_EXECUTOR
="$(XTEST_REMOTE_EXECUTOR_ABSPATH)" $(TEST_RUNTIME
) $(TEST_RUNTIME_FLAGS
) $(XTEST_COVERAGE_FLAGS
) $(AOT_RUN_FLAGS
) $(XTEST_HARNESS
) $(xtest_lib_output
) $(XTEST_HARNESS_FLAGS
) -notrait
$(subst $(space
), -notrait
,$(XTEST_NOTRAITS
)) || ok
=false
; \
356 if
[ -n
"$$MONO_BABYSITTER_NUNIT_XML_LIST_FILE" ]; then echo
"$(abspath $(XTEST_RESULT_FILE))" >> "$$MONO_BABYSITTER_NUNIT_XML_LIST_FILE"; fi
; \
359 # Some xunit tests want to be executed in a separate process (see RemoteExecutorTestBase)
360 $(XTEST_REMOTE_EXECUTOR
): $(topdir
)/..
/external
/corefx
/src
/Common
/tests
/System
/Diagnostics
/RemoteExecutorConsoleApp
/RemoteExecutorConsoleApp.cs |
$(test_lib_dir
)
361 $(TEST_COMPILE
) -r
:$(topdir
)/class
/lib
/$(PROFILE
)/mscorlib.dll
$< -out
:$@
363 $(xtest_lib_output
): $(the_assembly
) $(xtest_response
) $(xunit_libs_dep
) $(xunit_src
) $(XTEST_REMOTE_EXECUTOR
) |
$(test_lib_dir
)
364 $(TEST_COMPILE
) $(LIBRARY_FLAGS
) $(XTEST_LIB_FLAGS
) -target
:library
-out
:$@
$(xtest_flags
) @
$(xtest_response
) $(xunit_src
)
366 xtest_response_preprocessed
= $(xtest_response
)_preprocessed
368 # This handles .excludes/.sources pairs, as well as resolving the
369 # includes that occur in .sources files
370 $(xtest_response
): $(xtest_sourcefile_base
) $(wildcard *xtest.dll.sources
) $(wildcard $(xtest_sourcefile_base_excludes
))
371 $(GENSOURCES
) --strict
--platformsdir
:$(topdir
)/build
"$@" "$(xtest_sourcefile_base)" "$(xtest_sourcefile_base_excludes)"
373 $(xtest_makefrag
): $(xtest_response
)
374 @echo Creating
$@ ...
375 @sed
's,^,$(xtest_lib_output): ,' $< >$@
377 -include $(xtest_makefrag
)
382 .PHONY
: patch-nunitlite-appconfig