diff options
author | Sean Gillespie <segilles@microsoft.com> | 2016-03-11 15:48:56 -0800 |
---|---|---|
committer | Sean Gillespie <segilles@microsoft.com> | 2016-04-11 11:47:48 -0700 |
commit | 57246c0812e94e0ad98cb313d2d97ba1a458afb8 (patch) | |
tree | 260e5bf0a11da114357fb35e5941c53e70cb326b | |
parent | 2eb214ee49e3474ec64aad04ac673f7f18379c95 (diff) | |
download | coreclr-57246c0812e94e0ad98cb313d2d97ba1a458afb8.tar.gz coreclr-57246c0812e94e0ad98cb313d2d97ba1a458afb8.tar.bz2 coreclr-57246c0812e94e0ad98cb313d2d97ba1a458afb8.zip |
Create Long-running GC test job for the CI
23 files changed, 126 insertions, 248 deletions
diff --git a/netci.groovy b/netci.groovy index 53295e8bb3..6889de12d6 100755 --- a/netci.groovy +++ b/netci.groovy @@ -66,7 +66,7 @@ class Constants { 'gcstress0xc_minopts_heapverify1' : ['COMPlus_GCStress' : '0xC', 'COMPlus_JITMinOpts' : '1', 'COMPlus_HeapVerify' : '1'] ] // This is the basic set of scenarios - def static basicScenarios = ['default', 'pri1', 'ilrt', 'r2r', 'pri1r2r', 'gcstress15_pri1r2r'] + def static basicScenarios = ['default', 'pri1', 'ilrt', 'r2r', 'pri1r2r', 'gcstress15_pri1r2r', 'longgc'] // This is the set of configurations def static configurationList = ['Debug', 'Checked', 'Release'] // This is the set of architectures @@ -348,6 +348,9 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, } } break + case 'longgc': + // long GC jobs are triggered by phrase only. + break case 'ilrt': assert !(os in bidailyCrossList) // ILASM/ILDASM roundtrip one gets a daily build, and only for release @@ -479,6 +482,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") } break + case 'longgc': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break case 'minopts': assert (os == 'Windows_NT') || (os in Constants.crossList) Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test (Jit - MinOpts)", @@ -636,6 +644,11 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") } break + case 'longgc': + if (configuration == 'Release' || configuration == 'Checked') { + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${configuration}\\W+${scenario}.*") + } + break case 'minopts': assert (os == 'Windows_NT') || (os in Constants.crossList) Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Build and Test (Jit - MinOpts)", @@ -816,6 +829,12 @@ def static addTriggers(def job, def branch, def isPR, def architecture, def os, Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} GCStress 15 R2R pri1 Build & Test", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*") } } + } else if (scenario == 'longgc') { + if (os == 'Windows_NT'){ + if (configuration == 'Release' || configuration == 'Checked'){ + Utilities.addGithubPRTriggerForBranch(job, branch, "${os} ${architecture} ${configuration} Long-Running GC Build & Test", "(?i).*test\\W+${os}\\W+${architecture}\\W+${configuration}\\W+${scenario}.*") + } + } } break default: @@ -950,6 +969,16 @@ combinedScenarios.each { scenario -> return } break + case 'longgc': + if (os != 'Windows_NT' && !(os in Constants.crossList)) { + return + } + + // only x64 or x86 for now + if (architecture != 'x64' && architecture != 'x86') { + return + } + break case 'default': // Nothing skipped break @@ -1014,6 +1043,9 @@ combinedScenarios.each { scenario -> //Build pri1 R2R tests with GC stress level 15 buildCommands += "build.cmd ${lowerConfiguration} ${architecture} docrossgen skiptests" buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} crossgen Priority 1 gcstresslevel 15" + } else if (scenario == 'longgc') { + buildCommands += "build.cmd ${lowerConfiguration} ${architecture} skiptests" + buildCommands += "set __TestIntermediateDir=int&&tests\\buildtest.cmd ${lowerConfiguration} ${architecture} longgctests" } else { println("Unknown scenario: ${scenario}") @@ -1053,10 +1085,18 @@ combinedScenarios.each { scenario -> } } else if (architecture == 'x64') { - buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} ${crossgenStr}" + if (scenario == 'longgc') { + buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} longgctests sequential Exclude0" + } else { + buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture}" + } } else if (architecture == 'x86') { - buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} ${crossgenStr} Exclude0 x86_legacy_backend_issues.targets" + if (scenario == 'longgc') { + buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} longgctests sequential Exclude0" + } else { + buildCommands += "tests\\runtest.cmd ${lowerConfiguration} ${architecture} Exclude0 x86_legacy_backend_issues.targets" + } } } @@ -1295,6 +1335,12 @@ combinedScenarios.each { scenario -> return } break + case 'longgc': + //Skip configs that aren't Checked or Release (so just Debug, for now) + if (configuration != 'Checked' && configuration != 'Release') { + return + } + break case 'default': // Nothing skipped break @@ -1324,6 +1370,15 @@ combinedScenarios.each { scenario -> } // Enable Server GC for Ubuntu PR builds def serverGCString = '' + + // Whether or not this test run should be run sequentially instead + // of in parallel. Only used for long GC tests. + def sequentialString = '' + + // Whether or not this test run should only run failing test. + // Only used for long GC tests, because they are all ignored in + // normal test runs. + def runFailingString = '' if (os == 'Ubuntu' && isPR){ serverGCString = '--useServerGC' @@ -1334,6 +1389,18 @@ combinedScenarios.each { scenario -> if (scenario == 'r2r' || scenario == 'pri1r2r' || scenario == 'gcstress15_pri1r2r'){ crossgenStr = '--crossgen' } + + if (scenario == 'longgc') { + // Long GC tests behave very poorly when they are not + // the only test running (many of them allocate until OOM). + sequentialString = 'sequential' + + // Long GC tests all exist in the ignore list because + // they can't run during normal test runs. This is not + // particularly pretty but, until we get a more generalized + // mechanism for coming up with test playlists, it works. + runFailingString = '--runFailingTestsOnly' + } def newJob = job(Utilities.getFullJobName(project, jobName, isPR)) { @@ -1412,7 +1479,7 @@ combinedScenarios.each { scenario -> --mscorlibDir=\"\${WORKSPACE}/bin/Product/${osGroup}.${architecture}.${configuration}\" \\ --coreFxBinDir=\"\${WORKSPACE}/bin/${osGroup}.AnyCPU.Release\" \\ --coreFxNativeBinDir=\"\${WORKSPACE}/bin/${osGroup}.${architecture}.Release\" \\ - ${testEnvOpt} ${serverGCString} ${crossgenStr}""") + ${testEnvOpt} ${serverGCString} ${crossgenStr} ${sequentialString} ${runFailingString}""") } } diff --git a/tests/buildtest.cmd b/tests/buildtest.cmd index f85941d2bd..8f23e829d8 100644 --- a/tests/buildtest.cmd +++ b/tests/buildtest.cmd @@ -31,6 +31,7 @@ set __crossgen= set __ILAsmRoundtrip= set __BuildSequential= set __TestPriority= +set __LongGCTests= set __msbuildCleanBuildArgs= set __msbuildExtraArgs= set __verbosity=normal @@ -65,6 +66,7 @@ if /i "%1" == "ilasmroundtrip" (set __ILAsmRoundtrip=true&shift&goto Arg_Lo if /i "%1" == "sequential" (set __BuildSequential=1&shift&goto Arg_Loop) if /i "%1" == "priority" (set __TestPriority=%2&shift&shift&goto Arg_Loop) if /i "%1" == "gcstresslevel" (set __GCStressLevel=%2&shift&shift&goto Arg_Loop) +if /i "%1" == "longgctests" (set __LongGCTests=1&shift&goto Arg_Loop) if /i "%1" == "verbose" (set __verbosity=detailed&shift&goto Arg_Loop) @@ -275,6 +277,11 @@ if %__GCStressLevel% GTR 0 ( set __msbuildManagedBuildArgs=%__msbuildManagedBuildArgs% /p:GCStressLevel=%__GCStressLevel% ) +if defined __LongGCTests ( + echo Building tests with Long GC tests enabled. + set __msbuildManagedBuildArgs=%__msbuildManagedBuildArgs% /p:GCLongRunning=true +) + set __BuildLogRootName=Tests_Managed call :msbuild "%__ProjectFilesDir%\build.proj" %__msbuildManagedBuildArgs% if errorlevel 1 exit /b 1 diff --git a/tests/issues.targets b/tests/issues.targets index 331e721ef7..03545dc8ca 100644 --- a/tests/issues.targets +++ b/tests/issues.targets @@ -319,9 +319,6 @@ <ExcludeList Include="$(XunitTestBinBase)\GC\Scenarios\BaseFinal\basefinal\*"> <Issue>3392</Issue> </ExcludeList> - <ExcludeList Include="$(XunitTestBinBase)\GC\Coverage\concurrentspin2\*"> - <Issue>3392</Issue> - </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\GC\Coverage\smalloom\*"> <Issue>3392</Issue> </ExcludeList> diff --git a/tests/runtest.cmd b/tests/runtest.cmd index eeca3a978e..d894c8e080 100644 --- a/tests/runtest.cmd +++ b/tests/runtest.cmd @@ -26,8 +26,9 @@ set "__LogsDir=%__RootBinDir%\Logs" :: Default __Exclude to issues.targets set __Exclude0=%~dp0\issues.targets -set __BuildSequential= +set __Sequential= set __msbuildExtraArgs= +set __LongGCTests= :Arg_Loop if "%1" == "" goto ArgsDone @@ -53,8 +54,9 @@ if /i "%1" == "SkipWrapperGeneration" (set __SkipWrapperGeneration=true&shift&go if /i "%1" == "Exclude" (set __Exclude=%2&shift&shift&goto Arg_Loop) if /i "%1" == "Exclude0" (set __Exclude0=%2&shift&shift&goto Arg_Loop) if /i "%1" == "TestEnv" (set __TestEnv=%2&shift&shift&goto Arg_Loop) -if /i "%1" == "sequential" (set __BuildSequential=1&shift&goto Arg_Loop) +if /i "%1" == "sequential" (set __Sequential=1&shift&goto Arg_Loop) if /i "%1" == "crossgen" (set __DoCrossgen=1&shift&goto Arg_Loop) +if /i "%1" == "longgctests" (set __LongGCTests=1&shift&goto Arg_Loop) if /i "%1" == "GenerateLayoutOnly" (set __GenerateLayoutOnly=1&set __SkipWrapperGeneration=true&shift&goto Arg_Loop) if /i "%1" == "PerfTests" (set __PerfTests=true&set __SkipWrapperGeneration=true&shift&goto Arg_Loop) @@ -125,8 +127,10 @@ if not defined VSINSTALLDIR ( :: assembly. set __msbuildCommonArgs=/nologo /nodeReuse:false %__msbuildExtraArgs% -if not defined __BuildSequential ( +if not defined __Sequential ( set __msbuildCommonArgs=%__msbuildCommonArgs% /maxcpucount +) else ( + set __msbuildCommonArgs=%__msbuildCommonArgs% /p:ParallelRun=false ) if defined CORE_ROOT goto SkipCoreRootSetup @@ -309,6 +313,14 @@ if "%__IsGCTest%"=="true" ( ) ) +:: Long GC tests take about 10 minutes per test on average, so +:: they often bump up against the default 10 minute timeout. +:: 20 minutes is more than enough time for a test to complete successfully. +if defined __LongGCTests ( + echo Running Long GC tests, extending timeout to 20 minutes + set __TestTimeout=1200000 +) + set __BuildLogRootName=Tests_GenerateRuntimeLayout call :msbuild "%__ProjectFilesDir%\runtest.proj" /p:GenerateRuntimeLayout=true if errorlevel 1 ( diff --git a/tests/src/CLRTest.Execute.Bash.targets b/tests/src/CLRTest.Execute.Bash.targets index d4bef47283..7ec2e1566d 100644 --- a/tests/src/CLRTest.Execute.Bash.targets +++ b/tests/src/CLRTest.Execute.Bash.targets @@ -165,6 +165,10 @@ then exit 0 fi ]]></BashCLRTestEnvironmentCompatibilityCheck> + <BashCLRTestGCLongTestSkipCondition Condition="'$(GCLongRunning)' == 'true' And '$(IsLongRunningGCTest)' != 'true'"><![CDATA[ +echo Skipping execution because this is not a long-running GC test +exit 0 + ]]></BashCLRTestGCLongTestSkipCondition> <BashCLRTestExitCodePrep Condition="$(_CLRTestNeedsToRun)"> <![CDATA[CLRTestExpectedExitCode=$(CLRTestExitCode) echo BEGIN EXECUTION]]> @@ -312,6 +316,7 @@ $__TestEnv $(BashEnvironmentVariables) $(BashCLRTestEnvironmentCompatibilityCheck) +$(BashCLRTestGCLongTestSkipCondition) $(BashCLRTestArgPrep) $(BashCLRTestExitCodePrep) # CrossGen Script (when /p:CrossGen=true) diff --git a/tests/src/CLRTest.Execute.Batch.targets b/tests/src/CLRTest.Execute.Batch.targets index 12820ac718..7fbe32cebb 100644 --- a/tests/src/CLRTest.Execute.Batch.targets +++ b/tests/src/CLRTest.Execute.Batch.targets @@ -153,7 +153,10 @@ IF "%COMPlus_JitStress%"=="" IF "%COMPlus_JitStressRegs%"=="" IF "%COMPlus_JITMi Exit /b 0 :Compatible1 ]]></BatchCLRTestEnvironmentCompatibilityCheck> - + <BatchCLRTestGCLongTestSkipCondition Condition="$(GCLongRunning) == 'true' And '$(IsLongRunningGCTest)' != 'true'"><![CDATA[ +echo Skipping execution because this is not a long-running GC test +Exit /b 0 + ]]></BatchCLRTestGCLongTestSkipCondition> <BatchCLRTestExitCodePrep Condition="$(_CLRTestNeedsToRun)"> <![CDATA[ set CLRTestExpectedExitCode=$(CLRTestExitCode) @@ -347,6 +350,9 @@ $(CrossgenBatchScript) REM IlasmRoundTrip Script $(IlasmRoundTripBatchScript) +REM Long GC Tests Script (when /p:GCLongRunning=true) +$(BatchCLRTestGCLongTestSkipCondition) + REM Precommands $(CLRTestBatchPreCommands) REM Launch diff --git a/tests/src/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs b/tests/src/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs index d012dca5f2..398315bd61 100644 --- a/tests/src/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs +++ b/tests/src/Common/Coreclr.TestWrapper/CoreclrTestWrapperLib.cs @@ -16,13 +16,19 @@ namespace CoreclrTestLib public class CoreclrTestWrapperLib { public const int EXIT_SUCCESS_CODE = 0; + public const string TIMEOUT_ENVIRONMENT_VAR = "__TestTimeout"; + public const int DEFAULT_TIMEOUT = 1000 * 60*10; public int RunTest(string executable, string outputFile, string errorFile) { Debug.Assert(outputFile != errorFile); int exitCode = -100; - int timeout = 1000 * 60*10; + + // If a timeout was given to us by an environment variable, use it instead of the default + // timeout. + string environmentVar = Environment.GetEnvironmentVariable(TIMEOUT_ENVIRONMENT_VAR); + int timeout = environmentVar != null ? int.Parse(environmentVar) : DEFAULT_TIMEOUT; var outputStream = new FileStream(outputFile, FileMode.Create); var errorStream = new FileStream(errorFile, FileMode.Create); diff --git a/tests/src/GC/Coverage/concurrentspin2.cs b/tests/src/GC/Coverage/concurrentspin2.cs deleted file mode 100644 index 23edb8bb34..0000000000 --- a/tests/src/GC/Coverage/concurrentspin2.cs +++ /dev/null @@ -1,184 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System; -using System.Diagnostics; -using System.Threading; - -class PriorityTest -{ - private byte[][] old; - private byte[][] med; - private Random rand; - - private int oldDataSize; - private int medDataSize; - private int iterCount; - private int meanAllocSize; - private int medTime; - private int youngTime; - - - public PriorityTest(int oldDataSize, int medDataSize, - int iterCount, int meanAllocSize, - int medTime, int youngTime) - { - rand = new Random(314159); - this.oldDataSize = oldDataSize; - this.medDataSize = medDataSize; - this.iterCount = iterCount; - this.meanAllocSize = meanAllocSize; - this.medTime = medTime; - this.youngTime = youngTime; - } - - // creates initial arrays - void AllocTest(int oldDataSize, int medDataSize, int meanAllocSize) - { - old = new byte[oldDataSize][]; - med = new byte[medDataSize][]; - - for (int i = 0; i < old.Length; i++) - { - old[i] = new byte[meanAllocSize]; - } - - for (int i = 0; i < med.Length; i++) - { - med[i] = new byte[meanAllocSize]; - } - } - - // churns data in the heap by replacing byte arrays with new ones of random length - // this should induce concurrent GCs - void SteadyState(int oldDataSize, int medDataSize, - int iterCount, int meanAllocSize, - int medTime, int youngTime) - { - - for (int i = 0; i < iterCount; i++) - { - byte[] newarray = new byte[meanAllocSize]; - - if ((i % medTime) == 0) - { - old[rand.Next(0, old.Length)] = newarray; - } - if ((i % youngTime) == 0) - { - med[rand.Next(0, med.Length)] = newarray; - } - //if (((i % 5000) == 0) && (Thread.CurrentThread.Priority != ThreadPriority.Lowest)) - //{ - // Thread.Sleep(200); - //} - } - } - - // method that runs the test - public void RunTest() - { - for (int iteration = 0; iteration < iterCount; iteration++) - { - AllocTest(oldDataSize, medDataSize, meanAllocSize); - - SteadyState(oldDataSize, medDataSize, - iterCount, meanAllocSize, - medTime, youngTime); - - if (((iteration + 1) % 20) == 0) - Console.WriteLine("Thread: {1} Finished iteration {0}", iteration, System.Threading.Thread.CurrentThread.Name); - } - - } - -} - - -class ConcurrentRepro -{ - - public static void Usage() - { - Console.WriteLine("Usage:"); - Console.WriteLine("\t<num iterations> <num threads>"); - } - - public static int[] ParseArgs(string[] args) - { - int[] parameters = new int[2]; - - // set defaults - parameters[0] = 100; - parameters[1] = 4; - - if (args.Length == 0) - { - //use defaults - Console.WriteLine("Using defaults: 100 iterations, 4 threads"); - return parameters; - } - if (args.Length == parameters.Length) - { - for (int i = 0; i < args.Length; i++) - { - int j = 0; - if (!int.TryParse(args[i], out j)) - { - Usage(); - return null; - } - parameters[i] = j; - } - - return parameters; - } - - // incorrect number of arguments - Usage(); - return null; - } - - - public static int Main(string[] args) - { - - // parse arguments - int[] parameters = ParseArgs(args); - if (parameters == null) - { - return 0; - } - - // set process affinity to 1 to repro bug easier - //Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)1; - - - PriorityTest priorityTest = new PriorityTest(1000000, 5000, parameters[0], 17, 30, 3); - ThreadStart startDelegate = new ThreadStart(priorityTest.RunTest); - - // create threads - Thread[] threads = new Thread[parameters[1]]; - for (int i = 0; i < threads.Length; i++) - { - threads[i] = new Thread(startDelegate); - threads[i].Name = String.Format("Thread{0}", i); - //if (i % 2 == 0) - //{ - // threads[i].Priority = ThreadPriority.Lowest; - //} - threads[i].Start(); - } - - // wait for threads to complete - for (int i = 0; i < threads.Length; i++) - { - threads[i].Join(); - } - - return 100; - } -} - - diff --git a/tests/src/GC/Coverage/concurrentspin2.csproj b/tests/src/GC/Coverage/concurrentspin2.csproj deleted file mode 100644 index 7e63affeba..0000000000 --- a/tests/src/GC/Coverage/concurrentspin2.csproj +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid> - <OutputType>Exe</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <FileAlignment>512</FileAlignment> - <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> - <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> - <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> - </PropertyGroup> - <!-- Default configurations to help VS understand the configurations --> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - </PropertyGroup> - <ItemGroup> - <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies"> - <Visible>False</Visible> - </CodeAnalysisDependentAssemblyPaths> - </ItemGroup> - <ItemGroup> - <!-- Add Compile Object Here --> - <Compile Include="ConcurrentSpin2.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="app.config" /> - <None Include="$(GCPackagesConfigFileDirectory)minimal\project.json" /> - </ItemGroup> - <PropertyGroup> - <ProjectJson>$(GCPackagesConfigFileDirectory)minimal\project.json</ProjectJson> - <ProjectLockJson>$(GCPackagesConfigFileDirectory)minimal\project.lock.json</ProjectLockJson> - </PropertyGroup> - <ItemGroup> - <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" /> - </ItemGroup> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" /> - <PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "> - </PropertyGroup> -</Project>
\ No newline at end of file diff --git a/tests/src/GC/Features/BackgroundGC/concurrentspin2.csproj b/tests/src/GC/Features/BackgroundGC/concurrentspin2.csproj index 5e585cf88d..3158d18490 100644 --- a/tests/src/GC/Features/BackgroundGC/concurrentspin2.csproj +++ b/tests/src/GC/Features/BackgroundGC/concurrentspin2.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/LOHCompaction/lohcompact_stress.csproj b/tests/src/GC/Features/LOHCompaction/lohcompact_stress.csproj index f3adce1741..3da854d84c 100644 --- a/tests/src/GC/Features/LOHCompaction/lohcompact_stress.csproj +++ b/tests/src/GC/Features/LOHCompaction/lohcompact_stress.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/LOHCompaction/lohcompactapi2.csproj b/tests/src/GC/Features/LOHCompaction/lohcompactapi2.csproj index a3609305cf..9dc2e8a791 100644 --- a/tests/src/GC/Features/LOHCompaction/lohcompactapi2.csproj +++ b/tests/src/GC/Features/LOHCompaction/lohcompactapi2.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/LOHCompaction/lohcompactscenariorepro.csproj b/tests/src/GC/Features/LOHCompaction/lohcompactscenariorepro.csproj index e4962bbbce..6e0f5e7036 100644 --- a/tests/src/GC/Features/LOHCompaction/lohcompactscenariorepro.csproj +++ b/tests/src/GC/Features/LOHCompaction/lohcompactscenariorepro.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/PartialCompaction/eco1.csproj b/tests/src/GC/Features/PartialCompaction/eco1.csproj index c6021a3625..74314e8cb9 100644 --- a/tests/src/GC/Features/PartialCompaction/eco1.csproj +++ b/tests/src/GC/Features/PartialCompaction/eco1.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/PartialCompaction/partialcompactiontest.csproj b/tests/src/GC/Features/PartialCompaction/partialcompactiontest.csproj index 8ccc632a07..ec9e5949e7 100644 --- a/tests/src/GC/Features/PartialCompaction/partialcompactiontest.csproj +++ b/tests/src/GC/Features/PartialCompaction/partialcompactiontest.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/PartialCompaction/partialcompactionwloh.csproj b/tests/src/GC/Features/PartialCompaction/partialcompactionwloh.csproj index 905da65e56..9c2b2ddde6 100644 --- a/tests/src/GC/Features/PartialCompaction/partialcompactionwloh.csproj +++ b/tests/src/GC/Features/PartialCompaction/partialcompactionwloh.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race.csproj b/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race.csproj index 7048a0cbf2..92728a0c3b 100644 --- a/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race.csproj +++ b/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race_reverse.csproj b/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race_reverse.csproj index 868ee9c689..b9843cecc8 100644 --- a/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race_reverse.csproj +++ b/tests/src/GC/Features/SustainedLowLatency/sustainedlowlatency_race_reverse.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Scenarios/BaseFinal/basefinal.csproj b/tests/src/GC/Scenarios/BaseFinal/basefinal.csproj index a6b0e5d3e9..a11454acde 100644 --- a/tests/src/GC/Scenarios/BaseFinal/basefinal.csproj +++ b/tests/src/GC/Scenarios/BaseFinal/basefinal.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/src/GC/Scenarios/DoublinkList/doublinknoleak.csproj b/tests/src/GC/Scenarios/DoublinkList/doublinknoleak.csproj index 574213978f..5ac2e521e6 100644 --- a/tests/src/GC/Scenarios/DoublinkList/doublinknoleak.csproj +++ b/tests/src/GC/Scenarios/DoublinkList/doublinknoleak.csproj @@ -13,6 +13,7 @@ <ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath> <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir> <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp> + <IsLongRunningGCTest>true</IsLongRunningGCTest> </PropertyGroup> <!-- Default configurations to help VS understand the configurations --> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> diff --git a/tests/tests.targets b/tests/tests.targets index 79b60bd9ce..56c6c5d711 100644 --- a/tests/tests.targets +++ b/tests/tests.targets @@ -37,6 +37,7 @@ <PropertyGroup> <ExcludeTraits Condition="'$(ExcludeTraits)'==''">category=outerloop;category=failing</ExcludeTraits> + <ParallelRun Condition="'$(ParallelRun)'==''">true</ParallelRun> </PropertyGroup> <ItemGroup> <IncludeTraitsItems Include="$(IncludeTraits)" /> @@ -44,8 +45,8 @@ </ItemGroup> <xunit Assemblies="@(TestAssemblies)" - ParallelizeAssemblies="True" - ParallelizeTestCollections="True" + ParallelizeAssemblies="$(ParallelRun)" + ParallelizeTestCollections="$(ParallelRun)" Html="$(__TestRunHtmlLog)" Xml="$(__TestRunXmlLog)" IncludeTraits="@(IncludeTraitsItems)" diff --git a/tests/testsFailingOutsideWindows.txt b/tests/testsFailingOutsideWindows.txt index e93fc3a1c3..a2bd6703e2 100644 --- a/tests/testsFailingOutsideWindows.txt +++ b/tests/testsFailingOutsideWindows.txt @@ -178,7 +178,6 @@ GC/LargeMemory/API/gc/collect/collect.sh GC/LargeMemory/API/gc/getgeneration/getgeneration.sh GC/Scenarios/DoublinkList/doublinknoleak/doublinknoleak.sh GC/Scenarios/BaseFinal/basefinal/basefinal.sh -GC/Coverage/concurrentspin2/concurrentspin2.sh GC/Coverage/smalloom/smalloom.sh GC/Coverage/271010/271010.sh GC/Features/BackgroundGC/concurrentspin2/concurrentspin2.sh @@ -194,6 +193,5 @@ GC/Features/SustainedLowLatency/sustainedlowlatency_race_reverse/sustainedlowlat GC/Features/SustainedLowLatency/scenario/scenario.sh GC/Features/SustainedLowLatency/sustainedlowlatency_race/sustainedlowlatency_race.sh GC/Regressions/dev10bugs/536168/536168/536168.sh - JIT/Regression/CLR-x86-EJIT/V1-M09.5-PDC/b14426/b14426/b14426.sh JIT/Performance/CodeQuality/BenchmarksGame/pidigits/pi-digits/pi-digits.sh diff --git a/tests/x86_legacy_backend_issues.targets b/tests/x86_legacy_backend_issues.targets index 5229bd40a9..bcfa557f2b 100644 --- a/tests/x86_legacy_backend_issues.targets +++ b/tests/x86_legacy_backend_issues.targets @@ -490,9 +490,6 @@ <ExcludeList Include="$(XunitTestBinBase)\GC\Scenarios\BaseFinal\basefinal\*"> <Issue>3392</Issue> </ExcludeList> - <ExcludeList Include="$(XunitTestBinBase)\GC\Coverage\concurrentspin2\*"> - <Issue>3392</Issue> - </ExcludeList> <ExcludeList Include="$(XunitTestBinBase)\GC\Coverage\smalloom\*"> <Issue>3392</Issue> </ExcludeList> |