--- /dev/null
+using System;
+using System.IO;
+using System.Reflection;
+
+namespace System.Runtime.Loader
+{
+ public abstract class AssemblyLoadContext
+ {
+ protected abstract Assembly Load(AssemblyName assemblyName);
+
+ protected Assembly LoadFromAssemblyPath(string assemblyPath)
+ {
+ if (assemblyPath == null)
+ throw new ArgumentNullException("assemblyPath");
+
+ if (!Path.IsPathRooted(assemblyPath))
+ throw new ArgumentException("Gimme an absolute path " + assemblyPath + " XXX " + Path.GetPathRoot(assemblyPath), "assemblyPath");
+
+ return Assembly.LoadFrom (assemblyPath);
+ }
+
+ public Assembly LoadFromAssemblyName(AssemblyName assemblyName)
+ {
+ // AssemblyName is mutable. Cache the expected name before anybody gets a chance to modify it.
+ string requestedSimpleName = assemblyName.Name;
+
+ Assembly assembly = Load(assemblyName);
+ if (assembly == null)
+ throw new FileLoadException("File not found", requestedSimpleName);
+
+ return assembly;
+ }
+
+ public static AssemblyName GetAssemblyName(string assemblyPath)
+ {
+ if (!File.Exists (assemblyPath))
+ throw new Exception ("file not found");
+ return new AssemblyName (Path.GetFileName (assemblyPath));
+ }
+ }
+}
check-coreclr: coreclr-compile-tests coreclr-runtest-managed
+coreclr-gcstress: coreclr-validate GCStressTests.exe $(CORECLR_STRESSTESTSI_CS)
+ BVT_ROOT=$(realpath $(CORECLR_PATH)/tests/src/GC/Stress/Tests) $(RUNTIME) GCStressTests.exe $(CORECLR_PATH)/tests/src/GC/Stress/testmix_gc.config
+
CORECLR_TEST_CS_SRC= \
$(CORECLR_PATH)/tests/src/JIT/CodeGenBringUpTests/Add1.cs \
$(CORECLR_PATH)/tests/src/JIT/CodeGenBringUpTests/addref.cs \
$(CORECLR_PATH)/tests/src/Threading/ThreadStatics/ThreadStatic05.cs \
$(CORECLR_PATH)/tests/src/Threading/ThreadStatics/ThreadStatic06.cs
+CORECLR_STRESSTEST_CS_SRC= \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/573277.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/MulDimJagAry.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/bestfit-finalize.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/ExpandHeap.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/PlugGaps.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/concurrentspin2.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/GCQueue.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/SingLinkStay.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/GCSimulator.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/StressAllocator.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/doubLinkStay.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/GCVariant.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/ThdTreeGrowingObj.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/allocationwithpins.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/pinstress.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/LeakGenThrd.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/b115557.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Tests/plug.cs
+
+CORECLR_STRESSTEST_RUNNER_CS_SRC= \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/ReliabilityConfiguration.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/ReliabilityFramework.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/ReliabilityTest.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/ReliabilityTestSet.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/ReliabilityTestSet.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/RFLogging.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/DetourHelpers.cs \
+ $(CORECLR_PATH)/tests/src/GC/Stress/Framework/LoaderClass.cs \
+ GCStressTests/AssemblyLoadContext.cs \
+ GCStressTests/AssemblyExtensions.cs
+
# relies on TestLibrary:
CORECLR_DISABLED_TEST_CS_SRC = \
$(CORECLR_PATH)/tests/src/Common/CoreCLRTestLibrary/TestFramework.cs \
CORECLR_DISABLED_TEST_CS_SRC += $(CORECLR_PATH)/tests/src/Exceptions/Finalization/Finalizer.cs
# exclude the CoreCLR GC stress framework for now, it needs special integration:
-CORECLR_DISABLED_TEST_CS_SRC += \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/plug.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/SingLinkStay.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/pinstress.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/GCQueue.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/ExpandHeap.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/PlugGaps.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/concurrentspin2.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/ThdTreeGrowingObj.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/573277.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/GCVariant.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/bestfit-finalize.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/allocationwithpins.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/MulDimJagAry.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/GCSimulator.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/StressAllocator.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/doubLinkStay.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/LeakGenThrd.cs \
- $(CORECLR_PATH)/tests/src/GC/Stress/Tests/b115557.cs \
+CORECLR_DISABLED_TEST_CS_SRC += \
$(CORECLR_PATH)/tests/src/GC/Stress/Framework/RFLogging.cs \
$(CORECLR_PATH)/tests/src/GC/Stress/Framework/DetourHelpers.cs \
$(CORECLR_PATH)/tests/src/GC/Stress/Framework/ReliabilityTest.cs \
CORECLR_IL_SRC_MISSING=$(filter-out $(CORECLR_DEFINED_IL_SRC),$(CORECLR_UPSTREAM_IL_SRC))
# find all CoreCLR *.cs test files that aren't mentioned in this file
-CORECLR_DEFINED_CS_SRC = $(CORECLR_TEST_CS_SRC) $(CORECLR_DISABLED_TEST_CS_SRC)
+CORECLR_DEFINED_CS_SRC = $(CORECLR_TEST_CS_SRC) $(CORECLR_STRESSTEST_CS_SRC) $(CORECLR_DISABLED_TEST_CS_SRC)
CORECLR_UPSTREAM_CS_SRC=$(shell find "$(CORECLR_PATH)/tests" -iname "*.cs")
CORECLR_CS_SRC_MISSING=$(filter-out $(CORECLR_DEFINED_CS_SRC),$(CORECLR_UPSTREAM_CS_SRC))
CORECLR_TESTSI_CS=$(CORECLR_TEST_CS_SRC:.cs=.exe)
CORECLR_TESTSI_IL=$(CORECLR_TEST_IL_SRC:.il=_il.exe)
+CORECLR_STRESSTESTSI_CS=$(CORECLR_STRESSTEST_CS_SRC:%.cs=%.exe)
+
# the CoreCLR IL tests use the System.Console facade, we need to copy it to the test directory
$(CORECLR_PATH)%_il.exe: $(CORECLR_PATH)%.il
$(ILASM) -out:$@ $<
test-runner.exe: $(top_srcdir)/mono/tests/test-runner.cs
$(MCS) -debug -out:$@ $<
-CLEANFILES = $(CORECLR_TESTSI_CS) $(CORECLR_TESTSI_IL) *.dll *.exe *.mdb
+GCStressTests.exe: $(CORECLR_STRESSTEST_RUNNER_CS_SRC)
+ $(MCS) -out:$@ -debug -d:PROJECTK_BUILD $(CORECLR_STRESSTEST_RUNNER_CS_SRC)
+
+CLEANFILES = $(CORECLR_TESTSI_CS) $(CORECLR_TESTSI_IL) *.dll *.exe *.mdb $(CORECLR_STRESSTESTSI_CS) GCStressTests.exe