Imported Upstream version 6.0.0.172

Former-commit-id: f3cc9b82f3e5bd8f0fd3ebc098f789556b44e9cd
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2019-04-12 14:10:50 +00:00
parent 8016999e4d
commit 64ac736ec5
32155 changed files with 3981439 additions and 75368 deletions

View File

@@ -8,20 +8,29 @@ LIB_REFS = System System.Core System.Xml Mono.Cecil
TEST_CASES := \
mscorlib/test-array.cs \
mscorlib/test-calendar-01.cs \
mscorlib/test-calendar-02.cs \
mscorlib/test-exception-01.cs \
mscorlib/test-locale-01.cs \
mscorlib/test-methodimpl-01.cs \
mscorlib/test-reflection-01.cs \
mscorlib/test-reflection-02.cs \
mscorlib/test-reflection-03.cs \
mscorlib/test-reflection-04.cs \
mscorlib/test-string-01.cs \
mscorlib/test-string-02.cs \
mscorlib/test-string-03.cs \
mscorlib/test-task-01.cs \
# mscorlib/test-marshaling.cs \
System/test-security.cs
System/test-security.cs \
System.Core/test-plinq-01.cs
# Disabled tests
# mscorlib/test-marshaling.cs
ifdef MOBILE_PROFILE
TEST_CASES += \
mscorlib/test-crypto-01.cs
mscorlib/test-crypto-01.cs \
System.Net.Http/test-handler-01.cs
endif
ifndef AOT_FRIENDLY_PROFILE
@@ -30,8 +39,6 @@ TEST_CASES += \
mscorlib/test-reflection.cs
endif
SIZE_TEST_CASES :=
TESTS_COMPILER = $(MCS) -nologo -noconfig -unsafe -debug:portable -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/mscorlib.dll
MARSHALING_TEST_NATIVE = mscorlib/test-marshaling-native.so
@@ -39,7 +46,7 @@ MARSHALING_TEST_NATIVE = mscorlib/test-marshaling-native.so
check: compile-tests
$(MAKE) run-tests
compile-tests: $(TEST_CASES) $(SIZE_TEST_CASES)
compile-tests: $(TEST_CASES)
mscorlib/test-%.cs:
$(TESTS_COMPILER) Tests/$@ /out:Tests/$(@:.cs=.exe)
@@ -53,31 +60,64 @@ mscorlib/test-marshaling.cs: $(MARSHALING_TEST_NATIVE)
System/test-%.cs:
$(TESTS_COMPILER) -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/System.dll Tests/$@ /out:Tests/$(@:.cs=.exe)
System.Core/test-%.cs:
$(TESTS_COMPILER) -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/System.Core.dll Tests/$@ /out:Tests/$(@:.cs=.exe)
System.Net.Http/test-%.cs:
$(TESTS_COMPILER) -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/System.dll -r:$(topdir)/class/lib/$(PROFILE_DIRECTORY)/System.Net.Http.dll Tests/$@ /out:Tests/$(@:.cs=.exe)
run-tests: $(TEST_CASES:.cs=.exe)
LINKER_PROFILE_OPTIONS :=
# Should be in sync with runtime sdk flags
BINARY_TEST_CASES =
ifeq ($(PROFILE),net_4_x)
BINARY_TEST_CASES_ROOT:=../../../external/illinker-test-assets/net_4_x/
BINARY_TEST_CASES = \
$(BINARY_TEST_CASES_ROOT)Newtonsoft.Json.Test/bin/Release/Newtonsoft.Json.Test.exe
endif
ifeq ($(PROFILE),monotouch)
LINKER_PROFILE_OPTIONS += --exclude-feature remoting --exclude-feature com
# Should be in sync with runtime sdk flags
LINKER_PROFILE_OPTIONS += --exclude-feature remoting --exclude-feature com --exclude-feature etw
# System.Net.Http needs Xamarin.iOS.dll
LINKER_PROFILE_OPTIONS += -d ../../../external/binary-reference-assemblies/build/monotouch
BINARY_TEST_CASES_ROOT:=../../../external/illinker-test-assets/monotouch/
BINARY_TEST_CASES = \
$(BINARY_TEST_CASES_ROOT)Newtonsoft.Json.Test/bin/iPhoneSimulator/Release/Newtonsoft.Json.Test.exe
endif
ifeq ($(PROFILE),wasm)
LINKER_PROFILE_OPTIONS += --exclude-feature remoting --exclude-feature com --exclude-feature sre
LINKER_PROFILE_OPTIONS += --exclude-feature remoting --exclude-feature com --exclude-feature etw
endif
LINKER_OUTPUT := illink-output-$(PROFILE_DIRECTORY)
PROFILE_PATH = $(topdir)/class/lib/$(PROFILE_DIRECTORY)
LINKER = MONO_PATH=$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE) $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/monolinker.exe -c link -out $(LINKER_OUTPUT) -b true -d $(PROFILE_PATH) $(LINKER_PROFILE_OPTIONS)
LINKER = MONO_PATH=$(topdir)/class/lib/$(BUILD_TOOLS_PROFILE) $(RUNTIME) $(RUNTIME_FLAGS) $(topdir)/class/lib/$(BUILD_TOOLS_PROFILE)/monolinker.exe -c link -out $(LINKER_OUTPUT) -b true -d $(PROFILE_PATH)
LINKER_DEFAULT = $(LINKER) -l none $(LINKER_PROFILE_OPTIONS)
TEST_EXEC = MONO_PATH=$(LINKER_OUTPUT) $(RUNTIME) $(RUNTIME_FLAGS) --debug -O=-aot
.NOTPARALLEL:
System/test-%.exe mscorlib/test-%.exe:
System.Net.Http/test-%.exe System.Core/test-%.exe System/test-%.exe mscorlib/test-%.exe:
@rm -rf $(LINKER_OUTPUT)
@mkdir $(LINKER_OUTPUT)
@echo Testing $@
$(LINKER) -a Tests/$@
$(LINKER_DEFAULT) -a Tests/$@
$(TEST_EXEC) $(LINKER_OUTPUT)/$(@F)
@rm -rf $(LINKER_OUTPUT)
mscorlib/test-calendar-01.exe:
@rm -rf $(LINKER_OUTPUT)
@mkdir $(LINKER_OUTPUT)
@echo Testing $@
$(LINKER) -l mideast $(LINKER_PROFILE_OPTIONS) -a Tests/$@
$(TEST_EXEC) $(LINKER_OUTPUT)/$(@F)
@rm -rf $(LINKER_OUTPUT)
@@ -85,30 +125,32 @@ mscorlib/test-marshaling.exe: $(MARSHALING_TEST_NATIVE)
@rm -rf $(LINKER_OUTPUT)
@mkdir $(LINKER_OUTPUT)
@echo Testing $@
$(LINKER) -a Tests/$@
$(LINKER_DEFAULT) -a Tests/$@
cp Tests/$(MARSHALING_TEST_NATIVE) $(LINKER_OUTPUT)
(cd $(LINKER_OUTPUT); MONO_PATH=. $(RUNTIME) $(RUNTIME_FLAGS) --debug -O=-aot ./$(@F))
@rm -rf $(LINKER_OUTPUT)
BCL_ASSEMBLIES_CORE=mscorlib.dll System.dll System.Core.dll System.Xml.dll
BCL_ASSEMBLIES=$(BCL_ASSEMBLIES_CORE) $(sort $(filter-out $(BCL_ASSEMBLIES_CORE), $(notdir $(wildcard $(PROFILE_PATH)/System.*.dll)) ))
BCL_ASSEMBLIES=$(BCL_ASSEMBLIES_CORE) $(sort $(filter-out $(BCL_ASSEMBLIES_CORE), $(notdir $(wildcard $(PROFILE_PATH)/System.*.dll $(PROFILE_PATH)/Microsoft.*.dll $(PROFILE_PATH)/I18*.dll )) ))
COMMA=,
REPORT_FILE=$(PROFILE)-linked-size.csv
bcl-size-current: compile-tests
@echo "App,$$(echo '$(BCL_ASSEMBLIES)' | tr ' ' ',')" > $(REPORT_FILE)
@for app in $(sort $(SIZE_TEST_CASES:.cs=.exe) $(TEST_CASES:.cs=.exe)); do \
@for app in $(sort $(BINARY_TEST_CASES) $(patsubst %.cs,Tests/%.exe,$(TEST_CASES))); do \
rm -rf $(LINKER_OUTPUT); \
mkdir $(LINKER_OUTPUT); \
echo Checking linked BCL size for $$app; \
$(LINKER) -a Tests/$$app; \
app_name=$${app#$(BINARY_TEST_CASES_ROOT)}; \
app_name=$${app_name#Tests/}; \
echo Checking linked BCL size in $(PROFILE) profile for $$app_name; \
$(LINKER_DEFAULT) -a $$app; \
sizes=""; \
for asm in $(BCL_ASSEMBLIES); do \
if [ -f "$(LINKER_OUTPUT)/$$asm" ]; then size=$$(wc -c < "$(LINKER_OUTPUT)/$$asm" | tr -d "[:space:]"); else size="0"; fi; \
sizes="$$sizes,$$size"; \
done; \
echo "$$app$$sizes" >> $(REPORT_FILE); \
echo "$$app_name$$sizes" >> $(REPORT_FILE); \
rm -rf $(LINKER_OUTPUT); \
done;