コード例 #1
0
        public void InitializeAndShutdownGrpcEnvironment()
        {
            var env = GrpcEnvironment.AddRef();

            Assert.IsNotNull(env.CompletionQueue);
            GrpcEnvironment.Release();
        }
コード例 #2
0
        public void CreateAndDestroy()
        {
            GrpcEnvironment.AddRef();
            var cq = CompletionQueueSafeHandle.Create();

            cq.Dispose();
            GrpcEnvironment.Release();
        }
コード例 #3
0
        public void SubsequentInvocations()
        {
            var env1 = GrpcEnvironment.AddRef();
            var env2 = GrpcEnvironment.AddRef();

            Assert.AreSame(env1, env2);
            GrpcEnvironment.Release();
            GrpcEnvironment.Release();
        }
コード例 #4
0
        public void SubsequentInvocations()
        {
            var env1 = GrpcEnvironment.AddRef();
            var env2 = GrpcEnvironment.AddRef();

            Assert.IsTrue(object.ReferenceEquals(env1, env2));
            GrpcEnvironment.Release();
            GrpcEnvironment.Release();
        }
コード例 #5
0
ファイル: GrpcEnvironmentTest.cs プロジェクト: zqs51233/grpc
        public void InitializeAndShutdownGrpcEnvironment()
        {
            var env = GrpcEnvironment.AddRef();

            Assert.IsTrue(env.CompletionQueues.Count > 0);
            for (int i = 0; i < env.CompletionQueues.Count; i++)
            {
                Assert.IsNotNull(env.CompletionQueues.ElementAt(i));
            }
            GrpcEnvironment.Release();
        }
コード例 #6
0
        public void InitializeAfterShutdown()
        {
            var env1 = GrpcEnvironment.AddRef();

            GrpcEnvironment.Release();

            var env2 = GrpcEnvironment.AddRef();

            GrpcEnvironment.Release();

            Assert.IsFalse(object.ReferenceEquals(env1, env2));
        }
コード例 #7
0
        public void InitializeAfterShutdown()
        {
            Assert.AreEqual(0, GrpcEnvironment.GetRefCount());

            var env1 = GrpcEnvironment.AddRef();

            GrpcEnvironment.Release();

            var env2 = GrpcEnvironment.AddRef();

            GrpcEnvironment.Release();

            Assert.AreNotSame(env1, env2);
        }
コード例 #8
0
        public void CompletionQueueCreateDestroyBenchmark()
        {
            GrpcEnvironment.AddRef();  // completion queue requires gRPC environment being initialized.

            BenchmarkUtil.RunBenchmark(
                10, 10,
                () =>
            {
                CompletionQueueSafeHandle cq = CompletionQueueSafeHandle.Create();
                cq.Dispose();
            });

            GrpcEnvironment.Release();
        }
コード例 #9
0
        public void CreateAndShutdown()
        {
            GrpcEnvironment.AddRef();
            var cq = CompletionQueueSafeHandle.Create();

            cq.Shutdown();
            var ev = cq.Next();

            cq.Dispose();
            GrpcEnvironment.Release();
            Assert.AreEqual(CompletionQueueEvent.CompletionType.Shutdown, ev.type);
            Assert.AreNotEqual(IntPtr.Zero, ev.success);
            Assert.AreEqual(IntPtr.Zero, ev.tag);
        }
コード例 #10
0
 public void ReleaseWithoutAddRef()
 {
     Assert.AreEqual(0, GrpcEnvironment.GetRefCount());
     Assert.Throws(typeof(InvalidOperationException), () => GrpcEnvironment.Release());
 }
コード例 #11
0
 public void ReleaseWithoutAddRef()
 {
     Assert.Throws(typeof(InvalidOperationException), () => GrpcEnvironment.Release());
 }
コード例 #12
0
 public void Cleanup()
 {
     server.ShutdownAsync().Wait();
     GrpcEnvironment.Release();
 }