mirror of
https://github.com/FabInfra/capnproto-dotnetcore_Runtime.git
synced 2025-03-12 23:01:44 +01:00
Troubleshooting Embargo* TCs, some CM tweaks
This commit is contained in:
parent
20d480a770
commit
2e524ef628
@ -821,6 +821,89 @@ namespace Capnp.Net.Runtime.Tests
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod, Timeout(10000)]
|
||||||
|
public void EmbargoServer2()
|
||||||
|
{
|
||||||
|
LaunchCompatTestProcess("server:MoreStuff", stdout =>
|
||||||
|
{
|
||||||
|
int retry = 0;
|
||||||
|
|
||||||
|
label:
|
||||||
|
using (var client = new TcpRpcClient("localhost", TcpPort))
|
||||||
|
{
|
||||||
|
Assert.IsTrue(client.WhenConnected.Wait(MediumNonDbgTimeout), "client connect");
|
||||||
|
|
||||||
|
using (var main = client.GetMain<ITestMoreStuff>())
|
||||||
|
{
|
||||||
|
var resolving = main as IResolvingCapability;
|
||||||
|
|
||||||
|
bool success;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
success = resolving.WhenResolved.Wait(MediumNonDbgTimeout);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
success = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!success)
|
||||||
|
{
|
||||||
|
if (++retry == 5)
|
||||||
|
{
|
||||||
|
Assert.Fail("Attempting to obtain bootstrap interface failed. Bailing out.");
|
||||||
|
}
|
||||||
|
goto label;
|
||||||
|
}
|
||||||
|
|
||||||
|
var cap = new TestCallOrderImpl();
|
||||||
|
cap.CountToDispose = 6;
|
||||||
|
#if DEBUG_DISPOSE
|
||||||
|
Skeleton.BeginAssertNotDisposed(cap);
|
||||||
|
#endif
|
||||||
|
var earlyCall = main.GetCallSequence(0, default);
|
||||||
|
|
||||||
|
var echo = main.Echo(cap, default);
|
||||||
|
|
||||||
|
using (var pipeline = echo.Result)
|
||||||
|
{
|
||||||
|
var call0 = pipeline.GetCallSequence(0, default);
|
||||||
|
var call1 = pipeline.GetCallSequence(1, default);
|
||||||
|
|
||||||
|
Assert.IsTrue(earlyCall.Wait(MediumNonDbgTimeout), "early call returns");
|
||||||
|
|
||||||
|
var call2 = pipeline.GetCallSequence(2, default);
|
||||||
|
|
||||||
|
Assert.IsTrue(echo.Wait(MediumNonDbgTimeout));
|
||||||
|
|
||||||
|
var call3 = pipeline.GetCallSequence(3, default);
|
||||||
|
var call4 = pipeline.GetCallSequence(4, default);
|
||||||
|
var call5 = pipeline.GetCallSequence(5, default);
|
||||||
|
|
||||||
|
Assert.IsTrue(call0.Wait(MediumNonDbgTimeout), "call 0 returns");
|
||||||
|
Assert.IsTrue(call1.Wait(MediumNonDbgTimeout), "call 1 returns");
|
||||||
|
Assert.IsTrue(call2.Wait(MediumNonDbgTimeout), "call 2 returns");
|
||||||
|
Assert.IsTrue(call3.Wait(MediumNonDbgTimeout), "call 3 returns");
|
||||||
|
Assert.IsTrue(call4.Wait(MediumNonDbgTimeout), "call 4 returns");
|
||||||
|
Assert.IsTrue(call5.Wait(MediumNonDbgTimeout), "call 5 returns");
|
||||||
|
|
||||||
|
Assert.AreEqual(0u, call0.Result);
|
||||||
|
Assert.AreEqual(1u, call1.Result);
|
||||||
|
Assert.AreEqual(2u, call2.Result);
|
||||||
|
Assert.AreEqual(3u, call3.Result);
|
||||||
|
Assert.AreEqual(4u, call4.Result);
|
||||||
|
Assert.AreEqual(5u, call5.Result);
|
||||||
|
|
||||||
|
#if DEBUG_DISPOSE
|
||||||
|
Skeleton.EndAssertNotDisposed(cap);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
[TestMethod, Timeout(10000)]
|
[TestMethod, Timeout(10000)]
|
||||||
public void EmbargoClient()
|
public void EmbargoClient()
|
||||||
{
|
{
|
||||||
@ -897,7 +980,7 @@ namespace Capnp.Net.Runtime.Tests
|
|||||||
LaunchCompatTestProcess("server:MoreStuff", EmbargoErrorImpl);
|
LaunchCompatTestProcess("server:MoreStuff", EmbargoErrorImpl);
|
||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod, Timeout(10000)]
|
[TestMethod, Timeout(30000)]
|
||||||
public void RepeatedEmbargoError()
|
public void RepeatedEmbargoError()
|
||||||
{
|
{
|
||||||
LaunchCompatTestProcess("server:MoreStuff", stdout =>
|
LaunchCompatTestProcess("server:MoreStuff", stdout =>
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
// > vcpkg install capnproto
|
// > vcpkg install capnproto
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <thread>
|
||||||
#include <capnp/ez-rpc.h>
|
#include <capnp/ez-rpc.h>
|
||||||
#include <kj/common.h>
|
#include <kj/common.h>
|
||||||
#include "test.capnp.h"
|
#include "test.capnp.h"
|
||||||
@ -636,7 +637,20 @@ public:
|
|||||||
return kj::READY_NOW;
|
return kj::READY_NOW;
|
||||||
}
|
}
|
||||||
|
|
||||||
kj::Promise<void> echo(EchoContext context)
|
kj::Promise<void> simpleLoop(int rem)
|
||||||
|
{
|
||||||
|
if (rem <= 0) {
|
||||||
|
return kj::READY_NOW;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
||||||
|
return kj::evalLater([this, rem]() mutable {
|
||||||
|
return simpleLoop(rem - 1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
kj::Promise<void> echo(EchoContext context)
|
||||||
{
|
{
|
||||||
++callCount;
|
++callCount;
|
||||||
cout << "echo" << endl;
|
cout << "echo" << endl;
|
||||||
@ -644,7 +658,7 @@ public:
|
|||||||
auto params = context.getParams();
|
auto params = context.getParams();
|
||||||
auto result = context.getResults();
|
auto result = context.getResults();
|
||||||
result.setCap(params.getCap());
|
result.setCap(params.getCap());
|
||||||
return kj::READY_NOW;
|
return simpleLoop(100); // Loop a little to provoke real promise pipelining
|
||||||
}
|
}
|
||||||
|
|
||||||
kj::Promise<void> expectCancel(ExpectCancelContext context)
|
kj::Promise<void> expectCancel(ExpectCancelContext context)
|
||||||
|
24
appveyor.yml
24
appveyor.yml
@ -11,6 +11,14 @@ install:
|
|||||||
- vcpkg integrate install
|
- vcpkg integrate install
|
||||||
- vcpkg install capnproto
|
- vcpkg install capnproto
|
||||||
- cd %APPVEYOR_BUILD_FOLDER%
|
- cd %APPVEYOR_BUILD_FOLDER%
|
||||||
|
dotnet_csproj:
|
||||||
|
patch: true
|
||||||
|
file: '**\*.csproj;**\*.props;**\*.fsproj;**\*.xml;**\*.nuspec'
|
||||||
|
version: '{version}'
|
||||||
|
package_version: '{version}'
|
||||||
|
assembly_version: '{version}'
|
||||||
|
file_version: '{version}'
|
||||||
|
informational_version: '{version}'
|
||||||
before_build:
|
before_build:
|
||||||
- cmd: dotnet --version
|
- cmd: dotnet --version
|
||||||
- cmd: msbuild -ver
|
- cmd: msbuild -ver
|
||||||
@ -28,17 +36,17 @@ build_script:
|
|||||||
after_build:
|
after_build:
|
||||||
# For once the build has completed
|
# For once the build has completed
|
||||||
artifacts:
|
artifacts:
|
||||||
- path: Capnp.Net.Runtime\bin\Debug\Capnp.Net.Runtime.1.0.0.nupkg
|
- path: Capnp.Net.Runtime\bin\Debug
|
||||||
name: Capnp.Net.Runtime.1.0.0_debug
|
name: Capnp.Net.Runtime_debug
|
||||||
type: NuGetPackage
|
type: NuGetPackage
|
||||||
- path: Capnp.Net.Runtime\bin\Release\Capnp.Net.Runtime.1.0.0.nupkg
|
- path: Capnp.Net.Runtime\bin\Release
|
||||||
name: Capnp.Net.Runtime.1.0.0
|
name: Capnp.Net.Runtime
|
||||||
type: NuGetPackage
|
type: NuGetPackage
|
||||||
- path: chocolatey\install\capnpc-csharp-win-x86.1.0.0.nupkg
|
- path: chocolatey\install\capnpc-csharp-win-x86.{version}.nupkg
|
||||||
name: capnpc-csharp-win-x86.1.0.0
|
name: capnpc-csharp-win-x86
|
||||||
type: NuGetPackage
|
type: NuGetPackage
|
||||||
- path: chocolatey\install\capnpc-csharp.1.0.0.nupkg
|
- path: chocolatey\install\capnpc-csharp.{version}.nupkg
|
||||||
name: capnpc-csharp.1.0.0
|
name: capnpc-csharp
|
||||||
type: NuGetPackage
|
type: NuGetPackage
|
||||||
clone_depth: 1
|
clone_depth: 1
|
||||||
test_script:
|
test_script:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user