diff --git a/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs b/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs index da527b4ac..ae804b01e 100644 --- a/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs +++ b/src/NzbDrone.Common.Test/DiskTests/DiskTransferServiceFixture.cs @@ -37,7 +37,7 @@ public void SetUp() [Test] public void should_use_verified_transfer_on_mono() { - MonoOnly(); + PosixOnly(); Subject.VerificationMode.Should().Be(DiskTransferVerificationMode.TryTransactional); } diff --git a/src/NzbDrone.Common.Test/DiskTests/FreeSpaceFixtureBase.cs b/src/NzbDrone.Common.Test/DiskTests/FreeSpaceFixtureBase.cs index 532075f91..b43e723ee 100644 --- a/src/NzbDrone.Common.Test/DiskTests/FreeSpaceFixtureBase.cs +++ b/src/NzbDrone.Common.Test/DiskTests/FreeSpaceFixtureBase.cs @@ -31,7 +31,7 @@ public void should_get_free_space_for_folder_that_doesnt_exist() [Test] public void should_be_able_to_check_space_on_ramdrive() { - MonoOnly(); + PosixOnly(); Subject.GetAvailableSpace("/run/").Should().NotBe(0); } diff --git a/src/NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs b/src/NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs index 3388df9ad..641141358 100644 --- a/src/NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs +++ b/src/NzbDrone.Common.Test/EnsureTest/PathExtensionFixture.cs @@ -19,7 +19,7 @@ public void EnsureWindowsPath(string path) [TestCase(@"/var/user/file with, comma.mkv")] public void EnsureLinuxPath(string path) { - MonoOnly(); + PosixOnly(); Ensure.That(path, () => path).IsValidPath(); } } diff --git a/src/NzbDrone.Common.Test/PathExtensionFixture.cs b/src/NzbDrone.Common.Test/PathExtensionFixture.cs index 08e9b32b2..028d64001 100644 --- a/src/NzbDrone.Common.Test/PathExtensionFixture.cs +++ b/src/NzbDrone.Common.Test/PathExtensionFixture.cs @@ -52,7 +52,7 @@ public void Clean_Path_Windows(string dirty, string clean) [TestCase(@"//CAPITAL//lower// ", @"/CAPITAL/lower")] public void Clean_Path_Linux(string dirty, string clean) { - MonoOnly(); + PosixOnly(); var result = dirty.CleanFilePath(); result.Should().Be(clean); @@ -152,14 +152,14 @@ public void path_should_return_parent_windows(string path, string parentPath) [TestCase(@"/test", "/")] public void path_should_return_parent_mono(string path, string parentPath) { - MonoOnly(); + PosixOnly(); path.GetParentPath().Should().Be(parentPath); } [Test] public void path_should_return_parent_for_oversized_path() { - MonoOnly(); + PosixOnly(); // This test will fail on Windows if long path support is not enabled: https://www.howtogeek.com/266621/how-to-make-windows-10-accept-file-paths-over-260-characters/ // It will also fail if the app isn't configured to use long path (such as resharper): https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/ @@ -232,7 +232,7 @@ public void get_actual_casing_should_return_actual_casing_for_local_dir_in_windo [Test] public void get_actual_casing_should_return_original_value_in_linux() { - MonoOnly(); + PosixOnly(); var path = Directory.GetCurrentDirectory(); path.GetActualCasing().Should().Be(path); path.GetActualCasing().Should().Be(path); @@ -306,7 +306,7 @@ public void GetAncestorFolders_should_return_all_ancestors_in_path_Windows() [Test] public void GetAncestorFolders_should_return_all_ancestors_in_path_Linux() { - MonoOnly(); + PosixOnly(); var path = @"/Test/TV/Series Title"; var result = path.GetAncestorFolders(); diff --git a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs index f9296800a..615406a05 100644 --- a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs +++ b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs @@ -138,6 +138,7 @@ private static bool InternalIsTesting() { var currentAssemblyLocation = typeof(RuntimeInfo).Assembly.Location; if (currentAssemblyLocation.ToLower().Contains("_output")) return true; + if (currentAssemblyLocation.ToLower().Contains("_tests")) return true; } catch { @@ -148,6 +149,7 @@ private static bool InternalIsTesting() if (lowerCurrentDir.Contains("vsts")) return true; if (lowerCurrentDir.Contains("buildagent")) return true; if (lowerCurrentDir.Contains("_output")) return true; + if (lowerCurrentDir.Contains("_tests")) return true; return false; } diff --git a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs index fce880453..fee3f798c 100644 --- a/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Download/CompletedDownloadServiceFixture.cs @@ -347,7 +347,7 @@ public void should_warn_if_path_is_not_valid_for_windows() [Test] public void should_warn_if_path_is_not_valid_for_linux() { - MonoOnly(); + PosixOnly(); _trackedDownload.DownloadItem.OutputPath = new OsPath(@"C:\Invalid\Mono\Path"); diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoDebugFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoDebugFixture.cs index d0f629051..765dc95b8 100644 --- a/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoDebugFixture.cs +++ b/src/NzbDrone.Core.Test/HealthCheck/Checks/MonoDebugFixture.cs @@ -1,4 +1,5 @@ -using NUnit.Framework; +using NUnit.Framework; +using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Core.HealthCheck.Checks; using NzbDrone.Core.Test.Framework; using NzbDrone.Test.Common; @@ -17,9 +18,12 @@ private void GivenHasStackFrame(bool hasStackFrame) } [Test] - public void should_return_ok_if_windows() + public void should_return_ok_if_not_mono() { - WindowsOnly(); + if (PlatformInfo.IsMono) + { + throw new IgnoreException("non mono specific test"); + } Subject.Check().ShouldBeOk(); } diff --git a/src/NzbDrone.Core.Test/HealthCheck/Checks/UpdateCheckFixture.cs b/src/NzbDrone.Core.Test/HealthCheck/Checks/UpdateCheckFixture.cs index 310544e5c..751ba2e7f 100644 --- a/src/NzbDrone.Core.Test/HealthCheck/Checks/UpdateCheckFixture.cs +++ b/src/NzbDrone.Core.Test/HealthCheck/Checks/UpdateCheckFixture.cs @@ -31,7 +31,7 @@ public void should_return_error_when_app_folder_is_write_protected() [Test] public void should_return_error_when_app_folder_is_write_protected_and_update_automatically_is_enabled() { - MonoOnly(); + PosixOnly(); const string startupFolder = @"/opt/nzbdrone"; @@ -53,7 +53,7 @@ public void should_return_error_when_app_folder_is_write_protected_and_update_au [Test] public void should_return_error_when_ui_folder_is_write_protected_and_update_automatically_is_enabled() { - MonoOnly(); + PosixOnly(); const string startupFolder = @"/opt/nzbdrone"; const string uiFolder = @"/opt/nzbdrone/UI"; @@ -80,7 +80,7 @@ public void should_return_error_when_ui_folder_is_write_protected_and_update_aut [Test] public void should_not_return_error_when_app_folder_is_write_protected_and_external_script_enabled() { - MonoOnly(); + PosixOnly(); Mocker.GetMock() .Setup(s => s.UpdateAutomatically) diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs index d74e53528..e6e50a81f 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaFileServiceTests/FilterFixture.cs @@ -111,7 +111,7 @@ public void filter_should_return_none_existing_files_ignoring_case() [Test] public void filter_should_return_none_existing_files_not_ignoring_case() { - MonoOnly(); + PosixOnly(); var files = new List() { diff --git a/src/NzbDrone.Core.Test/MediaFiles/MovieImport/Specifications/NotUnpackingSpecificationFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MovieImport/Specifications/NotUnpackingSpecificationFixture.cs index 4fe107a06..f7fca70a4 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MovieImport/Specifications/NotUnpackingSpecificationFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MovieImport/Specifications/NotUnpackingSpecificationFixture.cs @@ -74,7 +74,7 @@ public void should_return_false_if_in_working_folder_and_last_write_time_was_rec [Test] public void should_return_false_if_unopacking_on_linux() { - MonoOnly(); + PosixOnly(); GivenInWorkingFolder(); GivenLastWriteTimeUtc(DateTime.UtcNow.AddDays(-5)); diff --git a/src/NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs b/src/NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs index 5345cd691..de66bcfd8 100644 --- a/src/NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs +++ b/src/NzbDrone.Core.Test/UpdateTests/UpdateServiceFixture.cs @@ -181,7 +181,7 @@ public void should_not_extract_if_verification_fails() } [Test] - [Platform("Mono")] + [Platform(Exclude="Win")] public void should_run_script_if_configured() { const string scriptPath = "/tmp/nzbdrone/update.sh"; @@ -194,7 +194,7 @@ public void should_run_script_if_configured() } [Test] - [Platform("Mono")] + [Platform(Exclude="Win")] public void should_throw_if_script_is_not_set() { const string scriptPath = "/tmp/nzbdrone/update.sh"; @@ -208,7 +208,7 @@ public void should_throw_if_script_is_not_set() } [Test] - [Platform("Mono")] + [Platform(Exclude="Win")] public void should_throw_if_script_is_null() { const string scriptPath = "/tmp/nzbdrone/update.sh"; @@ -222,7 +222,7 @@ public void should_throw_if_script_is_null() } [Test] - [Platform("Mono")] + [Platform(Exclude="Win")] public void should_throw_if_script_path_does_not_exist() { const string scriptPath = "/tmp/nzbdrone/update.sh"; diff --git a/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs b/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs index 3a836bfad..94a48cc44 100644 --- a/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs +++ b/src/NzbDrone.Core.Test/ValidationTests/SystemFolderValidatorFixture.cs @@ -51,7 +51,7 @@ public void should_not_be_valid_if_child_of_windows_folder() [Test] public void should_not_be_valid_if_set_to_bin_folder() { - MonoOnly(); + PosixOnly(); var bin = OsInfo.IsOsx ? "/System" : "/bin"; var movie = Builder.CreateNew() @@ -64,7 +64,7 @@ public void should_not_be_valid_if_set_to_bin_folder() [Test] public void should_not_be_valid_if_child_of_bin_folder() { - MonoOnly(); + PosixOnly(); var bin = OsInfo.IsOsx ? "/System" : "/bin"; var movie = Builder.CreateNew() diff --git a/src/NzbDrone.Mono.Test/DiskProviderTests/DiskProviderFixture.cs b/src/NzbDrone.Mono.Test/DiskProviderTests/DiskProviderFixture.cs index 956734535..17b513343 100644 --- a/src/NzbDrone.Mono.Test/DiskProviderTests/DiskProviderFixture.cs +++ b/src/NzbDrone.Mono.Test/DiskProviderTests/DiskProviderFixture.cs @@ -13,12 +13,12 @@ namespace NzbDrone.Mono.Test.DiskProviderTests { [TestFixture] - [Platform("Mono")] + [Platform(Exclude="Win")] public class DiskProviderFixture : DiskProviderFixtureBase { public DiskProviderFixture() { - MonoOnly(); + PosixOnly(); } protected override void SetWritePermissions(string path, bool writable) diff --git a/src/NzbDrone.Mono.Test/DiskProviderTests/FreeSpaceFixture.cs b/src/NzbDrone.Mono.Test/DiskProviderTests/FreeSpaceFixture.cs index 5c2e67b4d..904693e11 100644 --- a/src/NzbDrone.Mono.Test/DiskProviderTests/FreeSpaceFixture.cs +++ b/src/NzbDrone.Mono.Test/DiskProviderTests/FreeSpaceFixture.cs @@ -1,16 +1,16 @@ -using NUnit.Framework; +using NUnit.Framework; using NzbDrone.Common.Test.DiskTests; using NzbDrone.Mono.Disk; namespace NzbDrone.Mono.Test.DiskProviderTests { [TestFixture] - [Platform("Mono")] + [Platform(Exclude="Win")] public class FreeSpaceFixture : FreeSpaceFixtureBase { public FreeSpaceFixture() { - MonoOnly(); + PosixOnly(); } } } diff --git a/src/NzbDrone.Test.Common/TestBase.cs b/src/NzbDrone.Test.Common/TestBase.cs index 3ea76b4d8..8b1e0fc9b 100644 --- a/src/NzbDrone.Test.Common/TestBase.cs +++ b/src/NzbDrone.Test.Common/TestBase.cs @@ -162,6 +162,14 @@ protected void WindowsOnly() } } + protected void PosixOnly() + { + if (OsInfo.IsWindows) + { + throw new IgnoreException("non windows specific test"); + } + } + protected void MonoOnly() { if (!PlatformInfo.IsMono)