$(monodir)/mono/utils/libmonoutils.la \
$(GLIB_LIBS) $(LIBICONV)
+if FULL_AOT_TESTS
+# if the tests are going to run with framework assemblies compiled with
+# -d:MOBILE, tell the runtime to remap framework assemblies using the mobile
+# runtime info
+MOBILE_RUNTIME_ARG=--runtime=mobile
+else
+MOBILE_RUNTIME_ARG=
+endif
+
CLASS=$(mcs_topdir)/class/lib/$(DEFAULT_PROFILE)
RUNTIME_EXECUTABLE = $(if $(BOEHM),$(top_builddir)/mono/mini/mono-boehm,$(top_builddir)/runtime/mono-wrapper)
-MINI_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME_EXECUTABLE)
+MINI_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME_EXECUTABLE) $(MOBILE_RUNTIME_ARG)
TOOLS_RUNTIME = MONO_PATH=$(mcs_topdir)/class/lib/build $(top_builddir)/runtime/mono-wrapper
-INTERPRETER_RUNTIME = $(MINI_RUNTIME) --interpreter
+INTERP_RUNTIME = $(MINI_RUNTIME) --interpreter
RUNTIME_AOTCHECK = MONO_PATH="$(CLASS)$(PLATFORM_PATH_SEPARATOR)." $(RUNTIME_EXECUTABLE)
MCS = CSC_SDK_PATH_DISABLED= $(TOOLS_RUNTIME) $(CSC) -unsafe -nowarn:0162 -nologo -noconfig -r:$(CLASS)/mscorlib.dll -r:$(CLASS)/System.dll -r:$(CLASS)/System.Core.dll
windows_sources = \
mini-windows.c \
mini-windows.h \
- mini-windows-dllmain.c
+ mini-windows-dllmain.c \
+ mini-windows-dlldac.c
posix_sources = \
mini-posix.c
endif
if ENABLE_INTERPRETER
-interpreter_sources = \
- interpreter/hacks.h \
- interpreter/interp.h \
- interpreter/interp.c \
- interpreter/mintops.h \
- interpreter/mintops.def \
- interpreter/mintops.c \
- interpreter/transform.c
+interp_sources = \
+ interp/hacks.h \
+ interp/interp.h \
+ interp/interp-internals.h \
+ interp/interp.c \
+ interp/mintops.h \
+ interp/mintops.def \
+ interp/mintops.c \
+ interp/transform.c
endif
if ENABLE_LLVM
llvm-runtime.h \
type-checking.c \
lldb.h \
- lldb.c
+ lldb.c \
+ memory-access.c
test_sources = \
basic-calls.cs \
basic-vectors.cs \
aot-tests.cs \
gc-test.cs \
- gshared.cs
-
+ gshared.cs \
+ mixed.cs
-regtests_UNIVERSAL=basic.exe basic-float.exe basic-long.exe basic-calls.exe objects.exe arrays.exe basic-math.exe exceptions.exe iltests.exe devirtualization.exe generics.exe basic-simd.exe basic-vectors.exe
-iregtests=basic.exe basic-float.exe basic-long.exe basic-calls.exe
+if NACL_CODEGEN
+test_sources += nacl.cs
+endif
-if INSTALL_TESTING_AOT_FULL
-regtests= \
- $(regtests_UNIVERSAL)
+regtests_UNIVERSAL = \
+ basic.exe \
+ basic-float.exe \
+ basic-long.exe \
+ basic-calls.exe \
+ objects.exe \
+ arrays.exe \
+ basic-math.exe \
+ exceptions.exe \
+ iltests.exe \
+ devirtualization.exe \
+ generics.exe \
+ basic-simd.exe \
+ basic-vectors.exe
if NACL_CODEGEN
-test_sources += nacl.cs
-regtests += nacl.exe
+regtests_UNIVERSAL += nacl.exe
endif
-else
-regtests= \
- $(regtests_UNIVERSAL) \
- $(regtests_TESTING_AOT_FULL_BLACKLIST)
+regtests_DISABLED =
+
+if FULL_AOT_TESTS
+regtests_DISABLED +=
endif
+regtests = $(filter-out $(regtests_DISABLED),$(regtests_UNIVERSAL))
+
if X86
arch_sources = $(x86_sources)
arch_built=cpu-x86.h
monobin_platform_ldflags=-framework CoreFoundation -framework Foundation
endif
-libmini_la_SOURCES = $(common_sources) $(llvm_sources) $(llvm_runtime_sources) $(interpreter_sources) $(arch_sources) $(os_sources)
+libmini_la_SOURCES = $(common_sources) $(llvm_sources) $(llvm_runtime_sources) $(interp_sources) $(arch_sources) $(os_sources)
libmini_la_CFLAGS = $(mono_CFLAGS)
libmonoboehm_2_0_la_SOURCES =
libmonoinclude_HEADERS = jit.h
-CSFLAGS = -unsafe -nowarn:0219,0169,0414,0649
+CSFLAGS = -unsafe -nowarn:0219,0169,0414,0649,0618
basic-simd.exe: basic-simd.cs TestDriver.dll
$(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:$(CLASS)/Mono.Simd.dll
rcheck: mono $(regtests)
$(MINI_RUNTIME) --regression $(regtests)
-richeck: mono $(iregtests)
- $(INTERPRETER_RUNTIME) --regression $(iregtests)
+richeck: mono $(regtests)
+ $(INTERP_RUNTIME) --regression $(regtests)
+
+mixedcheck: mono mixed.exe
+ $(MINI_RUNTIME) --interp=jit=JitClass mixed.exe
if ARM
check-seq-points:
fullaot_regtests = $(regtests) aot-tests.exe $(if $(GSHAREDVT),gshared.exe)
-# Skip aoting the tests that aren't compiled
-# on the testing_aot_full profile because they're skipped
-# on mobile profiles
-FULLAOT_LIBS_TESTING_AOT_FULL_BLACKLIST = \
- Mono.Posix.dll \
- System.Configuration.dll
-
FULLAOT_LIBS_UNIVERSAL = \
mscorlib.dll \
System.Core.dll \
Mono.Simd.dll \
Mono.Security.dll \
System.Numerics.dll \
- System.Numerics.Vectors.dll
+ System.Numerics.Vectors.dll \
+ Mono.Posix.dll \
+ System.Configuration.dll
-if INSTALL_TESTING_AOT_FULL
-FULLAOT_LIBS= \
- $(FULLAOT_LIBS_UNIVERSAL)
-else
-FULLAOT_LIBS= \
- $(FULLAOT_LIBS_UNIVERSAL) \
- $(FULLAOT_LIBS_TESTING_AOT_FULL_BLACKLIST)
+FULLAOT_LIBS_DISABLED =
+
+if FULL_AOT_TESTS
+# Skip aoting the tests that aren't compiled
+# on the full aot profiles because they're skipped
+# on mobile profiles
+FULLAOT_LIBS_DISABLED += \
+ Mono.Posix.dll \
+ System.Configuration.dll
endif
+FULLAOT_LIBS = $(filter-out $(FULLAOT_LIBS_DISABLED),$(FULLAOT_LIBS_UNIVERSAL))
+
FULLAOT_TMP_DIR=$(top_builddir)/mono/mini/fullaot-tmp
# This currently only works on amd64/arm
mkdir $(FULLAOT_TMP_DIR)
$(MAKE) fullaot-libs AOT_FLAGS="full,$(MONO_FULLAOT_ADDITIONAL_ARGS)$(INVARIANT_AOT_OPTIONS)" GSHAREDVT=$(GSHAREDVT)
cp $(regtests) $(fullaot_regtests) generics-variant-types.dll TestDriver.dll $(FULLAOT_TMP_DIR)/
- MONO_PATH=$(FULLAOT_TMP_DIR) $(top_builddir)/runtime/mono-wrapper $(LLVM_AOT_RUNTIME_OPTS) $(GSHAREDVT_RUNTIME_OPTS) --aot="full,$(MONO_FULLAOT_ADDITIONAL_ARGS)$(INVARIANT_AOT_OPTIONS)" $(FULLAOT_TMP_DIR)/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
+ MONO_PATH=$(FULLAOT_TMP_DIR) $(top_builddir)/runtime/mono-wrapper $(MOBILE_RUNTIME_ARG) $(LLVM_AOT_RUNTIME_OPTS) $(GSHAREDVT_RUNTIME_OPTS) --aot="full,$(MONO_FULLAOT_ADDITIONAL_ARGS)$(INVARIANT_AOT_OPTIONS)" $(FULLAOT_TMP_DIR)/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
ln -s $(if $(MONO_EXECUTABLE),$(MONO_EXECUTABLE),$$PWD/mono) $(FULLAOT_TMP_DIR)/
- for i in $(fullaot_regtests); do echo $$i; MONO_PATH=$(FULLAOT_TMP_DIR) $(top_builddir)/runtime/mono-wrapper --full-aot $(FULLAOT_TMP_DIR)/$$i --exclude '!FULLAOT' $(ARCH_FULLAOT_EXCLUDE) || exit 1; done
+ for i in $(fullaot_regtests); do echo $$i; MONO_PATH=$(FULLAOT_TMP_DIR) $(top_builddir)/runtime/mono-wrapper $(MOBILE_RUNTIME_ARG) --full-aot $(FULLAOT_TMP_DIR)/$$i --exclude '!FULLAOT' $(ARCH_FULLAOT_EXCLUDE) || exit 1; done
# This can run in parallel
fullaot-libs: $(patsubst %,fullaot-tmp/%.dylib,$(FULLAOT_LIBS))
fullaot-tmp/%.dylib: $(CLASS)/%
cp $(CLASS)/$* fullaot-tmp/
mkdir fullaot-tmp/$*-tmp
- MONO_PATH="fullaot-tmp/$(PLATFORM_PATH_SEPARATOR)$(CLASS)" $(top_builddir)/runtime/mono-wrapper $(if $(GSHAREDVT),-O=gsharedvt) --aot=$(AOT_FLAGS),temp-path=fullaot-tmp/$*-tmp fullaot-tmp/$*
+ MONO_PATH="fullaot-tmp/$(PLATFORM_PATH_SEPARATOR)$(CLASS)" $(top_builddir)/runtime/mono-wrapper $(MOBILE_RUNTIME_ARG) $(if $(GSHAREDVT),-O=gsharedvt) --aot=$(AOT_FLAGS),temp-path=fullaot-tmp/$*-tmp fullaot-tmp/$*
rm -rf fullaot-tmp/$*-tmp
llvmfullaotcheck:
mkdir fullaot-tmp
$(MAKE) fullaot-libs AOT_FLAGS="llvmonly,$(MONO_FULLAOT_ADDITIONAL_ARGS)$(INVARIANT_AOT_OPTIONS)"
cp $(llvmonly_regtests) generics-variant-types.dll TestDriver.dll fullaot-tmp/
- MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper --aot=llvmonly fullaot-tmp/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
+ MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper $(MOBILE_RUNTIME_ARG) --aot=llvmonly fullaot-tmp/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
ln -s $$PWD/mono fullaot-tmp/
- for i in $(llvmonly_regtests); do echo $$i; MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper --llvmonly fullaot-tmp/$$i --exclude '!BITCODE' || exit 1; done
+ for i in $(llvmonly_regtests); do echo $$i; MONO_PATH=fullaot-tmp $(top_builddir)/runtime/mono-wrapper $(MOBILE_RUNTIME_ARG) --llvmonly fullaot-tmp/$$i --exclude '!BITCODE' || exit 1; done
gccheck: gc-test.exe
MONO_GC_PARAMS=stack-mark=precise MONO_GC_DEBUG=clear-at-gc ./mono-sgen gc-test.exe