Files
ParkingRobot/ClumsyPilot/tests/TrajectoryPlanningVisualizationVerificationHost/Program.cs
T

66 lines
2.0 KiB
C#
Raw Normal View History

2026-08-06 09:26:06 +08:00
using System;
2026-08-06 09:52:04 +08:00
using System.Diagnostics;
using System.Threading;
using TrajectoryPlanningVisualization;
2026-08-06 09:26:06 +08:00
namespace TrajectoryPlanningVisualizationVerificationHost;
internal static class Program
{
2026-08-06 09:52:04 +08:00
private static int Main(string[] args)
2026-08-06 09:26:06 +08:00
{
2026-08-06 09:52:04 +08:00
if (args.Length == 2 && args[0] == "--smoke-seconds" &&
int.TryParse(args[1], out int seconds) && seconds > 0)
{
return RunSmoke(seconds);
}
2026-08-06 09:26:06 +08:00
try
{
ContractChecks.Run();
2026-08-06 09:27:58 +08:00
RuntimeChecks.Run();
2026-08-06 09:38:12 +08:00
ServerChecks.Run();
2026-08-06 09:52:04 +08:00
WebAssetChecks.Run();
2026-08-06 09:26:06 +08:00
Console.WriteLine("PASS trajectory-planning-visualization");
return 0;
}
catch (Exception exception)
{
Console.Error.WriteLine(exception);
return 1;
}
}
2026-08-06 09:52:04 +08:00
private static int RunSmoke(int seconds)
{
try
{
using var session = new PlanningVisualizationSession(
new PlanningVisualizationOptions { Port = 0, RefreshRateHz = 10, HistoryCycleLimit = 60 });
PlanningVisualizationSessionInfo info = session.Start(SampleSnapshotFactory.CreateStaticSnapshot());
Console.WriteLine(info.Uri.AbsoluteUri);
Stopwatch stopwatch = Stopwatch.StartNew();
long sequence = 1L;
while (stopwatch.Elapsed < TimeSpan.FromSeconds(seconds))
{
session.Publish(SampleSnapshotFactory.CreateDynamicSnapshot(sequence++));
TimeSpan remaining = TimeSpan.FromSeconds(seconds) - stopwatch.Elapsed;
if (remaining <= TimeSpan.Zero)
{
break;
}
Thread.Sleep(remaining < TimeSpan.FromMilliseconds(100) ? remaining : TimeSpan.FromMilliseconds(100));
}
session.Stop();
return 0;
}
catch (Exception exception)
{
Console.Error.WriteLine(exception);
return 1;
}
}
2026-08-06 09:26:06 +08:00
}