diff options
author | Jens Geyer <jensg@apache.org> | 2021-05-25 23:42:35 +0200 |
---|---|---|
committer | Jens Geyer <jensg@apache.org> | 2021-05-26 09:25:39 +0200 |
commit | 63d114de97f8ddb67c1fb33d75ccb91a3b487b92 (patch) | |
tree | 79ff729d216dad2d83fcc2289d28d551eadc3776 /test | |
parent | 70992f1e74e525461121fb9e607000b19f31a4ca (diff) | |
download | thrift-63d114de97f8ddb67c1fb33d75ccb91a3b487b92.tar.gz |
THRIFT-5422 add threadpool server to netstd test suite impl
Client: netstd
Patch: Jens Geyer
This closes #2398
Diffstat (limited to 'test')
-rw-r--r-- | test/netstd/Server/TestServer.cs | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/test/netstd/Server/TestServer.cs b/test/netstd/Server/TestServer.cs index 895c3ffd5..471d6c824 100644 --- a/test/netstd/Server/TestServer.cs +++ b/test/netstd/Server/TestServer.cs @@ -60,11 +60,19 @@ namespace ThriftTest Framed } + internal enum ServerChoice + { + Simple, + ThreadPool + } + + internal class ServerParam { internal BufferChoice buffering = BufferChoice.None; internal ProtocolChoice protocol = ProtocolChoice.Binary; internal TransportChoice transport = TransportChoice.Socket; + internal ServerChoice server = ServerChoice.Simple; internal int port = 9090; internal string pipe = null; @@ -103,13 +111,17 @@ namespace ThriftTest { protocol = ProtocolChoice.Json; } + else if (args[i] == "--server-type=simple") + { + server = ServerChoice.Simple; + } else if (args[i] == "--threaded" || args[i] == "--server-type=threaded") { throw new NotImplementedException(args[i]); } else if (args[i] == "--threadpool" || args[i] == "--server-type=threadpool") { - throw new NotImplementedException(args[i]); + server = ServerChoice.ThreadPool; } else if (args[i] == "--prototype" || args[i] == "--processor=prototype") { @@ -613,16 +625,23 @@ namespace ThriftTest var testProcessor = new ThriftTest.AsyncProcessor(testHandler); var processorFactory = new TSingletonProcessorFactory(testProcessor); - TServer serverEngine = new TSimpleAsyncServer(processorFactory, trans, transFactory, transFactory, proto, proto, logger); + var poolconfig = new TThreadPoolAsyncServer.Configuration(); // use platform defaults + TServer serverEngine = param.server switch + { + ServerChoice.Simple => new TSimpleAsyncServer(processorFactory, trans, transFactory, transFactory, proto, proto, logger), + ServerChoice.ThreadPool => new TThreadPoolAsyncServer(processorFactory, trans, transFactory, transFactory, proto, proto, poolconfig, logger), + _ => new TSimpleAsyncServer(processorFactory, trans, transFactory, transFactory, proto, proto, logger) + }; //Server event handler var serverEvents = new MyServerEventHandler(); serverEngine.SetEventHandler(serverEvents); // Run it - var where = (!string.IsNullOrEmpty(param.pipe)) ? "on pipe " + param.pipe : "on port " + param.port; - Console.WriteLine("Starting the AsyncBaseServer " + where + - " with processor TPrototypeProcessorFactory prototype factory " + + var where = (!string.IsNullOrEmpty(param.pipe)) ? "pipe " + param.pipe : "port " + param.port; + Console.WriteLine("Running "+ serverEngine.GetType().Name + + " at "+ where + + " using "+ processorFactory.GetType().Name + " processor prototype factory " + (param.buffering == BufferChoice.Buffered ? " with buffered transport" : "") + (param.buffering == BufferChoice.Framed ? " with framed transport" : "") + (param.transport == TransportChoice.TlsSocket ? " with encryption" : "") + |