added folder logging to isproduction test. better process name detection in mono.

This commit is contained in:
kay.one 2013-09-14 17:17:45 -07:00
parent 873134fcee
commit 661ba97215
2 changed files with 14 additions and 3 deletions

View File

@ -29,7 +29,7 @@ namespace NzbDrone.Common.Test
[Test] [Test]
public void IsProduction_should_return_false_when_run_within_nunit() public void IsProduction_should_return_false_when_run_within_nunit()
{ {
RuntimeInfo.IsProduction.Should().BeFalse("Process name is " + Process.GetCurrentProcess().ProcessName); RuntimeInfo.IsProduction.Should().BeFalse("Process name is " + Process.GetCurrentProcess().ProcessName + " Folder is " + Directory.GetCurrentDirectory());
} }
[Test] [Test]

View File

@ -213,7 +213,7 @@ namespace NzbDrone.Common
return new ProcessInfo return new ProcessInfo
{ {
Id = process.Id, Id = process.Id,
StartPath = process.MainModule.FileName, StartPath = GetExeFileName(process),
Name = process.ProcessName Name = process.ProcessName
}; };
} }
@ -225,6 +225,17 @@ namespace NzbDrone.Common
return null; return null;
} }
private static string GetExeFileName(Process process)
{
if (process.MainModule.FileName != "mono.exe")
{
return process.MainModule.FileName;
}
return process.Modules.Cast<ProcessModule>().FirstOrDefault(module => module.ModuleName.ToLower().EndsWith(".exe")).FileName;
}
private void Kill(int processId) private void Kill(int processId)
{ {
var process = Process.GetProcesses().FirstOrDefault(p => p.Id == processId); var process = Process.GetProcesses().FirstOrDefault(p => p.Id == processId);