New test.
[mono.git] / mono / tests / async_read.cs
1 using System;
2 using System.IO;
3 using System.Threading;
4
5 class Test {
6
7         static int sum = 0;
8         
9         static void async_callback (IAsyncResult ar)
10         {
11                 byte [] buf = (byte [])ar.AsyncState;
12                 sum += buf [0];
13         }
14
15         static int Main () {
16                 byte [] buf = new byte [1];
17                 AsyncCallback ac = new AsyncCallback (async_callback);
18                 IAsyncResult ar;
19                 int sum0 = 0;
20                 
21                 FileStream s = new FileStream ("async_read.exe",  FileMode.Open);
22
23                 s.Position = 0;
24                 sum0 = 0;
25                 while (s.Read (buf, 0, 1) == 1)
26                         sum0 += buf [0];
27                 
28                 s.Position = 0;
29                 
30                 do {
31                         ar = s.BeginRead (buf, 0, 1, ac, buf);
32                 } while (s.EndRead (ar) == 1);
33                 sum -= buf [0];
34                 
35                 Thread.Sleep (100);
36                 
37                 s.Close ();
38
39                 Console.WriteLine ("CSUM: " + sum + " " + sum0);
40                 if (sum != sum0)
41                         return 1;
42                 
43                 return 0;
44         }
45 }