Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }