public bool PosTest1() { bool retVal = true; TestLibrary.TestFramework.BeginScenario("PosTest1: Call Ctor to construct a new instance of WaitHandle"); try { TestWaitHandle handle = new TestWaitHandle(); if (handle == null) { TestLibrary.TestFramework.LogError("001.1", "Calling Ctor to construct a new instance of WaitHandle returns a null reference"); retVal = false; } } catch (Exception e) { TestLibrary.TestFramework.LogError("001.0", "Unexpected exception: " + e); TestLibrary.TestFramework.LogInformation(e.StackTrace); retVal = false; } return retVal; }
public static void SafeWaitHandle() { var eventWaitHandle = new ManualResetEvent(false); var eventSafeWaitHandle = eventWaitHandle.SafeWaitHandle; var testWaitHandle = new TestWaitHandle(); testWaitHandle.SafeWaitHandle = eventSafeWaitHandle; Assert.False(testWaitHandle.WaitOne(0)); eventWaitHandle.Set(); Assert.True(testWaitHandle.WaitOne(0)); testWaitHandle.SafeWaitHandle = null; Assert.Throws<ObjectDisposedException>(() => testWaitHandle.WaitOne(0)); }
public static void SafeWaitHandle() { var eventWaitHandle = new ManualResetEvent(false); var eventSafeWaitHandle = eventWaitHandle.SafeWaitHandle; var testWaitHandle = new TestWaitHandle(); testWaitHandle.SafeWaitHandle = eventSafeWaitHandle; Assert.False(testWaitHandle.WaitOne(0)); eventWaitHandle.Set(); Assert.True(testWaitHandle.WaitOne(0)); testWaitHandle.SafeWaitHandle = null; Assert.Throws <ObjectDisposedException>(() => testWaitHandle.WaitOne(0)); }
public void WaitHandle_Handle() { var eventWaitHandle = new ManualResetEvent(false); var eventRawWaitHandle = eventWaitHandle.Handle; var testWaitHandle = new TestWaitHandle(); testWaitHandle.Handle = eventRawWaitHandle; Assert.IsFalse(testWaitHandle.WaitOne(0)); eventWaitHandle.Set(); Assert.IsTrue(testWaitHandle.WaitOne(0)); testWaitHandle.ClearHandle(); AssertExtensions.Throws <ObjectDisposedException>(() => testWaitHandle.WaitOne(0)); }
public static void SafeWaitHandleViaExtension() { ManualResetEvent eventWaitHandle = new ManualResetEvent(false); SafeWaitHandle eventSafeWaitHandle = eventWaitHandle.GetSafeWaitHandle(); TestWaitHandle testWaitHandle = new TestWaitHandle(); testWaitHandle.SetSafeWaitHandle(eventSafeWaitHandle); Assert.False(testWaitHandle.WaitOne(0)); eventWaitHandle.Set(); Assert.True(testWaitHandle.WaitOne(0)); testWaitHandle.SetSafeWaitHandle(null); Assert.Throws <ObjectDisposedException>(() => testWaitHandle.WaitOne(0)); }
public static void SignalAndWait_InvalidArgs() { var toSignal = new ManualResetEvent(false); var toWaitOn = new ManualResetEvent(true); Assert.Throws <ArgumentNullException>(() => WaitHandle.SignalAndWait(null, toWaitOn)); Assert.False(toSignal.WaitOne(0)); Assert.Throws <ArgumentNullException>(() => WaitHandle.SignalAndWait(toSignal, null)); Assert.False(toSignal.WaitOne(0)); Assert.Throws <ArgumentOutOfRangeException>(() => WaitHandle.SignalAndWait(toSignal, toWaitOn, -2, false)); Assert.False(toSignal.WaitOne(0)); Assert.True(WaitHandle.SignalAndWait(toSignal, toWaitOn, -1, false)); Assert.True(toSignal.WaitOne(0)); toSignal.Reset(); var invalidWh = new TestWaitHandle(); Assert.Throws <ObjectDisposedException>(() => WaitHandle.SignalAndWait(invalidWh, toWaitOn)); Assert.False(toSignal.WaitOne(0)); Assert.Throws <ObjectDisposedException>(() => WaitHandle.SignalAndWait(toSignal, invalidWh)); Assert.False(toSignal.WaitOne(0)); }
public static void DisposeVirtual_ThroughDispose() { var wh = new TestWaitHandle(); wh.Dispose(); Assert.True(wh.WasExplicitlyDisposed); }
[PlatformSpecific(TestPlatforms.Windows)] // other platforms don't support SignalAndWait public static void SignalAndWait_InvalidArgs() { var toSignal = new ManualResetEvent(false); var toWaitOn = new ManualResetEvent(true); Assert.Throws<ArgumentNullException>(() => WaitHandle.SignalAndWait(null, toWaitOn)); Assert.False(toSignal.WaitOne(0)); Assert.Throws<ArgumentNullException>(() => WaitHandle.SignalAndWait(toSignal, null)); Assert.False(toSignal.WaitOne(0)); Assert.Throws<ArgumentOutOfRangeException>(() => WaitHandle.SignalAndWait(toSignal, toWaitOn, -2, false)); Assert.False(toSignal.WaitOne(0)); Assert.True(WaitHandle.SignalAndWait(toSignal, toWaitOn, -1, false)); Assert.True(toSignal.WaitOne(0)); toSignal.Reset(); var invalidWh = new TestWaitHandle(); Assert.Throws<ObjectDisposedException>(() => WaitHandle.SignalAndWait(invalidWh, toWaitOn)); Assert.False(toSignal.WaitOne(0)); Assert.Throws<ObjectDisposedException>(() => WaitHandle.SignalAndWait(toSignal, invalidWh)); Assert.False(toSignal.WaitOne(0)); }