public const int SuccessExitCode = 42;
/// <summary>The name of the test console app.</summary>
- protected static readonly string TestConsoleApp = "RemoteExecutorConsoleApp.exe";
+ protected static readonly string TestConsoleApp = Path.GetFullPath("RemoteExecutorConsoleApp.exe");
/// <summary>Invokes the method from this assembly in another process using the specified arguments.</summary>
/// <param name="method">The method to invoke.</param>
}
[Fact]
- public void TestWorkingDirectoryProperty()
+ public void TestWorkingDirectoryPropertyDefaultCase()
{
CreateDefaultProcess();
// check defaults
Assert.Equal(string.Empty, _process.StartInfo.WorkingDirectory);
+ }
- Process p = CreateProcessLong();
- p.StartInfo.WorkingDirectory = Directory.GetCurrentDirectory();
-
- try
- {
- p.Start();
- Assert.Equal(Directory.GetCurrentDirectory(), p.StartInfo.WorkingDirectory);
- }
- finally
- {
- if (!p.HasExited)
- p.Kill();
-
- Assert.True(p.WaitForExit(WaitInMS));
- }
+ [Fact]
+ public void TestWorkingDirectoryPropertyInChildProcess()
+ {
+ string workingDirectory = string.IsNullOrEmpty(Environment.SystemDirectory) ? TestDirectory : Environment.SystemDirectory ;
+ Assert.NotEqual(workingDirectory, Directory.GetCurrentDirectory());
+ var psi = new ProcessStartInfo { WorkingDirectory = workingDirectory };
+ RemoteInvoke(wd => { Assert.Equal(wd, Directory.GetCurrentDirectory()); return SuccessExitCode; }, workingDirectory, new RemoteInvokeOptions { StartInfo = psi }).Dispose();
}
[ActiveIssue(12696)]