From 7e255ddcb5e23774e82099b34345d4b7df961e1a Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Tue, 16 Nov 2021 09:34:06 +0100 Subject: [PATCH] [xharness] Add support for running xtro in .NET mode. --- tests/xharness/Jenkins/Jenkins.cs | 21 +++++++++++++++++++ .../xharness/Jenkins/TestTasks/RunXtroTask.cs | 12 ++++++++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/tests/xharness/Jenkins/Jenkins.cs b/tests/xharness/Jenkins/Jenkins.cs index 85f732f4e7..b210b50ee9 100644 --- a/tests/xharness/Jenkins/Jenkins.cs +++ b/tests/xharness/Jenkins/Jenkins.cs @@ -189,11 +189,32 @@ namespace Xharness.Jenkins { var runXtroReporter = new RunXtroTask (this, buildXtroTests, processManager, crashReportSnapshotFactory) { Platform = TestPlatform.Mac, TestName = buildXtroTests.TestName, + Mode = "Legacy Xamarin", Ignored = buildXtroTests.Ignored, WorkingDirectory = buildXtroTests.WorkingDirectory, + AnnotationsDirectory = buildXtroTests.WorkingDirectory, }; Tasks.Add (runXtroReporter); + var buildDotNetXtroTests = new MakeTask (jenkins: this, processManager: processManager) { + Platform = TestPlatform.All, + TestName = "Xtro", + Target = "dotnet-wrench", + WorkingDirectory = Path.Combine (HarnessConfiguration.RootDirectory, "xtro-sharpie"), + Ignored = !IncludeXtro && !IncludeDotNet, + Timeout = TimeSpan.FromMinutes (15), + }; + + var runDotNetXtroReporter = new RunXtroTask (this, buildDotNetXtroTests, processManager, crashReportSnapshotFactory) { + Platform = TestPlatform.Mac, + TestName = buildDotNetXtroTests.TestName, + Mode = ".NET", + Ignored = buildDotNetXtroTests.Ignored, + WorkingDirectory = buildDotNetXtroTests.WorkingDirectory, + AnnotationsDirectory = Path.Combine (buildDotNetXtroTests.WorkingDirectory, "api-annotations-dotnet"), + }; + Tasks.Add (runDotNetXtroReporter); + var buildDotNetGeneratorProject = new TestProject (Path.GetFullPath (Path.Combine (HarnessConfiguration.RootDirectory, "bgen", "bgen-tests.csproj"))) { IsDotNetProject = true, }; diff --git a/tests/xharness/Jenkins/TestTasks/RunXtroTask.cs b/tests/xharness/Jenkins/TestTasks/RunXtroTask.cs index 6f5ba56245..a243960541 100644 --- a/tests/xharness/Jenkins/TestTasks/RunXtroTask.cs +++ b/tests/xharness/Jenkins/TestTasks/RunXtroTask.cs @@ -8,21 +8,27 @@ using Microsoft.DotNet.XHarness.iOS.Shared.Logging; namespace Xharness.Jenkins.TestTasks { class RunXtroTask : MacExecuteTask { + public string AnnotationsDirectory; + string mode; + public RunXtroTask (Jenkins jenkins, BuildToolTask build_task, IMlaunchProcessManager processManager, ICrashSnapshotReporterFactory crashReportSnapshotFactory) : base (jenkins, build_task, processManager, crashReportSnapshotFactory) { } + public override string Mode { + get => mode; + set => mode = value; + } + public override async Task RunTestAsync () { - var projectDir = System.IO.Path.GetDirectoryName (ProjectFile); - using (var resource = await NotifyAndAcquireDesktopResourceAsync ()) { using (var proc = new Process ()) { proc.StartInfo.FileName = "/Library/Frameworks/Mono.framework/Commands/mono"; var reporter = System.IO.Path.Combine (WorkingDirectory, "xtro-report/bin/Debug/xtro-report.exe"); var results = System.IO.Path.Combine (Logs.Directory, $"xtro-{Timestamp}"); - proc.StartInfo.Arguments = $"--debug {reporter} {WorkingDirectory} {results}"; + proc.StartInfo.Arguments = $"--debug {reporter} {AnnotationsDirectory} {results}"; Jenkins.MainLog.WriteLine ("Executing {0} ({1})", TestName, Mode); var log = Logs.Create ($"execute-xtro-{Timestamp}.txt", LogType.ExecutionLog.ToString ());