Example #1
0
        public void AwaitSignalWithSigarg()
        {
            bool called = false;

            Yogi.SignalSet.AwaitSignalFnDelegate <string> fn = (Yogi.Result res, Yogi.Signals signal, string sigarg) =>
            {
                Assert.IsType <Yogi.Failure>(res);
                Assert.Equal(Yogi.ErrorCode.WrongObjectType, res.ErrorCode);
                Assert.Equal(Yogi.Signals.Usr6, signal);
                Assert.Equal("foo", sigarg);
                called = true;
            };

            MOCK_SignalSetAwaitSignalAsync((IntPtr sigset, SignalSetAwaitSignalAsyncFnDelegate fn_, IntPtr userarg) =>
            {
                Assert.Equal(pointer, sigset);
                Assert.NotNull(fn_);

                var sigargHandle = GCHandle.Alloc("foo");
                var sigargPtr    = GCHandle.ToIntPtr(sigargHandle);

                fn_((int)Yogi.ErrorCode.WrongObjectType, (int)Yogi.Signals.Usr6, sigargPtr, userarg);
                return((int)Yogi.ErrorCode.Ok);
            });

            sigset.AwaitSignalAsync(fn);
            Assert.True(called);
        }
Example #2
0
        public void AwaitSignal()
        {
            bool called = false;

            Yogi.SignalSet.AwaitSignalFnDelegate fn = (Yogi.Result res, Yogi.Signals signal) =>
            {
                Assert.IsType <Yogi.Failure>(res);
                Assert.Equal(Yogi.ErrorCode.WrongObjectType, res.ErrorCode);
                Assert.Equal(Yogi.Signals.Usr6, signal);
                called = true;
            };

            MOCK_SignalSetAwaitSignalAsync((IntPtr sigset, SignalSetAwaitSignalAsyncFnDelegate fn_, IntPtr userarg) =>
            {
                Assert.Equal(pointer, sigset);
                Assert.NotNull(fn_);
                fn_((int)Yogi.ErrorCode.WrongObjectType, (int)Yogi.Signals.Usr6, IntPtr.Zero, userarg);
                return((int)Yogi.ErrorCode.Ok);
            });

            sigset.AwaitSignalAsync(fn);
            Assert.True(called);
        }