+2008-08-03 Zoltan Varga <vargaz@gmail.com>
+
+ * TimerTest.cs: Simplify the EnabledInElapsed test to prevent various races.
+
2007-10-30 Robert Jordan <robertj@gmx.net>
* TimerTest.cs: Enable test for bug #82701/#325368.
public void SetUp ()
{
timer = new Timer ();
- _elapsedCount = 0;
}
[TearDown]
[Test] // bug #325368
public void EnabledInElapsed ()
{
+ _elapsedCount = 0;
+ timer = new Timer (50);
timer.AutoReset = false;
timer.Elapsed += new ElapsedEventHandler (EnabledInElapsed_Elapsed);
timer.Start ();
- ST.Thread.Sleep (400);
+ ST.Thread.Sleep (200);
timer.Stop ();
- if (_elapsedCount == -2)
- Assert.Fail ("#1 get_Enabled != false");
-
- if (_elapsedCount == -1)
- Assert.Fail ("#2 get_Enabled != true");
-
- Assert.IsTrue (_elapsedCount > 2, "#3 loss of events");
+ Assert.IsTrue (_elapsedCount == 2, "#1 loss of events");
}
[Test]
void EnabledInElapsed_Elapsed (object sender, ElapsedEventArgs e)
{
- if (_elapsedCount < 0)
- return;
-
_elapsedCount++;
Timer t = sender as Timer;
- if (t.Enabled) {
- _elapsedCount = -2;
- return;
- }
- t.Enabled = true;
- if (!t.Enabled)
- _elapsedCount = -1;
+ if (_elapsedCount == 1)
+ t.Enabled = true;
}
}