public override Task Start(TestContext ctx, CancellationToken cancellationToken) { ListenerBackend backend; if ((Flags & HttpServerFlags.HttpListener) != 0) { backend = new HttpListenerBackend(ctx, this); } else { backend = new SocketBackend(ctx, this); } if (Interlocked.CompareExchange(ref currentBackend, backend, null) != null) { throw new InternalErrorException(); } var type = (Flags & HttpServerFlags.ParallelListener) != 0 ? ListenerType.Parallel : ListenerType.Instrumentation; var listener = new Listener(ctx, this, type, backend); listener.Start(); currentListener = listener; return(Handler.CompletedTask); }
public HttpBackend CreateInstance(TestContext ctx) { var endpoint = ConnectionTestHelper.GetEndPoint(ctx); ConnectionParameters parameters; ISslStreamProvider sslStreamProvider = null; var flags = GetHttpFlags(ctx); if (GetParameters(ctx, out parameters)) { sslStreamProvider = GetSslStreamProvider(ctx); } HttpBackend backend; if ((flags & HttpFlags.HttpListener) != 0) { backend = new HttpListenerBackend(endpoint, endpoint, flags, parameters, sslStreamProvider); } else { backend = new BuiltinHttpBackend(endpoint, endpoint, flags, parameters, sslStreamProvider); } return(backend); }