[System.Runtime.Serialization] Static writer fix.
[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, FileAccess.Read);
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                         buf = new byte [1];
32                         ar = s.BeginRead (buf, 0, 1, ac, buf);
33                 } while (s.EndRead (ar) == 1);
34                 sum -= buf [0];
35                 
36                 Thread.Sleep (100);
37                 
38                 s.Close ();
39
40                 Console.WriteLine ("CSUM: " + sum + " " + sum0);
41                 if (sum != sum0)
42                         return 1;
43                 
44                 return 0;
45         }
46 }