MINI_RUNTIME = MONO_PATH=$(CLASS) $(RUNTIME_EXECUTABLE)
RUNTIME_AOTCHECK = MONO_PATH="$(CLASS)$(PLATFORM_PATH_SEPARATOR)." $(RUNTIME_EXECUTABLE)
-CSC = $(mcs_topdir)/class/lib/build/mcs.exe
MCS = CSC_SDK_PATH_DISABLED= $(MINI_RUNTIME) $(CSC) -unsafe -nowarn:0162 -nologo -noconfig -r:$(CLASS)/mscorlib.dll -r:$(CLASS)/System.dll -r:$(CLASS)/System.Core.dll
ILASM = $(MINI_RUNTIME) $(CLASS)/ilasm.exe
mini-darwin.c
windows_sources = \
- mini-windows.c
+ mini-windows.c \
+ mini-windows.h \
+ mini-windows-dllmain.c
posix_sources = \
mini-posix.c
alias-analysis.c \
mini-cross-helpers.c \
arch-stubs.c \
- llvm-runtime.h
+ llvm-runtime.h \
+ type-checking.c
test_sources = \
basic-calls.cs \
generics.cs \
generics-variant-types.il\
basic-simd.cs \
+ basic-vectors.cs \
aot-tests.cs \
gc-test.cs \
gshared.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
+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 INSTALL_MOBILE_STATIC
+if INSTALL_AOT_ONLY
regtests= \
$(regtests_UNIVERSAL)
else
regtests= \
$(regtests_UNIVERSAL) \
- $(regtests_MOBILE_STATIC_BLACKLIST)
+ $(regtests_AOT_ONLY_BLACKLIST)
endif
if X86
basic-simd.exe: basic-simd.cs TestDriver.dll
$(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:$(CLASS)/Mono.Simd.dll
+basic-vectors.exe: basic-vectors.cs TestDriver.dll
+ $(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:$(CLASS)/System.Numerics.dll
+
nacl.exe: nacl.cs TestDriver.dll
$(MCS) -out:$@ $(CSFLAGS) $< -r:TestDriver.dll -r:$(CLASS)/Mono.Simd.dll
%.exe: %.il
$(ILASM) -output=$@ $<
-TestDriver.dll: $(srcdir)/TestDriver.cs
- $(MCS) -out:$@ -target:library $<
+TestDriver.dll: $(srcdir)/TestDriver.cs $(srcdir)/TestHelpers.cs
+ $(MCS) -out:$@ -target:library $^
generics-variant-types.dll: generics-variant-types.il
$(ILASM) -dll -output=$@ $<
checktests: $(regtests)
for i in $(regtests); do $(MINI_RUNTIME) $$i; done
-rcheck: mono $(regtests)
-if NACL_CODEGEN
- for i in $(regtests); do echo "running test $$i"; $(MINI_RUNTIME) $$i --exclude 'NaClDisable' || exit 1; done
-else
- -($(MINI_RUNTIME) --regression $(regtests); echo $$? > regressionexitcode.out) | $(srcdir)/emitnunit.pl
- exit $$(cat regressionexitcode.out)
-endif
+rcheck-nunit: mono $(regtests)
+ $(MINI_RUNTIME) --regression $(regtests) > regressiontests.out 2>&1; cat regressiontests.out; \
+ if grep -q "100% pass" regressiontests.out; then successbool=True; failurescount=0; else successbool=False; failurescount=1; fi; \
+ echo "<?xml version='1.0' encoding='utf-8'?>\
+ <test-results failures='$$failurescount' total='1' not-run='0' name='regression-tests.dummy' date='$$(date +%F)' time='$$(date +%T)'>\
+ <test-suite name='regression-tests.dummy' success='$$successbool' time='0'>\
+ <results><test-case name='MonoTests.regressions.100percentsuccess' executed='True' success='$$successbool' time='0'>" > TestResult-regression.xml; \
+ if [ "$$successbool" = "False" ]; then echo "<failure><message><![CDATA[$$(cat regressiontests.out)]]></message><stack-trace></stack-trace></failure>" >> TestResult-regression.xml; fi; \
+ echo "</test-case></results>\
+ </test-suite>\
+ </test-results>" >> TestResult-regression.xml; exit $$failurescount
-rcheck2: mono $(regtests)
+rcheck: mono $(regtests)
$(MINI_RUNTIME) --regression $(regtests)
if ARM
fullaot_regtests = $(regtests) aot-tests.exe $(if $(GSHAREDVT),gshared.exe)
# Skip aoting the tests that aren't compiled
-# on the mobile_static profile because they're skipped
+# on the aot_only profile because they're skipped
# on mobile profiles
-FULLAOT_LIBS_MOBILE_STATIC_BLACKLIST = \
+FULLAOT_LIBS_AOT_ONLY_BLACKLIST = \
Mono.Posix.dll \
- System.Configuration.dll \
- Mono.Simd.dll
+ System.Configuration.dll
FULLAOT_LIBS_UNIVERSAL = \
mscorlib.dll \
System.dll \
System.Xml.dll \
System.Security.dll \
- Mono.Dynamic.Interpreter.dll \
+ Mono.Simd.dll \
Mono.Security.dll
-if INSTALL_MOBILE_STATIC
+if INSTALL_AOT_ONLY
FULLAOT_LIBS= \
+ Mono.Dynamic.Interpreter.dll \
$(FULLAOT_LIBS_UNIVERSAL)
else
FULLAOT_LIBS= \
$(FULLAOT_LIBS_UNIVERSAL) \
- $(FULLAOT_LIBS_MOBILE_STATIC_BLACKLIST)
+ $(FULLAOT_LIBS_AOT_ONLY_BLACKLIST)
endif
FULLAOT_TMP_DIR=$(top_builddir)/mono/mini/fullaot-tmp
fullaotcheck: $(mono) $(fullaot_regtests)
rm -rf $(FULLAOT_TMP_DIR)
mkdir $(FULLAOT_TMP_DIR)
- $(MAKE) fullaot-libs AOT_FLAGS="full,$(MONO_FULLAOT_ADDITIONAL_ARGS)" GSHAREDVT=$(GSHAREDVT)
+ $(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)" $(FULLAOT_TMP_DIR)/{generics-variant-types.dll,TestDriver.dll,*.exe} || exit 1
+ 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
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
llvmonlycheck: mono $(llvmonly_regtests)
rm -rf fullaot-tmp
mkdir fullaot-tmp
- $(MAKE) fullaot-libs AOT_FLAGS="llvmonly,$(MONO_FULLAOT_ADDITIONAL_ARGS)"
+ $(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
ln -s $$PWD/mono fullaot-tmp/
docu: mini.sgm
docbook2txt mini.sgm
-check-local: rcheck check-seq-points
+# We need these because automake can't process normal make conditionals
+check_local_targets = $(if $(EMIT_NUNIT), rcheck-nunit, rcheck)
+
+check-local: $(check_local_targets)
clean-local:
rm -f mono a.out gmon.out *.o buildver-boehm.h buildver-sgen.h test.exe regressionexitcode.out TestResult-op_il_seq_point.xml*
CLEANFILES= $(BUILT_SOURCES) *.exe *.dll
EXTRA_DIST = TestDriver.cs \
+ TestHelpers.cs \
genmdesc.pl \
- emitnunit.pl \
$(test_sources) \
$(x86_sources) cpu-x86.md \
$(amd64_sources) cpu-amd64.md \