summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJens Geyer <jensg@apache.org>2022-02-10 23:03:02 +0100
committerJens Geyer <Jens-G@users.noreply.github.com>2022-02-12 01:15:16 +0100
commitd2c28b349d94e99327a402ce52bcb66f8ab9c769 (patch)
tree4abb7a53eed24e46cf1f2b80a7ecfce9e60cfdd4 /test
parent52d263e77c48bbf7cbabd03161107557d1e410b1 (diff)
downloadthrift-d2c28b349d94e99327a402ce52bcb66f8ab9c769.tar.gz
THRIFT-5514 netstd test client slow in multithread mode
Client: netstd Patch: Jens Geyer
Diffstat (limited to 'test')
-rw-r--r--test/netstd/Client/TestClient.cs23
1 files changed, 18 insertions, 5 deletions
diff --git a/test/netstd/Client/TestClient.cs b/test/netstd/Client/TestClient.cs
index 0c80b9c48..29c0d2ef3 100644
--- a/test/netstd/Client/TestClient.cs
+++ b/test/netstd/Client/TestClient.cs
@@ -411,15 +411,28 @@ namespace ThriftTest
return ErrorUnknown;
}
- var tests = Enumerable.Range(0, param.numThreads).Select(_ => new ClientTest(param)).ToArray();
-
//issue tests on separate threads simultaneously
+ var nThreads = Math.Max(param.numThreads, 1);
+ Console.Write("Starting {0} test thread(s) ", nThreads);
+ var tasks = new Task[nThreads];
var start = DateTime.Now;
- var tasks = tests.Select(test => test.Execute()).ToArray();
+ var retcode = 0;
+ for (var i = 0; i < tasks.Length; ++i)
+ {
+ Console.Write('.');
+ tasks[i] = Task.Run(async () =>
+ {
+ var test = new ClientTest(param);
+ await test.Execute();
+ lock (tasks)
+ retcode |= test.ReturnCode;
+ });
+ }
+ Console.WriteLine(" OK");
Task.WaitAll(tasks);
Console.WriteLine("Total time: " + (DateTime.Now - start));
Console.WriteLine();
- return tests.Select(t => t.ReturnCode).Aggregate((r1, r2) => r1 | r2);
+ return retcode;
}
catch (Exception outerEx)
{
@@ -490,7 +503,7 @@ namespace ThriftTest
return retval;
}
- private static CancellationToken MakeTimeoutToken(int msec = 5000)
+ private static CancellationToken MakeTimeoutToken(int msec = 15_000)
{
var token = new CancellationTokenSource(msec);
return token.Token;