summaryrefslogtreecommitdiff
path: root/test/netstd
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2021-05-25 23:42:35 +0200
committerJens Geyer <jensg@apache.org>2021-05-26 09:25:39 +0200
commit63d114de97f8ddb67c1fb33d75ccb91a3b487b92 (patch)
tree79ff729d216dad2d83fcc2289d28d551eadc3776 /test/netstd
parent70992f1e74e525461121fb9e607000b19f31a4ca (diff)
downloadthrift-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/netstd')
-rw-r--r--test/netstd/Server/TestServer.cs29
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" : "") +