Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / tests / process2.cs
1 using System;
2 using System.Diagnostics;
3 using System.Threading;
4
5 class Modules {
6         static void Run() {
7                 Process proc = new Process();
8                 bool ret;
9
10                 proc.StartInfo.FileName="wibble-redir";
11                 proc.StartInfo.Arguments="arg1    arg2\targ3 \"arg4a arg4b\"";
12                 proc.StartInfo.UseShellExecute=false;
13                 proc.StartInfo.RedirectStandardInput=true;
14                 ret=proc.Start();
15
16                 Console.WriteLine("Start returns " + ret);
17                 Console.WriteLine("Process is " + proc.ToString());
18                 Console.WriteLine("Pid is " + proc.Id);
19                 Console.WriteLine("Handle is " + proc.Handle);
20                 Console.WriteLine("HandleCount is " + proc.HandleCount);
21
22                 Console.WriteLine("Writing [foo bar]");
23                 proc.StandardInput.WriteLine("foo bar");
24
25                 System.Threading.Thread.Sleep(1000);
26
27                 Console.WriteLine("Writing [wibble wobble]");
28                 proc.StandardInput.WriteLine("wibble wobble");
29
30                 System.Threading.Thread.Sleep(1000);
31
32                 Console.WriteLine("Closing stdin");
33                 proc.StandardInput.Close();
34
35                 Console.WriteLine("Waiting for exit...");
36                 proc.WaitForExit();
37                 Console.WriteLine("Wait returned");
38                 Console.WriteLine("Exit code is " + proc.ExitCode);
39                 Console.WriteLine("Process started at " + proc.StartTime);
40                 Console.WriteLine("Process ended at " + proc.ExitTime);
41         }
42
43         static void Main() {
44                 Run();
45         }
46 }
47