remove unreliable stuff
[mono-project.git] / mcs / class / corlib / Test / System.Threading / TimerTest.cs
blobb8329b31874e1bcfe4bbb5f824b80db43544a2e2
1 //
2 // TimerTest.cs - NUnit test cases for System.Threading.Timer
3 //
4 // Author:
5 // Zoltan Varga (vargaz@freemail.hu)
6 //
7 // (C) 2004 Novell, Inc (http://www.novell.com)
8 //
10 using NUnit.Framework;
11 using System;
12 using System.Threading;
14 namespace MonoTests.System.Threading {
16 [TestFixture]
17 public class TimerTest : Assertion {
19 public int counter;
21 private void Callback (object foo) {
22 counter ++;
25 // Doesn't work when I do a full run #72535
26 [Category("NotWorking")]
27 public void TestDueTime ()
29 counter = 0;
30 Timer t = new Timer (new TimerCallback (Callback), null, 200, Timeout.Infinite);
31 Thread.Sleep (50);
32 AssertEquals ("t0", 0, counter);
33 Thread.Sleep (200);
34 AssertEquals ("t1", 1, counter);
35 Thread.Sleep (500);
36 AssertEquals ("t2", 1, counter);
38 t.Change (10, 10);
39 Thread.Sleep (500);
40 Assert ("t3", counter > 20);
41 t.Dispose ();
44 public void TestChange ()
46 counter = 0;
47 Timer t = new Timer (new TimerCallback (Callback), null, 1, 1);
48 Thread.Sleep (500);
49 int c = counter;
50 Assert ("t1", c > 20);
51 t.Change (100, 100);
52 Thread.Sleep (500);
53 Assert ("t2", counter <= c + 6);
54 t.Dispose ();
57 public void TestZeroDueTime () {
58 counter = 0;
60 Timer t = new Timer (new TimerCallback (Callback), null, 0, Timeout.Infinite);
61 Thread.Sleep (100);
62 AssertEquals (1, counter);
63 t.Change (0, Timeout.Infinite);
64 Thread.Sleep (100);
65 AssertEquals (2, counter);
66 t.Dispose ();
69 public void TestDispose ()
71 counter = 0;
72 Timer t = new Timer (new TimerCallback (CallbackTestDispose), null, 10, 10);
73 Thread.Sleep (200);
74 t.Dispose ();
75 Thread.Sleep (20);
76 int c = counter;
77 Assert (counter > 5);
78 Thread.Sleep (200);
79 AssertEquals (c, counter);
82 private void CallbackTestDispose (object foo) {
83 counter ++;
86 Timer t1;
87 public void TestDisposeOnCallback () {
88 counter = 0;
89 t1 = new Timer (new TimerCallback (CallbackTestDisposeOnCallback), null, 0, 10);
90 Thread.Sleep (200);
91 AssertNull (t1);
93 counter = 2;
94 t1 = new Timer (new TimerCallback (CallbackTestDisposeOnCallback), null, 50, 0);
95 Thread.Sleep (200);
96 AssertNull (t1);
99 private void CallbackTestDisposeOnCallback (object foo)
101 if (++counter == 3) {
102 t1.Dispose ();
103 t1 = null;