Remove allocations from Dns.* (dotnet/corefx#41061)
[mono-project.git] / mono / tests / priority.cs
blob7956f23a4cba228035accae07c9673698e0a89b4
1 using System;
2 using System.Threading;
3 using System.Runtime;
4 using System.Text;
6 public class Tests
8 private static int mainThreadId;
10 public static int Main ()
12 mainThreadId = Thread.CurrentThread.ManagedThreadId;
13 return TestDriver.RunTests (typeof (Tests));
16 public static void TestMethod()
18 Console.WriteLine("{0} with {1} priority",
19 Thread.CurrentThread.Name,
20 Thread.CurrentThread.Priority.ToString());
21 Thread.Sleep(6000);
22 Console.WriteLine("{0} with {1} priority",
23 Thread.CurrentThread.Name,
24 Thread.CurrentThread.Priority.ToString());
27 public static int test_0_main_thread_priority ()
29 Console.WriteLine("Testing main thread's priority");
30 if (Thread.CurrentThread.ManagedThreadId != mainThreadId)
32 Console.WriteLine("test_0_main_thread_priority() must be run on the main thread");
33 return 1;
36 var before = Thread.CurrentThread.Priority;
37 Console.WriteLine("Priority: {0}", before);
38 if (before != ThreadPriority.Normal)
39 return 2;
41 Console.WriteLine("Setting main thread's priority to AboveNormal");
42 Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
43 var after = Thread.CurrentThread.Priority;
44 Console.WriteLine("Priority: {0} {1}", before, after);
45 if (after != ThreadPriority.AboveNormal)
46 return 3;
48 before = after;
49 Console.WriteLine("Setting main thread's priority to BelowNormal");
50 Thread.CurrentThread.Priority = ThreadPriority.BelowNormal;
51 after = Thread.CurrentThread.Priority;
52 Console.WriteLine("Priority: {0} {1}", before, after);
53 if (after != ThreadPriority.BelowNormal)
54 return 4;
56 before = after;
57 Console.WriteLine("Setting main thread's priority to Normal");
58 Thread.CurrentThread.Priority = ThreadPriority.Normal;
59 after = Thread.CurrentThread.Priority;
60 Console.WriteLine("Priority: {0} {1}", before, after);
61 if (after != ThreadPriority.Normal)
62 return 5;
64 return 0;
67 public static int test_0_thread_priority ()
69 int res = 0;
71 Thread Me = Thread.CurrentThread;
72 Thread TestThread = new Thread(new ThreadStart(TestMethod));
74 Console.WriteLine("Starting test thread with priority to AboveNormal");
75 ThreadPriority before = TestThread.Priority;
76 TestThread.Priority = ThreadPriority.AboveNormal;
77 TestThread.Name = "TestMethod";
78 TestThread.Start();
79 ThreadPriority after = TestThread.Priority;
80 Console.WriteLine("Priority: {0} {1}",before,after);
81 if (before != ThreadPriority.Normal)
82 res = 1;
83 else if (after != ThreadPriority.AboveNormal)
84 res = 2;
85 else {
86 TestThread.Priority = ThreadPriority.Normal;
87 after = TestThread.Priority;
88 Console.WriteLine("Setting test thread priority to Normal");
89 Thread.Sleep(1000);
90 Console.WriteLine("Priority: {0} {1}",before,after);
92 if (after != ThreadPriority.Normal)
93 res = 3;
94 else {
95 Console.WriteLine("Setting test thread priority to AboveNormal");
96 before = after;
97 TestThread.Priority=ThreadPriority.AboveNormal;
98 after = TestThread.Priority;
99 Thread.Sleep(1000);
100 Console.WriteLine("Priority: {0} {1}",before,after);
102 if (after != ThreadPriority.AboveNormal)
103 res = 4;
104 else {
105 before = after;
106 Console.WriteLine("Setting test thread priority to BelowNormal");
107 TestThread.Priority=ThreadPriority.BelowNormal;
108 after = TestThread.Priority;
109 Console.WriteLine("Priority: {0} {1}",before,after);
110 Thread.Sleep(1000);
112 if (after != ThreadPriority.BelowNormal)
113 res = 5;
114 else {
115 before = after;
116 Console.WriteLine("Setting test thread priority back to Normal");
117 TestThread.Priority=ThreadPriority.Normal;
118 after = TestThread.Priority;
119 Console.WriteLine("Priority: {0} {1}",before,after);
120 Thread.Sleep(1000);
122 if (after != ThreadPriority.Normal)
123 res = 6;
128 TestThread.Join();
129 return(res);