未验证 提交 90ec8763 编写于 作者: J Jeremy Koritzinsky 提交者: GitHub

Convert JIT/Methodical/Array/range Pri0 tests and hook up mobile testing (#62752)

Co-authored-by: NTomas <trylek@microsoft.com>
上级 0e800a61
......@@ -238,6 +238,10 @@
<Uri>https://github.com/dotnet/linker</Uri>
<Sha>1a6468ff722c8d362f37638989ec01ab9975ac28</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="1.0.0-prerelease.22053.2">
<Uri>https://github.com/dotnet/xharness</Uri>
<Sha>7c293e5b676eb5b57418f775587badad65ec07f5</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="1.0.0-prerelease.22053.2">
<Uri>https://github.com/dotnet/xharness</Uri>
<Sha>7c293e5b676eb5b57418f775587badad65ec07f5</Sha>
......
......@@ -160,6 +160,7 @@
<!-- Testing -->
<MicrosoftNETCoreCoreDisToolsVersion>1.0.1-prerelease-00006</MicrosoftNETCoreCoreDisToolsVersion>
<MicrosoftNETTestSdkVersion>16.9.0-preview-20201201-01</MicrosoftNETTestSdkVersion>
<MicrosoftDotNetXHarnessTestRunnersCommonVersion>1.0.0-prerelease.22053.2</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>1.0.0-prerelease.22053.2</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
<MicrosoftDotNetXHarnessCLIVersion>1.0.0-prerelease.22053.2</MicrosoftDotNetXHarnessCLIVersion>
<MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>1.0.2-alpha.0.22053.3</MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>
......
......@@ -130,7 +130,6 @@
<Target Name="PrepareForAppleBuildApp">
<Error Condition="!Exists('$(MicrosoftNetCoreAppRuntimePackRidDir)')" Text="MicrosoftNetCoreAppRuntimePackRidDir=$(MicrosoftNetCoreAppRuntimePackRidDir) doesn't exist" />
<Error Condition="'$(TestArchiveTestsDir)' == ''" Text="TestArchiveTestsDir property to archive the test folder must be set." />
<WriteLinesToFile File="$(PublishDir)xunit-excludes.txt" Lines="$(XunitExcludesTxtFileContent)" Overwrite="true" />
......@@ -169,6 +168,7 @@
<Target Name="_CopyTestArchive"
Condition="'$(ArchiveTests)' == 'true' and '$(IgnoreForCI)' != 'true'">
<Error Condition="'$(TestArchiveTestsDir)' == ''" Text="TestArchiveTestsDir property to archive the test folder must be set." />
<!-- Adjust the variable names -->
<PropertyGroup Condition="'$(GenerateXcodeProject)' == 'true'">
......
......@@ -198,7 +198,8 @@
</Target>
<Target Name="AddTestRunnersToPublishedFiles"
AfterTargets="ComputeResolvedFilesToPublishList">
AfterTargets="ComputeResolvedFilesToPublishList"
Condition="'$(TestFramework)' == 'xunit'">
<ItemGroup>
<_runnerFilesToPublish Include="$(AndroidTestRunnerDir)*" Condition="'$(TargetOS)' == 'Android'" />
<_runnerFilesToPublish Include="$(AppleTestRunnerDir)*" Condition="'$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'tvOSSimulator'" />
......
......@@ -47,7 +47,8 @@
<_XHarnessArgs Condition="'$(IsFunctionalTest)' == 'true'" >$(_XHarnessArgs) --expected-exit-code=$(ExpectedExitCode)</_XHarnessArgs>
<_XHarnessArgs Condition="'$(WasmXHarnessArgs)' != ''" >$(_XHarnessArgs) $(WasmXHarnessArgs)</_XHarnessArgs>
<_AppArgs Condition="'$(IsFunctionalTest)' != 'true' and '$(Scenario)' != 'BuildWasmApps'">--run WasmTestRunner.dll $(AssemblyName).dll</_AppArgs>
<_AppArgs Condition="'$(IsFunctionalTest)' != 'true' and '$(Scenario)' != 'BuildWasmApps' and '$(WasmMainAssemblyFileName)' == ''">--run WasmTestRunner.dll $(AssemblyName).dll</_AppArgs>
<_AppArgs Condition="'$(IsFunctionalTest)' != 'true' and '$(WasmMainAssemblyFileName)' != ''">--run $(WasmMainAssemblyFileName)</_AppArgs>
<_AppArgs Condition="'$(IsFunctionalTest)' == 'true'">--run $(AssemblyName).dll</_AppArgs>
<_AppArgs Condition="'$(WasmTestAppArgs)' != ''">$(_AppArgs) $(WasmTestAppArgs)</_AppArgs>
......
......@@ -175,6 +175,7 @@ private bool ExecuteInternal ()
return false;
}
var mainFileName=Path.GetFileName(MainJS);
Log.LogMessage(MessageImportance.Low, $"MainJS path: '{MainJS}', fileName : '{mainFileName}', destination: '{Path.Combine(AppDir, mainFileName)}'");
FileCopyChecked(MainJS!, Path.Combine(AppDir, mainFileName), string.Empty);
string indexHtmlPath = Path.Combine(AppDir, "index.html");
......
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using Microsoft.DotNet.XHarness.Common;
using Microsoft.DotNet.XHarness.TestRunners.Common;
using XUnitWrapperLibrary;
namespace XHarnessRunnerLibrary;
public sealed class GeneratedTestRunner : TestRunner
{
string _assemblyName;
TestFilter.ISearchClause? _filter;
Func<TestFilter?, TestSummary> _runTestsCallback;
public GeneratedTestRunner(LogWriter logger, Func<TestFilter?, TestSummary> runTestsCallback, string assemblyName)
:base(logger)
{
_assemblyName = assemblyName;
_runTestsCallback = runTestsCallback;
ResultsFileName = $"{_assemblyName}.testResults.xml";
}
public TestSummary LastTestRun { get; private set; } = new();
protected override string ResultsFileName { get; set; }
public override Task Run(IEnumerable<TestAssemblyInfo> testAssemblies)
{
LastTestRun = _runTestsCallback(_filter is not null ? new TestFilter(_filter) : null);
PassedTests = LastTestRun.PassedTests;
FailedTests = LastTestRun.FailedTests;
SkippedTests = LastTestRun.SkippedTests;
ExecutedTests = PassedTests + FailedTests;
TotalTests = ExecutedTests + SkippedTests;
return Task.CompletedTask;
}
public override string WriteResultsToFile(XmlResultJargon xmlResultJargon)
{
Debug.Assert(xmlResultJargon == XmlResultJargon.xUnit);
File.WriteAllText(ResultsFileName, LastTestRun.GetTestResultOutput(_assemblyName));
return ResultsFileName;
}
public override void WriteResultsToFile(TextWriter writer, XmlResultJargon jargon)
{
Debug.Assert(jargon == XmlResultJargon.xUnit);
writer.WriteLine(LastTestRun.GetTestResultOutput(_assemblyName));
}
public override void SkipTests(IEnumerable<string> tests)
{
foreach (string test in tests)
{
var testNameClause = new TestFilter.NotClause(new TestFilter.NameClause(TestFilter.TermKind.DisplayName, test, true));
_filter = _filter is null ? testNameClause : new TestFilter.AndClause(_filter, testNameClause);
}
}
public override void SkipCategories(IEnumerable<string> categories)
{
}
public override void SkipMethod(string method, bool isExcluded)
{
TestFilter.ISearchClause methodClause = new TestFilter.NameClause(TestFilter.TermKind.FullyQualifiedName, method, true);
if (isExcluded)
{
methodClause = new TestFilter.NotClause(methodClause);
_filter = _filter is null ? methodClause : new TestFilter.AndClause(_filter, methodClause);
}
else
{
_filter = _filter is null ? methodClause : new TestFilter.OrClause(_filter, methodClause);
}
}
public override void SkipClass(string className, bool isExcluded)
{
throw new NotImplementedException();
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Microsoft.DotNet.XHarness.TestRunners.Common;
using XUnitWrapperLibrary;
namespace XHarnessRunnerLibrary;
public static class RunnerEntryPoint
{
public static async Task<int> RunTests(Func<TestFilter?, TestSummary> runTestsCallback, string assemblyName, string? filter)
{
ApplicationEntryPoint? entryPoint = null;
if (OperatingSystem.IsAndroid())
{
entryPoint = new AndroidEntryPoint(new SimpleDevice(assemblyName), runTestsCallback, assemblyName, filter);
}
if (OperatingSystem.IsMacCatalyst() || OperatingSystem.IsIOS() || OperatingSystem.IsTvOS() || OperatingSystem.IsWatchOS())
{
entryPoint = new AppleEntryPoint(new SimpleDevice(assemblyName), runTestsCallback, assemblyName, filter);
}
if (OperatingSystem.IsBrowser())
{
entryPoint = new WasmEntryPoint(runTestsCallback, assemblyName, filter);
}
if (entryPoint is null)
{
throw new InvalidOperationException("The XHarness runner library test runner is only supported on mobile+wasm platforms. Use the XUnitWrapperLibrary-based runner on desktop platforms.");
}
bool anyFailedTests = false;
entryPoint.TestsCompleted += (o, e) => anyFailedTests = e.FailedTests > 0;
await entryPoint.RunAsync();
return anyFailedTests ? 1 : 0;
}
sealed class AppleEntryPoint : iOSApplicationEntryPointBase
{
private Func<TestFilter?, TestSummary> _runTestsCallback;
private string _assemblyName;
private string? _methodNameToRun;
public AppleEntryPoint(IDevice device, Func<TestFilter?, TestSummary> runTestsCallback, string assemblyName, string? methodNameToRun)
{
Device = device;
_runTestsCallback = runTestsCallback;
_assemblyName = assemblyName;
_methodNameToRun = methodNameToRun;
}
protected override IDevice? Device { get; }
protected override int? MaxParallelThreads => 1;
protected override bool IsXunit => true;
protected override TestRunner GetTestRunner(LogWriter logWriter)
{
var runner = new GeneratedTestRunner(logWriter, _runTestsCallback, _assemblyName);
if (_methodNameToRun is not null)
{
runner.SkipMethod(_methodNameToRun, isExcluded: false);
}
return runner;
}
protected override IEnumerable<TestAssemblyInfo> GetTestAssemblies() => Array.Empty<TestAssemblyInfo>();
protected override void TerminateWithSuccess() => Console.WriteLine("[TerminateWithSuccess]");
}
sealed class AndroidEntryPoint : AndroidApplicationEntryPointBase
{
private Func<TestFilter?, TestSummary> _runTestsCallback;
private string _assemblyName;
private string? _methodNameToRun;
public AndroidEntryPoint(IDevice device, Func<TestFilter?, TestSummary> runTestsCallback, string assemblyName, string? methodNameToRun)
{
Device = device;
_runTestsCallback = runTestsCallback;
_assemblyName = assemblyName;
_methodNameToRun = methodNameToRun;
}
protected override IDevice? Device { get; }
protected override int? MaxParallelThreads => 1;
protected override bool IsXunit => true;
protected override TestRunner GetTestRunner(LogWriter logWriter)
{
var runner = new GeneratedTestRunner(logWriter, _runTestsCallback, _assemblyName);
if (_methodNameToRun is not null)
{
runner.SkipMethod(_methodNameToRun, isExcluded: false);
}
return runner;
}
public override string TestsResultsFinalPath
{
get
{
string? publicDir = Environment.GetEnvironmentVariable("DOCSDIR");
if (string.IsNullOrEmpty(publicDir))
throw new ArgumentException("DOCSDIR should not be empty");
return Path.Combine(publicDir, "testResults.xml");
}
}
protected override IEnumerable<TestAssemblyInfo> GetTestAssemblies() => Array.Empty<TestAssemblyInfo>();
protected override void TerminateWithSuccess() {}
public override TextWriter? Logger => null;
}
sealed class WasmEntryPoint : WasmApplicationEntryPointBase
{
private Func<TestFilter?, TestSummary> _runTestsCallback;
private string _assemblyName;
private string? _methodNameToRun;
public WasmEntryPoint(Func<TestFilter?, TestSummary> runTestsCallback, string assemblyName, string? methodNameToRun)
{
_runTestsCallback = runTestsCallback;
_assemblyName = assemblyName;
_methodNameToRun = methodNameToRun;
}
protected override int? MaxParallelThreads => 1;
protected override bool IsXunit => true;
protected override TestRunner GetTestRunner(LogWriter logWriter)
{
var runner = new GeneratedTestRunner(logWriter, _runTestsCallback, _assemblyName);
if (_methodNameToRun is not null)
{
runner.SkipMethod(_methodNameToRun, isExcluded: false);
}
return runner;
}
protected override IEnumerable<TestAssemblyInfo> GetTestAssemblies() => Array.Empty<TestAssemblyInfo>();
}
class SimpleDevice : IDevice
{
public SimpleDevice(string assemblyName)
{
BundleIdentifier = "net.dot." + assemblyName;
}
public string BundleIdentifier {get;}
public string? UniqueIdentifier { get; }
public string? Name { get; }
public string? Model { get; }
public string? SystemName { get; }
public string? SystemVersion { get; }
public string? Locale { get; }
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<CLRTestKind>BuildOnly</CLRTestKind>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<GenerateRunScript>false</GenerateRunScript>
<TargetFramework>$(NetCoreAppToolCurrent)</TargetFramework>
<EnableDefaultItems>true</EnableDefaultItems>
<Nullable>enable</Nullable>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="../XUnitWrapperLibrary/XUnitWrapperLibrary.csproj" />
<PackageReference Include="Microsoft.DotNet.XHarness.TestRunners.Common" Version="$(MicrosoftDotNetXHarnessTestRunnersCommonVersion)" />
</ItemGroup>
</Project>
......@@ -126,11 +126,18 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
}
bool isMergedTestRunnerAssembly = configOptions.GlobalOptions.IsMergedTestRunnerAssembly();
configOptions.GlobalOptions.TryGetValue("build_property.TargetOS", out string? targetOS);
// TODO: add error (maybe in MSBuild that referencing CoreLib directly from a merged test runner is not supported)
if (isMergedTestRunnerAssembly)
{
context.AddSource("FullRunner.g.cs", GenerateFullTestRunner(methods, aliasMap, assemblyName));
if (targetOS?.ToLowerInvariant() is "ios" or "iossimulator" or "tvos" or "tvossimulator" or "maccatalyst" or "android" or "browser")
{
context.AddSource("XHarnessRunner.g.cs", GenerateXHarnessTestRunner(methods, aliasMap, assemblyName));
}
else
{
context.AddSource("FullRunner.g.cs", GenerateFullTestRunner(methods, aliasMap, assemblyName));
}
}
else
{
......@@ -162,6 +169,34 @@ private static string GenerateFullTestRunner(ImmutableArray<ITestInfo> testInfos
return builder.ToString();
}
private static string GenerateXHarnessTestRunner(ImmutableArray<ITestInfo> testInfos, ImmutableDictionary<string, string> aliasMap, string assemblyName)
{
// For simplicity, we'll use top-level statements for the generated Main method.
StringBuilder builder = new();
builder.AppendLine(string.Join("\n", aliasMap.Values.Where(alias => alias != "global").Select(alias => $"extern alias {alias};")));
builder.AppendLine("try {");
builder.AppendLine($@"return await XHarnessRunnerLibrary.RunnerEntryPoint.RunTests(RunTests, ""{assemblyName}"", args.Length != 0 ? args[0] : null);");
builder.AppendLine("} catch(System.Exception ex) { System.Console.WriteLine(ex.ToString()); return 101; }");
builder.AppendLine("static XUnitWrapperLibrary.TestSummary RunTests(XUnitWrapperLibrary.TestFilter filter)");
builder.AppendLine("{");
builder.AppendLine("XUnitWrapperLibrary.TestSummary summary = new();");
ITestReporterWrapper reporter = new WrapperLibraryTestSummaryReporting("summary", "filter");
builder.AppendLine("System.Diagnostics.Stopwatch stopwatch = new();");
foreach (ITestInfo test in testInfos)
{
builder.AppendLine(test.GenerateTestExecution(reporter));
}
builder.AppendLine("return summary;");
builder.AppendLine("}");
return builder.ToString();
}
private static string GenerateStandaloneSimpleTestRunner(ImmutableArray<ITestInfo> testInfos, ImmutableDictionary<string, string> aliasMap, string consoleType)
{
// For simplicity, we'll use top-level statements for the generated Main method.
......
......@@ -9,17 +9,17 @@ namespace XUnitWrapperLibrary;
public class TestFilter
{
interface ISearchClause
public interface ISearchClause
{
bool IsMatch(string fullyQualifiedName, string displayName, string[] traits);
}
enum TermKind
public enum TermKind
{
FullyQualifiedName,
DisplayName
}
sealed class NameClause : ISearchClause
public sealed class NameClause : ISearchClause
{
public NameClause(TermKind kind, string filter, bool substring)
{
......@@ -48,7 +48,7 @@ public bool IsMatch(string fullyQualifiedName, string displayName, string[] trai
}
}
sealed class AndClause : ISearchClause
public sealed class AndClause : ISearchClause
{
private ISearchClause _left;
private ISearchClause _right;
......@@ -62,7 +62,7 @@ public AndClause(ISearchClause left, ISearchClause right)
public bool IsMatch(string fullyQualifiedName, string displayName, string[] traits) => _left.IsMatch(fullyQualifiedName, displayName, traits) && _right.IsMatch(fullyQualifiedName, displayName, traits);
}
sealed class OrClause : ISearchClause
public sealed class OrClause : ISearchClause
{
private ISearchClause _left;
private ISearchClause _right;
......@@ -76,7 +76,7 @@ public OrClause(ISearchClause left, ISearchClause right)
public bool IsMatch(string fullyQualifiedName, string displayName, string[] traits) => _left.IsMatch(fullyQualifiedName, displayName, traits) || _right.IsMatch(fullyQualifiedName, displayName, traits);
}
sealed class NotClause : ISearchClause
public sealed class NotClause : ISearchClause
{
private ISearchClause _inner;
......@@ -99,5 +99,10 @@ public TestFilter(string filterString)
_filter = new NameClause(TermKind.FullyQualifiedName, filterString, substring: true);
}
public TestFilter(ISearchClause filter)
{
_filter = filter;
}
public bool ShouldRunTest(string fullyQualifiedName, string displayName, string[]? traits = null) => _filter is null ? true : _filter.IsMatch(fullyQualifiedName, displayName, traits ?? Array.Empty<string>());
}
......@@ -11,11 +11,9 @@ public class TestSummary
{
readonly record struct TestResult(string Name, string ContainingTypeName, string MethodName, TimeSpan Duration, Exception? Exception, string? SkipReason);
private int _numPassed = 0;
private int _numFailed = 0;
private int _numSkipped = 0;
public int PassedTests { get; private set; } = 0;
public int FailedTests { get; private set; } = 0;
public int SkippedTests { get; private set; } = 0;
private readonly List<TestResult> _testResults = new();
......@@ -23,19 +21,19 @@ public class TestSummary
public void ReportPassedTest(string name, string containingTypeName, string methodName, TimeSpan duration)
{
_numPassed++;
PassedTests++;
_testResults.Add(new TestResult(name, containingTypeName, methodName, duration, null, null));
}
public void ReportFailedTest(string name, string containingTypeName, string methodName, TimeSpan duration, Exception ex)
{
_numFailed++;
FailedTests++;
_testResults.Add(new TestResult(name, containingTypeName, methodName, duration, ex, null));
}
public void ReportSkippedTest(string name, string containingTypeName, string methodName, TimeSpan duration, string reason)
{
_numSkipped++;
SkippedTests++;
_testResults.Add(new TestResult(name, containingTypeName, methodName, duration, null, reason));
}
......@@ -53,9 +51,9 @@ public string GetTestResultOutput(string assemblyName)
run-time=""{_testRunStart.ToString("hh:mm:ss")}""
time=""{totalRunSeconds}""
total=""{_testResults.Count}""
passed=""{_numPassed}""
failed=""{_numFailed}""
skipped=""{_numSkipped}""
passed=""{PassedTests}""
failed=""{FailedTests}""
skipped=""{SkippedTests}""
errors=""0"">");
resultsFile.AppendLine($@"
......@@ -63,9 +61,9 @@ public string GetTestResultOutput(string assemblyName)
name=""Collection""
time=""{totalRunSeconds}""
total=""{_testResults.Count}""
passed=""{_numPassed}""
failed=""{_numFailed}""
skipped=""{_numSkipped}""
passed=""{PassedTests}""
failed=""{FailedTests}""
skipped=""{SkippedTests}""
errors=""0""
>");
......
<Project>
<!-- Build infrastructure support to enable running merged test runner assemblies like regular tests on mobile platforms. -->
<PropertyGroup>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<MainLibraryFileName>$(AssemblyName).dll</MainLibraryFileName>
<WasmMainAssemblyFileName>$(AssemblyName).dll</WasmMainAssemblyFileName>
<TestFramework>GeneratedRunner</TestFramework>
</PropertyGroup>
<Target Name="_AddRuntimeLibsToPublishAssets" BeforeTargets="PrepareForPublish" DependsOnTargets="ResolveLibrariesRuntimeFilesFromLocalBuild;ResolveRuntimeFilesFromLocalBuild">
<ItemGroup>
<RuntimePackAsset Include="@(RuntimeFiles);@(LibrariesRuntimeFiles)" AssetType="runtime" />
</ItemGroup>
</Target>
<ItemGroup>
<RuntimePackAsset Include="$(TargetingPackPath)/*.dll" AssetType="runtime" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(RepoRoot)/src/tests/Common/XHarnessRunnerLibrary/XHarnessRunnerLibrary.csproj" />
</ItemGroup>
<!-- Don't use the usual script generation, the scripts it generates are not useful for these tests. -->
<Target Name="GenerateExecutionScriptsInternal" />
<Target Name="GenerateLocalRunnerScript" DependsOnTargets="GenerateRunScript" AfterTargets="PublishTestAsSelfContained" />
<Import Project="$(RepositoryEngineeringDir)testing\tests.targets" />
</Project>
\ No newline at end of file
......@@ -4,5 +4,6 @@
<Target Name="Compile" />
<Target Name="CoreCompile" />
<Target Name="Build" />
<Target Name="PublishTestAsSelfContained" />
</Project>
\ No newline at end of file
......@@ -157,6 +157,12 @@
<ZapRequire Condition="'$(ZapRequire)' == ''">2</ZapRequire>
</PropertyGroup>
<!-- Don't append the RID to the output path for our test tree. Our test builds are already separated by RID
and including the RID breaks some of our glob expressions in issues.targets -->
<PropertyGroup>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
<PropertyGroup>
<!-- Specify the target framework of the common test dependency project.json. -->
<NuGetTargetMoniker>$(NetCoreAppCurrentToolTargetFrameworkMoniker)</NuGetTargetMoniker>
......@@ -185,5 +191,8 @@
<PropertyGroup Condition="'$(IsTestsCommonProject)' != 'true'">
<BuildAsStandalone Condition="'$(BuildAsStandalone)' == ''">true</BuildAsStandalone>
<OutputType Condition="$(BuildAsStandalone)">Exe</OutputType>
<TestFramework>GeneratedRunner</TestFramework>
</PropertyGroup>
<Import Project="$(RepositoryEngineeringDir)testing\tests.props" Condition="'$(IsTestsCommonProject)' != 'true'" />
</Project>
......@@ -16,6 +16,8 @@
<CLRTestKind Condition="'$(CLRTestKind)' == '' and '$(OutputType)' == 'Exe'">BuildAndRun</CLRTestKind>
<CLRTestKind Condition="'$(CLRTestKind)' == ''">BuildOnly</CLRTestKind>
<CLRTestPriority Condition="'$(CLRTestPriority)' == ''">0</CLRTestPriority>
<!-- Merged test runner assemblies might not have any non-generated sources, and that's okay -->
<NoWarn Condition="'$(IsMergedTestRunnerAssembly)' == 'true'">$(NoWarn);CS2008</NoWarn>
</PropertyGroup>
<!-- All CLRTests need to be of a certain "kind". These kinds are enumerated below.
......@@ -91,12 +93,6 @@
<_CopyNativeProjectBinaries Condition="'$(_CopyNativeProjectBinaries)' == ''">true</_CopyNativeProjectBinaries>
</PropertyGroup>
<!-- if we have determined that there is nothing to build, overwrite the build targets so that nothing happens -->
<Import Project="$(MSBuildThisFileDirectory)Common\nobuild.targets" Condition="'$(_WillCLRTestProjectBuild)' == 'false'" />
<!-- RunOnly projects have a special build for dependent projects -->
<Import Project="$(MSBuildThisFileDirectory)Common\runonly.targets" Condition="'$(CLRTestKind)' == 'RunOnly'" />
<!-- We enable auto-unification of assembly references after importing the common targets. Binding redirects are not needed
for coreclr since it auto-unifies, so the warnings we get without this setting are just noise -->
<PropertyGroup>
......@@ -440,7 +436,16 @@
<Import Project="$(RepoRoot)/src/tests/Common/XUnitWrapperGenerator/XUnitWrapperGenerator.props" />
<Import Project="$(RepoRoot)eng/liveBuilds.targets" />
<Import Project="$(MSBuildProjectFullPath).targets" Condition="Exists('$(MSBuildProjectFullPath).targets')"/>
<Import Project="$(RepoRoot)/src/tests/Common/mergedrunnermobile.targets" Condition="'$(IsMergedTestRunnerAssembly)' == 'true' and '$(TargetsMobile)' == 'true'" />
<Target Name="GetBinPlaceTargetFramework" />
<Import Project="$(RepoRoot)src\coreclr\clr.featuredefines.props" />
<!-- if we have determined that there is nothing to build, overwrite the build targets so that nothing happens -->
<Import Project="$(MSBuildThisFileDirectory)Common\nobuild.targets" Condition="'$(_WillCLRTestProjectBuild)' == 'false'" />
<!-- RunOnly projects have a special build for dependent projects -->
<Import Project="$(MSBuildThisFileDirectory)Common\runonly.targets" Condition="'$(CLRTestKind)' == 'RunOnly'" />
</Project>
<Project>
<PropertyGroup>
<BuildAsStandalone>false</BuildAsStandalone>
</PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props, '$(MSBuildThisFileDirectory)..'))" />
<PropertyGroup>
<AssemblyName>$(MSBuildProjectName.Replace("_il_d", "").Replace("_il_r", ""))</AssemblyName>
</PropertyGroup>
</Project>
\ No newline at end of file
......@@ -22,16 +22,11 @@
}
.assembly 'float64_range1'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Float64_Range1
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -95,7 +90,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -144,49 +139,49 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 9999
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10000
ldc.i4.1
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10005
ldc.i4.1
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10006
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range1::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -22,16 +22,11 @@
}
.assembly 'float64_range2'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Float64_Range2
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -95,7 +90,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32 Main() il managed
.method public hidebysig static int32 Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
01 00 00 00
......@@ -143,49 +138,49 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.1
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.1
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 5
ldc.i4.1
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 6
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10005
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10006
ldc.i4.0
call int32 JitTest.Test::try_index(float64[10000...10005], int32, int32)
call int32 JitTest.Float64_Range2::try_index(float64[10000...10005], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -22,15 +22,11 @@
}
.assembly 'int32_0'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_0
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -92,7 +88,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -140,55 +136,55 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 15
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 16
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1300000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...], int32, int32)
call int32 JitTest.Int32_0::try_index(int32[0...], int32, int32)
brfalse Failure
ldc.i4 0x64
......
......@@ -22,15 +22,11 @@
}
.assembly 'int32_0_5a'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_0_5A
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -92,7 +88,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -141,55 +137,55 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 5
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 6
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1300000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5A::try_index(int32[0...5], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -22,15 +22,11 @@
}
.assembly 'int32_0_5b'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_0_5B
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -92,7 +88,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -141,55 +137,55 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 5
ldc.i4.1
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 6
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1300000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[0...5], int32, int32)
call int32 JitTest.Int32_0_5B::try_index(int32[0...5], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -20,17 +20,14 @@
}
.assembly 'int32_1'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_1
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -92,7 +89,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -141,61 +138,61 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.0
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.1
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 15
ldc.i4.1
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 16
ldc.i4.1
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 17
ldc.i4.0
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1300000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[1...], int32, int32)
call int32 JitTest.Int32_1::try_index(int32[1...], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -22,15 +22,11 @@
}
.assembly 'int32_m1'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_M1
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -92,7 +88,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -141,67 +137,67 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 -6
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 -5
ldc.i4.1
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.1
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 9
ldc.i4.1
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10
ldc.i4.1
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 11
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 17
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1000000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 1300000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-5...], int32, int32)
call int32 JitTest.Int32_M1::try_index(int32[-5...], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -22,15 +22,11 @@
}
.assembly 'int32_neg_range'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_Neg_Range
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -92,7 +88,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -141,61 +137,61 @@
ldloc.0
ldc.i4 -800000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 -80006
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 -80005
ldc.i4.1
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 -80000
ldc.i4.1
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 -79999
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 -1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 0
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 0xfffffeff
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 0x7ffffeff
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 7000000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[-80005...-80000], int32, int32)
call int32 JitTest.Int32_Neg_Range::try_index(int32[-80005...-80000], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -22,16 +22,11 @@
}
.assembly 'int32_range1'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_Range1
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -93,7 +88,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32
.method public hidebysig static int32
Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
......@@ -142,49 +137,49 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 9999
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10000
ldc.i4.1
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10005
ldc.i4.1
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10006
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range1::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
......@@ -22,16 +22,11 @@
}
.assembly 'int32_range2'
{
}
.assembly extern xunit.core {}
.namespace JitTest
{
.class private auto ansi Test
.class public auto ansi Int32_Range2
extends [mscorlib]System.Object
{
.method private hidebysig static int32
......@@ -93,7 +88,7 @@
ret
} // end of method 'Test::try_index'
.method private hidebysig static int32 Main() il managed
.method public hidebysig static int32 Main() il managed
{
.custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = (
01 00 00 00
......@@ -141,49 +136,49 @@
ldloc.0
ldc.i4 -10000
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.m1
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.0
ldc.i4.1
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4.1
ldc.i4.1
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 5
ldc.i4.1
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 6
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10005
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldloc.0
ldc.i4 10006
ldc.i4.0
call int32 JitTest.Test::try_index(int32[10000...10005], int32, int32)
call int32 JitTest.Int32_Range2::try_index(int32[10000...10005], int32, int32)
brfalse Failure
ldc.i4 0x64
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>Full</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RestorePackages>true</RestorePackages>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk.IL">
<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>
<PropertyGroup>
<DebugType>PdbOnly</DebugType>
</PropertyGroup>
......
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<BuildAsStandalone>false</BuildAsStandalone>
<IsMergedTestRunnerAssembly>true</IsMergedTestRunnerAssembly>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="range/*_d.ilproj" />
</ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<BuildAsStandalone>false</BuildAsStandalone>
<IsMergedTestRunnerAssembly>true</IsMergedTestRunnerAssembly>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="range/*_r.ilproj" />
</ItemGroup>
</Project>
......@@ -25,6 +25,7 @@
<RestoreProjects Include="Common\CoreCLRTestLibrary\CoreCLRTestLibrary.csproj" />
<RestoreProjects Include="Common\XUnitWrapperGenerator\XUnitWrapperGenerator.csproj" />
<RestoreProjects Include="Common\XUnitWrapperLibrary\XUnitWrapperLibrary.csproj" />
<RestoreProjects Include="Common\XHarnessRunnerLibrary\XHarnessRunnerLibrary.csproj" />
<RestoreProjects Include="Common\external\external.csproj" />
<RestoreProjects Include="Common\ilasm\ilasm.ilproj" />
</ItemGroup>
......@@ -210,7 +211,7 @@
<MakeDir Directories="$(BuildDir)"/>
<ItemGroup>
<AllCMDsPresent Include="$(_CMDDIR)\**\*.$(TestScriptExtension)"/>
<AllCMDsPresent Include="$(_CMDDIR)\**\*.$(TestScriptExtension)" Exclude="$(_CMDDIR)\**\AppBundle\*.$(TestScriptExtension)" />
<TestAssemblies Include="@(AllCMDsPresent->'%(RelativeDir)%(Filename).dll')" />
<TestAssemblyDirs Include="@(AllCMDsPresent->'%(RelativeDir)')" />
<AssembliesInTestDirs Include="%(AllCMDsPresent.RelativeDir)*.dll" Exclude="@(TestAssemblies)"/>
......@@ -286,7 +287,7 @@
<MicrosoftNetCoreAppRuntimePackNativeDir>$(MicrosoftNetCoreAppRuntimePackDir)/native</MicrosoftNetCoreAppRuntimePackNativeDir>
</PropertyGroup>
<ItemGroup>
<AllTestScripts Include="$(_CMDDIR)\**\*.sh" />
<AllTestScripts Include="$(_CMDDIR)\**\*.sh" Exclude="$(_CMDDIR)\**\AppBundle\*.sh" />
</ItemGroup>
<ItemGroup>
<TestExclusions Include="@(ExcludeList->Metadata('FullPath'))" Condition="$(HaveExcludes)" />
......@@ -385,7 +386,13 @@
<AllRunnableTestPaths Remove="$(XunitTestBinBase)\**\run-v8.sh" Condition="'$(TargetArchitecture)' == 'wasm'" />
<MergedAssemblyMarkerPaths Include="$(XunitTestBinBase)\**\*.MergedTestAssembly"/>
<MergedRunnableTestPaths Include="$([System.IO.Path]::ChangeExtension('%(MergedAssemblyMarkerPaths.Identity)', '.$(TestScriptExtension)'))" />
<LegacyRunnableTestPaths Include="@(AllRunnableTestPaths)" Exclude="@(MergedRunnableTestPaths)" />
</ItemGroup>
<!-- Remove the cmd/sh scripts for merged test runner app bundles from our list. -->
<PropertyGroup Condition="'$(TargetsMobile)' == 'true'">
<MergedRunnableTestAppBundleScriptPathsPattern>@(MergedAssemblyMarkerPaths->'%(RootDir)%(Directory)AppBundle/**/*.$(TestScriptExtension)')</MergedRunnableTestAppBundleScriptPathsPattern>
</PropertyGroup>
<ItemGroup>
<LegacyRunnableTestPaths Include="@(AllRunnableTestPaths)" Exclude="@(MergedRunnableTestPaths);$(MergedRunnableTestAppBundleScriptPathsPattern)" />
</ItemGroup>
</Target>
......
......@@ -256,7 +256,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\","").
</PropertyGroup>
<ItemGroup>
<AllCMDsPresent Include="$(_CMDDIR)\**\*.$(TestScriptExtension)" />
<AllCMDsPresent Include="$(_CMDDIR)\**\*.$(TestScriptExtension)" Exclude="$(_CMDDIR)\**\AppBundle\*.$(TestScriptExtension)" />
<AllCMDsPresent Remove="$(_CMDDIR)\**\run-v8.sh" Condition="'$(TargetArchitecture)' == 'wasm'" />
<AllCMDsPresent Remove="@(MergedRunnableTestPaths)" />
</ItemGroup>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册