Пример #1
0
        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;
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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());
        }
Пример #6
0
        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());
        }
Пример #7
0
        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());
        }