public void Cmd_ChangeDirTest() { // TODO: Test --raw, --vt, --attached var testDir = Environment.CurrentDirectory; var p1 = new TestProcess("gsudo.exe", "cmd /c cd"); p1.WaitForExit(); var otherDir = Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, "..")); Environment.CurrentDirectory = otherDir; Assert.AreEqual(string.Empty, p1.GetStdErr()); Assert.AreEqual($"{testDir}\r\n", p1.GetStdOut()); Assert.AreEqual(0, p1.ExitCode); try { var p2 = new TestProcess(Path.Combine(testDir, "gsudo.exe"), "cmd /c cd"); p2.WaitForExit(); Assert.AreEqual(string.Empty, p2.GetStdErr()); Assert.AreEqual($"{otherDir}\r\n", p2.GetStdOut()); Assert.AreEqual(0, p2.ExitCode); } finally { Environment.CurrentDirectory = testDir; } }
public void Cmd_ExitCodeTest() { var p = new TestProcess("gsudo.exe", "--loglevel none exit /b 12345"); p.WaitForExit(); Assert.AreEqual(string.Empty, p.GetStdErr()); Assert.AreEqual(string.Empty, p.GetStdOut()); Assert.AreEqual(12345, p.ExitCode); }
public void Cmd_DirTest() { var p = new TestProcess("gsudo.exe", "--debug cmd /c dir"); p.WaitForExit(); Assert.AreNotEqual(string.Empty, p.GetStdErr()); Assert.IsTrue(p.GetStdOut().Contains(" bytes free")); Assert.AreEqual(0, p.ExitCode); }
public void Cmd_BatchFileWithoutExtensionTest() { File.WriteAllText("HelloWorld.bat", "@echo Hello"); var p = new TestProcess("gsudo.exe", "HelloWorld"); p.WaitForExit(); Assert.AreEqual(string.Empty, p.GetStdErr()); Assert.AreEqual("Hello\r\n", p.GetStdOut()); Assert.AreEqual(0, p.ExitCode); }
public void Cmd_WindowsAppNoWaitTest() { var p = new TestProcess("gsudo.exe", "notepad"); try { p.WaitForExit(); } finally { Process.Start("C:\\Windows\\sysnative\\tskill.exe", "notepad").WaitForExit(); } Assert.AreEqual(string.Empty, p.GetStdErr()); Assert.AreEqual(string.Empty, p.GetStdOut()); }
public void Cmd_WindowsAppWithQuotesTest() { var p = new TestProcess("gsudo.exe", $"\"c:\\Program Files (x86)\\Windows NT\\Accessories\\wordpad.exe\""); try { p.WaitForExit(); Assert.AreEqual(0, p.ExitCode); } finally { Process.Start("C:\\Windows\\sysnative\\tskill.exe", "wordpad").WaitForExit(); } Assert.AreEqual(string.Empty, p.GetStdErr()); Assert.AreEqual(string.Empty, p.GetStdOut()); }
public void Cmd_WindowsAppWaitTest() { bool stillWaiting = false; var p = new TestProcess("gsudo.exe", "-w notepad"); try { p.WaitForExit(2000); } catch (Exception) { stillWaiting = true; } Assert.IsTrue(stillWaiting); Process.Start("C:\\Windows\\sysnative\\tskill.exe", "notepad").WaitForExit(); Assert.AreEqual(string.Empty, p.GetStdErr()); Assert.AreEqual(string.Empty, p.GetStdOut()); }