public void TestCSharpKilling() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.CSharp, "class Program { static void Main() { System.Threading.Thread.Sleep(System.TimeSpan.FromHours(1)); } }")) { ManualResetEvent mre = new ManualResetEvent(false); runner.ProcessExited += delegate(object o, ProcessExitedEventArgs e) { mre.Set(); }; runner.Start(); Assert.IsTrue(runner.IsRunning); Assert.IsFalse(runner.WaitForExit(TimeSpan.Zero)); runner.Kill(); Assert.IsTrue(mre.WaitOne(0, false)); Assert.IsFalse(runner.IsRunning); Assert.IsTrue(runner.WaitForExit(TimeSpan.Zero)); Assert.AreNotEqual(0, runner.ExitCode); } }
public void TestJScriptScript() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.JScript, @"WScript.StdOut.WriteLine(WScript.Arguments(0));")) { StringWriter sw = new StringWriter(); runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { sw.WriteLine(e.Data); }; runner.Start("From JScript"); runner.WaitForExit(); Assert.AreEqual(0, runner.ExitCode); Assert.AreEqual("From JScript", sw.ToString().Trim()); } }
public void TestPowerShellScript() { using (ScriptRunner runner = new ScriptRunner(ScriptEngine.Language.PowerShell, "ECHO From_PowerShell")) { StringWriter sw = new StringWriter(); runner.OutputReceived += delegate(object o, ProcessOutputEventArgs e) { sw.WriteLine(e.Data); }; runner.Start(); runner.WaitForExit(); Assert.AreEqual(0, runner.ExitCode); Assert.AreEqual("From_PowerShell", sw.ToString().Trim()); } }