[xharness] Add support for running xtro in .NET mode.

This commit is contained in:
Rolf Bjarne Kvinge 2021-11-16 09:34:06 +01:00
Родитель 234f593511
Коммит 7e255ddcb5
2 изменённых файлов: 30 добавлений и 3 удалений

Просмотреть файл

@ -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,
};

Просмотреть файл

@ -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 ());