using System; using System.IO; namespace Microsoft.AspNetCore.WebSockets.ConformanceTest.Autobahn { /// /// Wrapper around the Autobahn Test Suite's "wstest" app. /// public class Wstest : Executable { private static Lazy _instance = new Lazy(Create); public static readonly string DefaultLocation = LocateWstest(); public static Wstest Default => _instance.Value; public Wstest(string path) : base(path) { } private static Wstest Create() { var location = LocateWstest(); return (location == null || !File.Exists(location)) ? null : new Wstest(location); } private static string LocateWstest() { var location = Environment.GetEnvironmentVariable("ASPNETCORE_WSTEST_PATH"); if (string.IsNullOrEmpty(location)) { location = Locate("wstest"); } return location; } } }