1 using System; 2 using System.Threading; 3 using System.Diagnostics; 4 5 public class Tests 6 { 7 static bool finished; 8 Main(String[] args)9 public static int Main (String[] args) { 10 return TestDriver.RunTests (typeof (Tests), args); 11 } 12 test_0_time_drift()13 public static int test_0_time_drift () { 14 // Test the Thread.Sleep () is able to deal with time drifting due to interrupts 15 Thread t = new Thread (delegate () { 16 while (!finished) 17 GC.Collect (); 18 }); 19 t.Start (); 20 21 var sw = Stopwatch.StartNew (); 22 Thread.Sleep (1000); 23 finished = true; 24 sw.Stop (); 25 if (sw.ElapsedMilliseconds > 2000) { 26 Console.WriteLine (sw.ElapsedMilliseconds); 27 return 1; 28 } else { 29 return 0; 30 } 31 } 32 } 33