SUBDIRS = assemblyresolve gc-descriptors
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
FEATUREFUL_RUNTIME_TEST =
else
FEATUREFUL_RUNTIME_TEST = test-appdomain-unload
with_mono_path = MONO_PATH=$(CLASS)
RUNTIME = $(with_mono_path) $(top_builddir)/runtime/mono-wrapper
+TOOLS_RUNTIME = MONO_PATH=$(mcs_topdir)/class/lib/build $(top_builddir)/runtime/mono-wrapper --aot-path=$(mcs_topdir)/class/lib/build
MKBUNDLE = \
PKG_CONFIG_PATH=$(top_builddir):$(PKG_CONFIG_PATH) \
$(RUNTIME) $(CLASS)/mkbundle.exe
-if INSTALL_MOBILE_STATIC
-PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_STATIC,MOBILE_LEGACY
+if FULL_AOT_TESTS
+PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY,FULL_AOT_DESKTOP
endif
-MCS_NO_LIB = $(RUNTIME) $(mcs_topdir)/class/lib/build/mcs.exe -unsafe -debug \
+if HYBRID_AOT_TESTS
+PROFILE_MCS_FLAGS = -d:MOBILE,MOBILE_LEGACY
+endif
+
+MCS_NO_LIB = $(TOOLS_RUNTIME) $(CSC) -unsafe -debug:portable \
-noconfig -nologo \
-nowarn:0162 -nowarn:0168 -nowarn:0219 -nowarn:0414 -nowarn:0618 \
-nowarn:0169 -nowarn:1690 -nowarn:0649 -nowarn:0612 -nowarn:3021 \
MCS = $(MCS_NO_LIB) -lib:$(CLASS)
-ILASM = $(RUNTIME) $(CLASS)/ilasm.exe
+ILASM = $(TOOLS_RUNTIME) $(mcs_topdir)/class/lib/build/ilasm.exe
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
TEST_RUNNER = ./test-runner.exe --runtime $(top_builddir)/runtime/mono-wrapper --mono-path "$(CLASS)" --aot-run-flags "$(AOT_RUN_FLAGS)" --aot-build-flags "$(AOT_BUILD_FLAGS)"
else
TEST_RUNNER = ./test-runner.exe --runtime $(top_builddir)/runtime/mono-wrapper --mono-path "$(CLASS)"
process-stress.cs \
assembly-load-stress.cs
-BASE_TEST_MOBILE_STATIC_NOT_SUPPORTED= \
- remoting4.cs \
- remoting1.cs \
- remoting2.cs \
- remoting3.cs \
- remoting5.cs \
- appdomain.cs \
- appdomain-client.cs \
- appdomain-unload.cs \
- appdomain-async-invoke.cs \
- appdomain-thread-abort.cs \
- appdomain1.cs \
- appdomain2.cs \
- appdomain-exit.cs \
- assemblyresolve_event2.2.cs \
- appdomain-unload-callback.cs \
- appdomain-unload-doesnot-raise-pending-events.cs \
- unload-appdomain-on-shutdown.cs \
- bug-47295.cs \
- loader.cs \
- pinvoke2.cs \
- generic-type-builder.2.cs \
- dynamic-generic-size.cs \
- cominterop.cs \
- dynamic-method-access.2.cs \
- dynamic-method-finalize.2.cs \
- dynamic-method-stack-traces.cs \
- generic_type_definition.2.cs \
- bug-333798-tb.2.cs \
- bug-335131.2.cs \
- bug-322722_patch_bx.2.cs \
- bug-322722_dyn_method_throw.2.cs \
- bug-389886-2.cs \
- bug-349190.2.cs \
- bug-389886-sre-generic-interface-instances.cs \
- bug-462592.cs \
- bug-575941.cs \
- bug-389886-3.cs \
- constant-division.cs \
- dynamic-method-resurrection.cs \
- bug-80307.cs \
- assembly_append_ordering.cs \
- bug-544446.cs \
- bug-36848.cs \
- generic-marshalbyref.2.cs \
- stackframes-async.2.cs \
- transparentproxy.cs \
- bug-48015.cs \
- delegate9.cs \
- marshal-valuetypes.cs \
- xdomain-threads.cs \
- monitor.cs \
- generic-xdomain.2.cs \
- threadpool-exceptions7.cs \
- cross-domain.cs \
- generic-unloading.2.cs \
- namedmutex-destroy-race.cs \
- thread6.cs \
- appdomain-threadpool-unload.cs
-
# Disabled until ?mcs is fixed
# bug-331958.cs
-# Note: only add tests that are compatible with mobile_static to this category
-BASE_TEST_CS_SRC_UNIVERSAL= \
+BASE_TEST_CS_SRC= \
generic-unloading-sub.2.cs \
create-instance.cs \
bug-2907.cs \
bug-81691.cs \
bug-415577.cs \
filter-stack.cs \
+ vararg.cs \
vararg2.cs \
bug-461867.cs \
bug-461941.cs \
thread-native-exit.cs \
reference-loader.cs \
thread-suspend-suspended.cs \
- thread-suspend-selfsuspended.cs
-
-if INSTALL_MOBILE_STATIC
-BASE_TEST_CS_SRC= \
- $(BASE_TEST_CS_SRC_UNIVERSAL)
-else
-BASE_TEST_CS_SRC= \
- $(BASE_TEST_MOBILE_STATIC_NOT_SUPPORTED) \
- $(BASE_TEST_CS_SRC_UNIVERSAL)
-endif
+ thread-suspend-selfsuspended.cs \
+ remoting4.cs \
+ remoting1.cs \
+ remoting2.cs \
+ remoting3.cs \
+ remoting5.cs \
+ appdomain.cs \
+ appdomain-client.cs \
+ appdomain-unload.cs \
+ appdomain-async-invoke.cs \
+ appdomain-thread-abort.cs \
+ appdomain1.cs \
+ appdomain2.cs \
+ appdomain-exit.cs \
+ assemblyresolve_event2.2.cs \
+ appdomain-unload-callback.cs \
+ appdomain-unload-doesnot-raise-pending-events.cs \
+ unload-appdomain-on-shutdown.cs \
+ bug-47295.cs \
+ loader.cs \
+ pinvoke2.cs \
+ generic-type-builder.2.cs \
+ dynamic-generic-size.cs \
+ cominterop.cs \
+ dynamic-method-access.2.cs \
+ dynamic-method-finalize.2.cs \
+ dynamic-method-stack-traces.cs \
+ generic_type_definition.2.cs \
+ bug-333798-tb.2.cs \
+ bug-335131.2.cs \
+ bug-322722_patch_bx.2.cs \
+ bug-322722_dyn_method_throw.2.cs \
+ bug-389886-2.cs \
+ bug-349190.2.cs \
+ bug-389886-sre-generic-interface-instances.cs \
+ bug-462592.cs \
+ bug-575941.cs \
+ bug-389886-3.cs \
+ constant-division.cs \
+ dynamic-method-resurrection.cs \
+ bug-80307.cs \
+ assembly_append_ordering.cs \
+ bug-544446.cs \
+ bug-36848.cs \
+ generic-marshalbyref.2.cs \
+ stackframes-async.2.cs \
+ transparentproxy.cs \
+ bug-48015.cs \
+ delegate9.cs \
+ marshal-valuetypes.cs \
+ xdomain-threads.cs \
+ monitor.cs \
+ generic-xdomain.2.cs \
+ threadpool-exceptions7.cs \
+ cross-domain.cs \
+ generic-unloading.2.cs \
+ namedmutex-destroy-race.cs \
+ thread6.cs \
+ appdomain-threadpool-unload.cs \
+ process-unref-race.cs \
+ bug-46661.cs
TEST_CS_SRC_DIST= \
$(BASE_TEST_CS_SRC) \
if AMD64
TEST_CS_SRC = $(BASE_TEST_CS_SRC) $(TEST_CS_SRC_GEN) async-exc-compilation.cs finally_guard.cs finally_block_ending_in_dead_bb.cs
-# #651684
-PLATFORM_DISABLED_TESTS = finally_guard.exe
else
if X86
TEST_CS_SRC = $(BASE_TEST_CS_SRC) $(TEST_CS_SRC_GEN) async-exc-compilation.cs finally_guard.cs finally_block_ending_in_dead_bb.cs
if IA64
TEST_CS_SRC+=async-exc-compilation.cs filter-stack.cs
+endif
+
+TEST_IL_SRC= \
+ field-access.il \
+ method-access.il \
+ ldftn-access.il \
+ cpblkTest.il \
+ vbinterface.il \
+ calliTest.il \
+ calliGenericTest.il \
+ ckfiniteTest.il \
+ fault-handler.il \
+ locallocTest.il \
+ initblkTest.il \
+ qt-instance.il \
+ vararg.il \
+ bug-29859.il \
+ bug-78549.il \
+ static-fields-nonconst.il \
+ reload-at-bb-end.il \
+ test-enum-indstoreil.il \
+ filter-bug.il \
+ even-odd.il \
+ bug-82022.il \
+ vt-sync-method.il \
+ enum_types.il \
+ invalid-token.il \
+ call_missing_method.il \
+ call_missing_class.il \
+ ldfld_missing_field.il \
+ ldfld_missing_class.il \
+ find-method.2.il \
+ bug-79215.2.il \
+ bug-79956.2.il \
+ bug-327438.2.il \
+ bug-387274.2.il \
+ bug-426309.2.il \
+ ldtoken_with_byref_typespec.2.il \
+ resolve_method_bug.2.il \
+ resolve_field_bug.2.il \
+ resolve_type_bug.2.il \
+ generics-sharing-other-exc.2.il \
+ generic-ldobj.2.il \
+ generic-mkrefany.2.il \
+ generic-refanyval.2.il \
+ generic-ldtoken.2.il \
+ generic-ldtoken-method.2.il \
+ generic-ldtoken-field.2.il \
+ generic-tailcall.2.il \
+ generic-tailcall2.2.il \
+ generic-array-exc.2.il \
+ generic-valuetype-newobj2.2.il \
+ generic-valuetype-newobj.2.il \
+ generic-constrained.2.il \
+ generic-type-load-exception.2.il \
+ bug-81466.il \
+ bug457574.il \
+ bug445361.il \
+ bug-463303.il \
+ bug469742.2.il \
+ bug-528055.il \
+ array_load_exception.il \
+ bug-481403.il \
+ interface-with-static-method.il \
+ bug-633291.il \
+ delegate-with-null-target.il \
+ bug-318677.il \
+ gsharing-valuetype-layout.il \
+ invalid_generic_instantiation.il \
+ bug-45841-fpstack-exceptions.il
+
+if AMD64
+# #651684
+PLATFORM_DISABLED_TESTS = finally_guard.exe
+endif
+
+if IA64
# bug #319249
PLATFORM_DISABLED_TESTS=exception17.exe
PLATFORM_DISABLED_TESTS+=winx64structs.exe
if HOST_WIN32
PLATFORM_DISABLED_TESTS=async-exc-compilation.exe finally_guard.exe finally_block_ending_in_dead_bb.exe \
- bug-18026.exe monitor.exe threadpool-exceptions5.exe
+ bug-18026.exe monitor.exe threadpool-exceptions5.exe process-unref-race.exe
endif
endif
COOP_DISABLED_TESTS=
endif
-if INSTALL_MOBILE_STATIC
+PROFILE_DISABLED_TESTS=
+
+if FULL_AOT_TESTS
# Tests which rely on TypeLoadExceptions
# In full-aot mode, these cause the relevant methods to be not AOTed.
-PROFILE_DISABLED_TESTS = \
+PROFILE_DISABLED_TESTS += \
typeload-unaligned.exe \
field-access.exe \
invalid_generic_instantiation.exe \
thunks.exe
# Tests which load assemblies which are not
-# in the mobile_static profile
+# in the testing_aot_full profile
PROFILE_DISABLED_TESTS += \
assembly-load-remap.exe
-else
-PROFILE_DISABLED_TESTS=
+
+# Test which needs remoting support
+PROFILE_DISABLED_TESTS += \
+ remoting4.exe \
+ remoting1.exe \
+ remoting2.exe \
+ remoting3.exe \
+ remoting5.exe
+
+# Tests which needs AppDomain support
+PROFILE_DISABLED_TESTS += \
+ appdomain.exe \
+ appdomain-client.exe \
+ appdomain-unload.exe \
+ appdomain-async-invoke.exe \
+ appdomain-thread-abort.exe \
+ appdomain1.exe \
+ appdomain2.exe \
+ appdomain-exit.exe \
+ appdomain-unload-callback.exe \
+ appdomain-unload-doesnot-raise-pending-events.exe \
+ unload-appdomain-on-shutdown.exe \
+ assemblyresolve_event2.2.exe \
+ bug-544446.exe \
+ bug-36848.exe \
+ generic-marshalbyref.2.exe \
+ stackframes-async.2.exe \
+ transparentproxy.exe \
+ bug-48015.exe \
+ delegate9.exe \
+ marshal-valuetypes.exe \
+ xdomain-threads.exe \
+ monitor.exe \
+ generic-xdomain.2.exe \
+ threadpool-exceptions7.exe \
+ cross-domain.exe \
+ generic-unloading.2.exe \
+ appdomain-threadpool-unload.exe
+
+# Tests which needs System.Reflection.Emit support
+PROFILE_DISABLED_TESTS += \
+ bug-47295.exe \
+ loader.exe \
+ pinvoke2.exe \
+ generic-type-builder.2.exe \
+ dynamic-generic-size.exe \
+ cominterop.exe \
+ dynamic-method-access.2.exe \
+ dynamic-method-finalize.2.exe \
+ dynamic-method-stack-traces.exe \
+ generic_type_definition.2.exe \
+ bug-333798-tb.2.exe \
+ bug-335131.2.exe \
+ bug-322722_patch_bx.2.exe \
+ bug-322722_dyn_method_throw.2.exe \
+ bug-389886-2.exe \
+ bug-349190.2.exe \
+ bug-389886-sre-generic-interface-instances.exe \
+ bug-462592.exe \
+ bug-575941.exe \
+ bug-389886-3.exe \
+ constant-division.exe \
+ dynamic-method-resurrection.exe \
+ assembly_append_ordering.exe
+
+# Test which needs System.Web support
+PROFILE_DISABLED_TESTS += \
+ bug-80307.exe
+
+# Tests which needs named Mutex support
+PROFILE_DISABLED_TESTS += \
+ namedmutex-destroy-race.exe
+
+# ThreadAbortException doesn't have necessary field for this test
+PROFILE_DISABLED_TESTS += \
+ thread6.exe
+
+# can't AOT the TestingReferenceAssembly.dll which is a dependency
+# of reference-loader.exe because it contains the [ReferenceAssemblyAttribute]
+# and the runtime errors out with "File does not contain a valid CIL image."
+PROFILE_DISABLED_TESTS += \
+ reference-loader.exe
+
+# constraints-load.il:
+# Failed to load method 0x6000007 from '..../mono/tests/constraints-load.exe' due to
+# Could not resolve type with token 01000002 assembly:mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 type:System.BrokenIComparable`1 member:<none>.
+PROFILE_DISABLED_TESTS += \
+ constraints-load.exe \
+ bug-515884.exe
+endif
+
+if HYBRID_AOT_TESTS
+PROFILE_DISABLED_TESTS += \
+ bug-80307.exe \
+ namedmutex-destroy-race.exe
endif
+AOT_DISABLED_TESTS= \
+ constraints-load.exe
+
+CI_DISABLED_TESTS = \
+ main-returns-background-resetabort.exe \
+ main-returns-background-abort-resetabort.exe \
+ assemblyresolve_event3.exe \
+ delegate2.exe \
+ finally_guard.exe \
+ generic-xdomain.2.exe
+
+# failing tests which we temporarily disable for PRs
+# so they don't interfere with other people's work
+CI_PR_DISABLED_TESTS = \
+ appdomain-threadpool-unload.exe \
+ appdomain-thread-abort.exe
+
+# appdomain-threadpool-unload.exe creates 100 appdomains, takes too long with llvm
+LLVM_DISABLED_TESTS = \
+ appdomain-threadpool-unload.exe
+
+LLVM = $(filter --llvm, $(MONO_ENV_OPTIONS))
+
# The two finalizer tests only work under sgen
# gc-altstack.exe fails under boehm because it has no support for altstack
# bug-459094.exe creates an extremely deep directory tree
$(PLATFORM_DISABLED_TESTS) \
$(EXTRA_DISABLED_TESTS) \
$(COOP_DISABLED_TESTS) \
- $(PROFILE_DISABLED_TESTS)
-
-# failing tests which we temporarily disable for PRs
-# so they don't interfere with other people's work
-DISABLED_TESTS_CI_PR = \
- appdomain-threadpool-unload.exe \
- appdomain-thread-abort.exe
-
-DISABLED_TESTS_CI= \
- $(DISABLED_TESTS) \
- $(shell if [ "x$(CI_PR)" != "x" ]; then echo $(DISABLED_TESTS_CI_PR); fi) \
- main-returns-background-resetabort.exe \
- main-returns-background-abort-resetabort.exe \
- thread6.exe \
- assemblyresolve_event3.exe \
- delegate2.exe \
- finally_guard.exe \
- gc-altstack.exe \
- generic-xdomain.2.exe
-
-AOT_DISABLED_TESTS=constraints-load.exe
-
-# These only compile with MS CSC
-TEST_CSC_SRC= \
- vararg.cs
-
-# constraints-load.il:
-# Failed to load method 0x6000007 from '..../mono/tests/constraints-load.exe' due to
-# Could not resolve type with token 01000002 assembly:mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 type:System.BrokenIComparable`1 member:<none>.
-IL_SRC_MOBILE_STATIC_NOT_SUPPORTED= \
- constraints-load.il \
- bug-515884.il
-
-TEST_IL_SRC_UNIVERSAL= \
- field-access.il \
- method-access.il \
- ldftn-access.il \
- cpblkTest.il \
- vbinterface.il \
- calliTest.il \
- calliGenericTest.il \
- ckfiniteTest.il \
- fault-handler.il \
- locallocTest.il \
- initblkTest.il \
- qt-instance.il \
- vararg.il \
- bug-29859.il \
- bug-78549.il \
- static-fields-nonconst.il \
- reload-at-bb-end.il \
- test-enum-indstoreil.il \
- filter-bug.il \
- even-odd.il \
- bug-82022.il \
- vt-sync-method.il \
- enum_types.il \
- invalid-token.il \
- call_missing_method.il \
- call_missing_class.il \
- ldfld_missing_field.il \
- ldfld_missing_class.il \
- find-method.2.il \
- bug-79215.2.il \
- bug-79956.2.il \
- bug-327438.2.il \
- bug-387274.2.il \
- bug-426309.2.il \
- ldtoken_with_byref_typespec.2.il \
- resolve_method_bug.2.il \
- resolve_field_bug.2.il \
- resolve_type_bug.2.il \
- generics-sharing-other-exc.2.il \
- generic-ldobj.2.il \
- generic-mkrefany.2.il \
- generic-refanyval.2.il \
- generic-ldtoken.2.il \
- generic-ldtoken-method.2.il \
- generic-ldtoken-field.2.il \
- generic-tailcall.2.il \
- generic-tailcall2.2.il \
- generic-array-exc.2.il \
- generic-valuetype-newobj2.2.il \
- generic-valuetype-newobj.2.il \
- generic-constrained.2.il \
- generic-type-load-exception.2.il \
- bug-81466.il \
- bug457574.il \
- bug445361.il \
- bug-463303.il \
- bug469742.2.il \
- bug-528055.il \
- array_load_exception.il \
- bug-481403.il \
- interface-with-static-method.il \
- bug-633291.il \
- delegate-with-null-target.il \
- bug-318677.il \
- gsharing-valuetype-layout.il \
- invalid_generic_instantiation.il \
- bug-45841-fpstack-exceptions.il
-
-if INSTALL_MOBILE_STATIC
-TEST_IL_SRC= \
- $(TEST_IL_SRC_UNIVERSAL)
-else
-TEST_IL_SRC= \
- $(TEST_IL_SRC_MOBILE_STATIC_NOT_SUPPORTED) \
- $(TEST_IL_SRC_UNIVERSAL)
-endif
+ $(PROFILE_DISABLED_TESTS) \
+ $(if $(AOT),$(AOT_DISABLED_TESTS)) \
+ $(if $(CI),$(CI_DISABLED_TESTS)) \
+ $(if $(CI_PR),$CI_PR_DISABLED_TESTS) \
+ $(if $(LLVM),$(LLVM_DISABLED_TESTS))
# pre-requisite test sources: files that are not test themselves
# but that need to be compiled
PREREQ_IL_SRC=event-il.il module-cctor.il
PREREQ_CS_SRC=
PREREQ_IL_DLL_SRC=
-PREREQ_CS_DLL_SRC=TestingReferenceAssembly.cs TestingReferenceReferenceAssembly.cs
+PREREQ_CS_DLL_SRC=
PREREQSI_IL=$(PREREQ_IL_SRC:.il=.exe) \
$(PREREQ_IL_DLL_SRC:.il=.dll)
PREREQSI_CS=$(PREREQ_CS_SRC:.cs=.exe) \
$(PREREQ_CS_DLL_SRC:.cs=.dll)
-TESTSI_CS=$(TEST_CS_SRC:.cs=.exe)
-TESTSI_IL=$(TEST_IL_SRC:.il=.exe)
-TESTBS=$(BENCHSRC:.cs=.exe)
-STRESS_TESTS=$(STRESS_TESTS_SRC:.cs=.exe)
+TESTSI_CS=$(filter-out $(DISABLED_TESTS),$(TEST_CS_SRC:.cs=.exe))
+TESTSI_IL=$(filter-out $(DISABLED_TESTS),$(TEST_IL_SRC:.il=.exe))
+TESTBS=$(filter-out $(DISABLED_TESTS),$(BENCHSRC:.cs=.exe))
+STRESS_TESTS=$(filter-out $(DISABLED_TESTS),$(STRESS_TESTS_SRC:.cs=.exe))
PREREQSI_IL_AOT=$(PREREQ_IL_SRC:.il=.exe$(PLATFORM_AOT_SUFFIX)) \
$(PREREQ_IL_DLL_SRC:.il=.dll$(PLATFORM_AOT_SUFFIX))
%.exe: %.il
$(ILASM) -out:$@ $<
-if !INSTALL_MOBILE_STATIC
+if !FULL_AOT_TESTS
+if !HYBRID_AOT_TESTS
TEST_DRIVER_HARD_KILL_FEATURE=-r:Mono.Posix.dll
endif
+endif
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
TEST_DRIVER_DEPEND=TestDriver.dll$(PLATFORM_AOT_SUFFIX)
else
TEST_DRIVER_DEPEND=TestDriver.dll
%.dll: %.cs
$(MCS) -r:System.dll -target:library -out:$@ $<
+reference-loader.exe: reference-loader.cs TestingReferenceAssembly.dll TestingReferenceReferenceAssembly.dll $(TEST_DRIVER_DEPEND)
+ $(MCS) -r:System.dll -r:TestDriver.dll -r:TestingReferenceAssembly.dll -r:TestingReferenceReferenceAssembly.dll $(TEST_DRIVER_HARD_KILL_FEATURE) -out:$@ $(srcdir)/reference-loader.cs
+
+TestingReferenceAssembly.dll: TestingReferenceAssembly.cs
+ $(MCS) -target:library -out:$@ $<
+
TestingReferenceReferenceAssembly.dll: TestingReferenceReferenceAssembly.cs TestingReferenceAssembly.dll
$(MCS) -r:TestingReferenceAssembly.dll -target:library -out:$@ $<
bug-36848-a.dll$(PLATFORM_AOT_SUFFIX) \
bug-81691-b.dll$(PLATFORM_AOT_SUFFIX) \
bug-327438.2.exe$(PLATFORM_AOT_SUFFIX) \
-bug-81466-lib.dll$(PLATFORM_AOT_SUFFIX) \
-TestingReferenceAssembly.dll$(PLATFORM_AOT_SUFFIX) \
-TestingReferenceReferenceAssembly.dll$(PLATFORM_AOT_SUFFIX)
+bug-81466-lib.dll$(PLATFORM_AOT_SUFFIX)
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
prereqs: $(PREREQSI_IL_AOT) $(PREREQSI_CS_AOT) $(AOT_EXTRA_LIBS)
else
prereqs: $(PREREQSI_IL) $(PREREQSI_CS)
# Precompile the test assemblies in parallel
compile-tests:
$(MAKE) -j4 $(TESTSI_CS) $(TESTSI_IL) $(TESTBS) libtest.la $(PREREQSI_IL) $(PREREQSI_CS)
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(MAKE) $(PREREQSI_IL_AOT) $(PREREQSI_CS_AOT) $(AOT_EXTRA_LIBS)
endif
@failed=0; \
passed=0; \
if [ "x$$V" = "x1" ]; then dump_action="dump-output"; else dump_action="no-dump"; fi; \
- if [ "x$$CI" = "x1" ]; then disabled_tests="$(DISABLED_TESTS_CI)"; else disabled_tests="$(DISABLED_TESTS)"; fi; \
for i in $(TESTSI_CS); do \
- if $(srcdir)/test-driver '$(with_mono_path) $(TEST_PROG_RUN)' $$i "$${disabled_tests}" "$${dump_action}" $(RUNTIME_ARGS); \
+ if $(srcdir)/test-driver '$(with_mono_path) $(TEST_PROG_RUN)' $$i "$(DISABLED_TESTS)" "$${dump_action}" $(RUNTIME_ARGS); \
then \
passed=`expr $${passed} + 1`; \
else \
@failed=0; \
passed=0; \
if [ "x$$V" = "x1" ]; then dump_action="dump-output"; else dump_action="no-dump"; fi; \
- if [ "x$$CI" = "x1" ]; then disabled_tests="$(DISABLED_TESTS_CI)"; else disabled_tests="$(DISABLED_TESTS)"; fi; \
for i in $(TESTSI_IL); do \
- if $(srcdir)/test-driver '$(with_mono_path) $(TEST_PROG_RUN)' $$i "$${disabled_tests}" "$${dump_action}" $(RUNTIME_ARGS); \
+ if $(srcdir)/test-driver '$(with_mono_path) $(TEST_PROG_RUN)' $$i "$(DISABLED_TESTS)" "$${dump_action}" $(RUNTIME_ARGS); \
then \
passed=`expr $${passed} + 1`; \
else \
testb: $(TEST_PROG) $(TESTBS)
if [ "x$$V" = "x1" ]; then dump_action="dump-output"; else dump_action="no-dump"; fi; \
- if [ "x$$CI" = "x1" ]; then disabled_tests="$(DISABLED_TESTS_CI)"; else disabled_tests="$(DISABLED_TESTS)"; fi; \
for i in $(TESTBS); do \
- $(srcdir)/test-driver '$(with_mono_path) $(TEST_PROG_RUN)' $$i "$${disabled_tests}" "$${dump_action}" $(RUNTIME_ARGS); \
+ $(srcdir)/test-driver '$(with_mono_path) $(TEST_PROG_RUN)' $$i "$(DISABLED_TESTS)" "$${dump_action}" $(RUNTIME_ARGS); \
done
runtest: $(TESTSI_CS) $(TESTSI_IL) $(TESTBS) libtest.la $(PREREQSI_IL) $(PREREQSI_CS)
passed=0; \
failed_tests="";\
if [ "x$$V" = "x1" ]; then dump_action="dump-output"; else dump_action="no-dump"; fi; \
- if [ "x$$CI" = "x1" ]; then disabled_tests="$(DISABLED_TESTS_CI)"; else disabled_tests="$(DISABLED_TESTS)"; fi; \
rm -f testlist testlist.sorted; \
for i in $(TESTSI_CS) $(TESTBS) $(TESTSI_IL); do echo $${i} >> testlist; sort testlist > testlist.sorted; done; \
for i in `cat testlist.sorted`; do \
rm -f $${i}.so; \
- if [ x$(AOT) = x1 ]; then if echo $(AOT_DISABLED_TESTS) | grep -v -q $${i}; then $(with_mono_path) $(JITTEST_PROG_RUN) --aot --debug $${i} > $${i}.aotlog 2>&1 || exit 1; fi; fi; \
- if $(srcdir)/test-driver '$(with_mono_path) $(JITTEST_PROG_RUN)' $$i "$${disabled_tests}" "$${dump_action}" $(RUNTIME_ARGS); \
+ $(with_mono_path) $(JITTEST_PROG_RUN) --aot --debug $${i} > $${i}.aotlog 2>&1 || exit 1; \
+ if $(srcdir)/test-driver '$(with_mono_path) $(JITTEST_PROG_RUN)' $$i "$(DISABLED_TESTS)" "$${dump_action}" $(RUNTIME_ARGS); \
then \
passed=`expr $${passed} + 1`; \
else \
fi
runtest-managed: test-runner.exe $(TESTSI_CS) $(TESTSI_IL) $(TESTBS) libtest.la $(PREREQSI_IL) $(PREREQSI_CS)
- @if [ "x$$CI" = "x1" ]; then disabled_tests="$(DISABLED_TESTS_CI)"; else disabled_tests="$(DISABLED_TESTS)"; fi; \
- $(RUNTIME) --debug $(TEST_RUNNER) $(TEST_RUNNER_ARGS) -j a --testsuite-name "runtime" --timeout 300 --disabled "$${disabled_tests}" $(TESTSI_CS) $(TESTBS) $(TESTSI_IL)
+ $(RUNTIME) --debug $(TEST_RUNNER) $(TEST_RUNNER_ARGS) -j a --testsuite-name "runtime" --timeout 300 --disabled "$(DISABLED_TESTS)" $(TESTSI_CS) $(TESTBS) $(TESTSI_IL)
runtest-managed-serial: test-runner.exe $(TESTSI_CS) $(TESTSI_IL) $(TESTBS) libtest.la $(PREREQSI_IL) $(PREREQSI_CS)
- @if [ "x$$CI" = "x1" ]; then disabled_tests="$(DISABLED_TESTS_CI)"; else disabled_tests="$(DISABLED_TESTS)"; fi; \
- $(RUNTIME) --debug $(TEST_RUNNER) $(TEST_RUNNER_ARGS) -j 1 --testsuite-name "runtime" --disabled "$${disabled_tests}" $(TESTSI_CS) $(TESTBS) $(TESTSI_IL)
+ $(RUNTIME) --debug $(TEST_RUNNER) $(TEST_RUNNER_ARGS) -j 1 --testsuite-name "runtime" --disabled "$(DISABLED_TESTS)" $(TESTSI_CS) $(TESTBS) $(TESTSI_IL)
testjit:
@if test x$(M) != x0; then $(MAKE) runtest-managed; else $(MAKE) runtest; fi
$(MAKE) sgen-bridge2-tests
endif
-SGEN_REGULAR_TESTS_MOBILE_STATIC_NOT_SUPPORTED = \
+SGEN_REGULAR_TESTS_SRC = \
+ finalizer-wait.cs \
+ critical-finalizers.cs \
+ sgen-descriptors.cs \
+ sgen-gshared-vtype.cs \
+ sgen-weakref-stress.cs \
+ sgen-cementing-stress.cs \
+ sgen-case-23400.cs \
+ sgen-new-threads-dont-join-stw.cs \
+ sgen-new-threads-dont-join-stw-2.cs \
+ sgen-new-threads-collect.cs \
+ gc-graystack-stress.cs \
+ bug-17590.cs \
+ sgen-domain-unload.cs \
+ sgen-domain-unload-2.cs
+
+SGEN_REGULAR_DISABLED_TESTS=
+
+if FULL_AOT_TESTS
+SGEN_REGULAR_DISABLED_TESTS += \
sgen-domain-unload.exe \
sgen-domain-unload-2.exe
-
-SGEN_REGULAR_TESTS_UNIVERSAL = \
- finalizer-wait.exe \
- critical-finalizers.exe \
- sgen-descriptors.exe \
- sgen-gshared-vtype.exe \
- sgen-weakref-stress.exe \
- sgen-cementing-stress.exe \
- sgen-case-23400.exe \
- sgen-new-threads-dont-join-stw.exe \
- sgen-new-threads-dont-join-stw-2.exe \
- sgen-new-threads-collect.exe \
- gc-graystack-stress.exe \
- bug-17590.exe
-
-if INSTALL_MOBILE_STATIC
-SGEN_REGULAR_TESTS= \
- $(SGEN_REGULAR_TESTS_UNIVERSAL)
-else
-SGEN_REGULAR_TESTS= \
- $(SGEN_REGULAR_TESTS_MOBILE_STATIC_NOT_SUPPORTED) \
- $(SGEN_REGULAR_TESTS_UNIVERSAL)
endif
+SGEN_REGULAR_TESTS=$(filter-out $(SGEN_REGULAR_DISABLED_TESTS),$(SGEN_REGULAR_TESTS_SRC:.cs=.exe))
+
sgen-regular-tests: $(SGEN_REGULAR_TESTS)
$(MAKE) sgen-regular-tests-ms
$(MAKE) sgen-regular-tests-ms-conc
+ $(MAKE) sgen-regular-tests-ms-conc-par
$(MAKE) sgen-regular-tests-ms-conc-split
$(MAKE) sgen-regular-tests-ms-split
$(MAKE) sgen-regular-tests-ms-conc-split-95
MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --timeout 900 $(SGEN_REGULAR_TESTS)
sgen-regular-tests-ms-conc: $(SGEN_REGULAR_TESTS) test-runner.exe
MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep-conc" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --timeout 900 $(SGEN_REGULAR_TESTS)
+sgen-regular-tests-ms-conc-par: $(SGEN_REGULAR_TESTS) test-runner.exe
+ MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep-conc-par" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --timeout 900 $(SGEN_REGULAR_TESTS)
sgen-regular-tests-ms-conc-split: $(SGEN_REGULAR_TESTS) test-runner.exe
MONO_ENV_OPTIONS="--gc=sgen" MONO_GC_DEBUG="" MONO_GC_PARAMS="major=marksweep-conc,minor=split" $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) --testsuite-name $@ --disabled "$(DISABLED_TESTS)" --timeout 900 $(SGEN_REGULAR_TESTS)
sgen-regular-tests-ms-split: $(SGEN_REGULAR_TESTS) test-runner.exe
passed=0; \
failed_tests="";\
profile=$(DEFAULT_PROFILE); \
- tmpfile=`mktemp -t mono_aot_output` || exit 1; \
+ tmpfile=`mktemp -t mono_aot_outputXXXXXX` || exit 1; \
rm -f test-aot-$${name}.stdout test-aot-$${name}.stderr; \
for assembly in $(mcs_topdir)/class/lib/$$profile/*.dll ; do \
asm_name=`basename $$assembly`; \
EXTRA_DIST += test-inline-call-stack-library.cs test-inline-call-stack.cs
test-inline-call-stack-library.dll: $(TEST_DRIVER_DEPEND) $(srcdir)/test-inline-call-stack-library.cs
$(MCS) -t:library -out:test-inline-call-stack-library.dll $(srcdir)/test-inline-call-stack-library.cs
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
$(MCS) -target:library -out:bug-81673-interface.dll $(srcdir)/bug-81673-interface.cs
$(MCS) -out:bug-81673.exe -r:bug-81673-interface.dll $(srcdir)/bug-81673.cs
$(MCS) -define:WITH_STOP -target:library -out:bug-81673-interface.dll $(srcdir)/bug-81673-interface.cs
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
$(MCS) -target:library -out:bug-36848-a.dll $(srcdir)/bug-36848-a.cs
$(MCS) -r:bug-36848-a.dll -out:bug-36848.exe $(srcdir)/bug-36848.cs
$(MCS) -target:library -out:bug-36848-a.dll $(srcdir)/bug-36848-a.cs /define:WITH_STOP
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += bug-81466-lib.il
bug-81466-lib.dll: bug-81466-lib.il
$(ILASM) /dll /output:bug-81466-lib.dll $(srcdir)/bug-81466-lib.il
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
bug-81466.exe: bug-81466.il bug-81466-lib.dll
EXTRA_DIST += bug-324535-il.il
bug-324535-il.dll : bug-324535-il.il
$(ILASM) /dll /output:bug-324535-il.dll $(srcdir)/bug-324535-il.il
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
bug-324535.exe : bug-324535.cs bug-324535-il.dll
EXTRA_DIST += custom-modifiers.2.cs custom-modifiers-lib.il
custom-modifiers-lib.dll: custom-modifiers-lib.il
$(ILASM) /dll /output:custom-modifiers-lib.dll $(srcdir)/custom-modifiers-lib.il
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
custom-modifiers.2.exe: custom-modifiers.2.cs custom-modifiers-lib.dll
EXTRA_DIST += bug-382986-lib.cs
bug-382986-lib.dll: bug-382986-lib.cs
$(MCS) -target:library -out:$@ $(srcdir)/bug-382986-lib.cs
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += generic-unboxing.2.il
generic-unboxing.2.dll : generic-unboxing.2.il
$(ILASM) /dll /output:generic-unboxing.2.dll $(srcdir)/generic-unboxing.2.il
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += generic-boxing.2.il
generic-boxing.2.dll : generic-boxing.2.il generic-unboxing.2.dll
$(ILASM) /dll /output:generic-boxing.2.dll $(srcdir)/generic-boxing.2.il
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
EXTRA_DIST += generic-delegate2.2.cs generic-delegate2-lib.2.il
generic-delegate2-lib.2.dll : generic-delegate2-lib.2.il
$(ILASM) /dll /output:$@ $(srcdir)/generic-delegate2-lib.2.il
-if INSTALL_MOBILE_STATIC
+if FULL_AOT_TESTS
$(RUNTIME) $(AOT_BUILD_FLAGS) $@
endif
generic-delegate2.2.exe : generic-delegate2.2.cs generic-delegate2-lib.2.dll
gshared-aot:
@$(MAKE) AOT=1 gshared
-GSHARED_TESTS_MOBILE_STATIC_NOT_SUPPORTED = \
- generic-type-builder.2.exe
-
-GSHARED_TESTS_UNIVERSAL = \
- generics-sharing.2.exe shared-generic-methods.2.exe \
- shared-generic-synchronized.2.exe generic-initobj.2.exe \
- generics-sharing-other-exc.2.exe generic-box.2.exe \
- generic-unbox.2.exe generic-delegate.2.exe generic-sizeof.2.exe \
- generic-ldobj.2.exe generic-mkrefany.2.exe \
- generic-refanyval.2.exe generic-ldtoken.2.exe \
- generic-ldtoken-method.2.exe generic-ldtoken-field.2.exe \
- generic-virtual.2.exe generic-tailcall.2.exe \
- generic-interface-methods.2.exe generic-array-type.2.exe \
- generic-method-patching.2.exe generic-static-methods.2.exe \
- generic-null-call.2.exe generic-tailcall2.2.exe \
- generic-array-exc.2.exe generic-special.2.exe \
- generic-exceptions.2.exe generic-delegate2.2.exe \
- generic-virtual2.2.exe generic-valuetype-interface.2.exe \
- generic-valuetype-newobj.2.exe generic-valuetype-newobj2.2.exe \
- generic-getgenericarguments.2.exe \
- generic-synchronized.2.exe generic-delegate-ctor.2.exe \
- generic-constrained.2.exe bug-431413.2.exe \
- generic-virtual-invoke.2.exe generic-typedef.2.exe \
- generic-marshalbyref.2.exe bug-459285.2.exe bug-461198.2.exe \
- generic-sealed-virtual.2.exe generic-system-arrays.2.exe \
- generic-stack-traces.2.exe generic-stack-traces2.2.exe \
- bug-472600.2.exe bug-473482.2.exe bug-473999.2.exe \
- bug-479763.2.exe \
- generic-type-load-exception.2.exe bug-616463.exe \
- bug-1147.exe
-
-if INSTALL_MOBILE_STATIC
-GSHARED_TESTS= \
- $(GSHARED_TESTS_UNIVERSAL)
-else
-GSHARED_TESTS= \
- $(GSHARED_TESTS_MOBILE_STATIC_NOT_SUPPORTED) \
- $(GSHARED_TESTS_UNIVERSAL)
+GSHARED_TESTS_SRC = \
+ generics-sharing.2.cs \
+ shared-generic-methods.2.cs \
+ shared-generic-synchronized.2.cs \
+ generic-initobj.2.cs \
+ generics-sharing-other-exc.2.cs \
+ generic-box.2.cs \
+ generic-unbox.2.cs \
+ generic-delegate.2.cs \
+ generic-sizeof.2.cs \
+ generic-ldobj.2.cs \
+ generic-mkrefany.2.cs \
+ generic-refanyval.2.cs \
+ generic-ldtoken.2.cs \
+ generic-ldtoken-method.2.cs \
+ generic-ldtoken-field.2.cs \
+ generic-virtual.2.cs \
+ generic-tailcall.2.cs \
+ generic-interface-methods.2.cs \
+ generic-array-type.2.cs \
+ generic-method-patching.2.cs \
+ generic-static-methods.2.cs \
+ generic-null-call.2.cs \
+ generic-tailcall2.2.cs \
+ generic-array-exc.2.cs \
+ generic-special.2.cs \
+ generic-exceptions.2.cs \
+ generic-delegate2.2.cs \
+ generic-virtual2.2.cs \
+ generic-valuetype-interface.2.cs \
+ generic-valuetype-newobj.2.cs \
+ generic-valuetype-newobj2.2.cs \
+ generic-getgenericarguments.2.cs \
+ generic-synchronized.2.cs \
+ generic-delegate-ctor.2.cs \
+ generic-constrained.2.cs \
+ bug-431413.2.cs \
+ generic-virtual-invoke.2.cs \
+ generic-typedef.2.cs \
+ generic-marshalbyref.2.cs \
+ bug-459285.2.cs \
+ bug-461198.2.cs \
+ generic-sealed-virtual.2.cs \
+ generic-system-arrays.2.cs \
+ generic-stack-traces.2.cs \
+ generic-stack-traces2.2.cs \
+ bug-472600.2.cs \
+ bug-473482.2.cs \
+ bug-473999.2.cs \
+ bug-479763.2.cs \
+ generic-type-load-exception.2.cs \
+ bug-616463.cs \
+ bug-1147.cs \
+ generic-type-builder.2.cs
+
+GSHARED_DISABLED_TESTS=
+
+if FULL_AOT_TESTS
+GSHARED_DISABLED_TESTS += \
+ generic-type-builder.2.exe
endif
+GSHARED_TESTS=$(filter-out $(GSHARED_DISABLED_TESTS),$(GSHARED_TESTS_SRC:.cs=.exe))
+
test-generic-sharing-normal: $(GSHARED_TESTS)
@for fn in $+ ; do \
echo "Testing $$fn ..."; \
done
test-generic-sharing-managed: test-runner.exe $(GSHARED_TESTS)
- @$(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) -j a --testsuite-name "gshared" --disabled "$(DISABLED_TESTS)" --opt-sets "gshared gshared,shared gshared,-inline gshared,-inline,shared" $(GSHARED_TESTS)
+ $(Q) $(RUNTIME) $(TEST_RUNNER) $(TEST_RUNNER_ARGS) -j a --testsuite-name "gshared" --disabled "$(DISABLED_TESTS)" --opt-sets "gshared gshared,shared gshared,-inline gshared,-inline,shared" $(GSHARED_TESTS)
if NACL_CODEGEN
test-generic-sharing:
unhandled-exception-4.exe \
unhandled-exception-5.exe \
unhandled-exception-6.exe \
- unhandled-exception-7.exe
+ unhandled-exception-7.exe \
+ unhandled-exception-8.exe
test-unhandled-exception-2: $(UNHANDLED_EXCEPTION_1_TESTS) $(UNHANDLED_EXCEPTION_255_TESTS)
$(MAKE) test-unhandled-exception-2-1-with-managed-handler
coreclr-gcstress:
$(MAKE) -C $(mono_build_root)/acceptance-tests coreclr-gcstress
+# Tests for the Mono lldb plugin
+EXTRA_DIST += test_lldb.py test-lldb.cs
+test-lldb: test-lldb.exe
+ python test_lldb.py $(JITTEST_PROG)
+
noinst_LTLIBRARIES = libtest.la
AM_CPPFLAGS = $(GLIB_CFLAGS)