66 lines
2.0 KiB
C#
66 lines
2.0 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
using System.Threading;
|
|
using TrajectoryPlanningVisualization;
|
|
|
|
namespace TrajectoryPlanningVisualizationVerificationHost;
|
|
|
|
internal static class Program
|
|
{
|
|
private static int Main(string[] args)
|
|
{
|
|
if (args.Length == 2 && args[0] == "--smoke-seconds" &&
|
|
int.TryParse(args[1], out int seconds) && seconds > 0)
|
|
{
|
|
return RunSmoke(seconds);
|
|
}
|
|
|
|
try
|
|
{
|
|
ContractChecks.Run();
|
|
RuntimeChecks.Run();
|
|
ServerChecks.Run();
|
|
WebAssetChecks.Run();
|
|
Console.WriteLine("PASS trajectory-planning-visualization");
|
|
return 0;
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
Console.Error.WriteLine(exception);
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|