From 1e729459a6c1955278155dd6f90fa0f2a113a25a Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sat, 7 Dec 2024 22:08:26 -0500 Subject: [PATCH] Remove unnecessary re-splitting of path (fixes #772) --- CHANGELIST.md | 1 + MPF.Processors.Test/AaruTests.cs | 10 +++++---- MPF.Processors.Test/CleanRipTests.cs | 10 +++++---- MPF.Processors.Test/DiscImageCreatorTests.cs | 10 +++++---- MPF.Processors.Test/PS3CFWTests.cs | 10 +++++---- MPF.Processors.Test/RedumperTests.cs | 10 +++++---- MPF.Processors.Test/UmdImageCreatorTests.cs | 10 +++++---- MPF.Processors.Test/XboxBackupCreatorTests.cs | 10 +++++---- MPF.Processors/BaseProcessor.cs | 21 ++++++++----------- 9 files changed, 52 insertions(+), 40 deletions(-) diff --git a/CHANGELIST.md b/CHANGELIST.md index 2857543b..319ed3d2 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -64,6 +64,7 @@ - Add alternate config location - Add safety check around empty config files - Add launch config for CLI +- Remove unnecessary re-splitting of path ### 3.2.4 (2024-11-24) diff --git a/MPF.Processors.Test/AaruTests.cs b/MPF.Processors.Test/AaruTests.cs index e3c91d13..d6428965 100644 --- a/MPF.Processors.Test/AaruTests.cs +++ b/MPF.Processors.Test/AaruTests.cs @@ -108,18 +108,20 @@ namespace MPF.Processors.Test [Fact] public void CheckRequiredFiles_Invalid_Filled() { - string basePath = string.Empty; + string? baseDirectory = null; + string baseFilename = string.Empty; var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Equal(7, actual.Count); } [Fact] public void CheckRequiredFiles_Valid_Empty() { - string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM", "test"); + string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Aaru", "CDROM"); + string baseFilename = "test"; var processor = new Aaru(RedumpSystem.IBMPCcompatible, MediaType.CDROM); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Empty(actual); } diff --git a/MPF.Processors.Test/CleanRipTests.cs b/MPF.Processors.Test/CleanRipTests.cs index 48c44fd0..a6386141 100644 --- a/MPF.Processors.Test/CleanRipTests.cs +++ b/MPF.Processors.Test/CleanRipTests.cs @@ -93,18 +93,20 @@ namespace MPF.Processors.Test [Fact] public void CheckRequiredFiles_Invalid_Filled() { - string basePath = string.Empty; + string? baseDirectory = null; + string baseFilename = string.Empty; var processor = new CleanRip(RedumpSystem.NintendoGameCube, MediaType.DVD); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Equal(3, actual.Count); } [Fact] public void CheckRequiredFiles_Valid_Empty() { - string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "CleanRip", "DVD", "test"); + string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "CleanRip", "DVD"); + string baseFilename = "test"; var processor = new CleanRip(RedumpSystem.NintendoGameCube, MediaType.DVD); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Empty(actual); } diff --git a/MPF.Processors.Test/DiscImageCreatorTests.cs b/MPF.Processors.Test/DiscImageCreatorTests.cs index 03852e43..436dec9f 100644 --- a/MPF.Processors.Test/DiscImageCreatorTests.cs +++ b/MPF.Processors.Test/DiscImageCreatorTests.cs @@ -162,18 +162,20 @@ namespace MPF.Processors.Test [Fact] public void CheckRequiredFiles_Invalid_Filled() { - string basePath = string.Empty; + string? baseDirectory = null; + string baseFilename = string.Empty; var processor = new DiscImageCreator(RedumpSystem.IBMPCcompatible, MediaType.CDROM); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Equal(17, actual.Count); } [Fact] public void CheckRequiredFiles_Valid_Empty() { - string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "DiscImageCreator", "CDROM", "test"); + string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "DiscImageCreator", "CDROM"); + string baseFilename = "test"; var processor = new DiscImageCreator(RedumpSystem.IBMPCcompatible, MediaType.CDROM); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Empty(actual); } diff --git a/MPF.Processors.Test/PS3CFWTests.cs b/MPF.Processors.Test/PS3CFWTests.cs index dce38bd8..5786d14b 100644 --- a/MPF.Processors.Test/PS3CFWTests.cs +++ b/MPF.Processors.Test/PS3CFWTests.cs @@ -72,18 +72,20 @@ namespace MPF.Processors.Test [Fact] public void CheckRequiredFiles_Invalid_Filled() { - string basePath = string.Empty; + string? baseDirectory = null; + string baseFilename = string.Empty; var processor = new PS3CFW(RedumpSystem.SonyPlayStation3, MediaType.BluRay); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Equal(3, actual.Count); } [Fact] public void CheckRequiredFiles_Valid_Empty() { - string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "PS3CFW", "BluRay", "test"); + string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "PS3CFW", "BluRay"); + string baseFilename = "test"; var processor = new PS3CFW(RedumpSystem.SonyPlayStation3, MediaType.BluRay); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Empty(actual); } diff --git a/MPF.Processors.Test/RedumperTests.cs b/MPF.Processors.Test/RedumperTests.cs index 07fd4e70..ab2b4672 100644 --- a/MPF.Processors.Test/RedumperTests.cs +++ b/MPF.Processors.Test/RedumperTests.cs @@ -105,18 +105,20 @@ namespace MPF.Processors.Test [Fact] public void CheckRequiredFiles_Invalid_Filled() { - string basePath = string.Empty; + string? baseDirectory = null; + string baseFilename = string.Empty; var processor = new Redumper(RedumpSystem.IBMPCcompatible, MediaType.CDROM); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Equal(8, actual.Count); } [Fact] public void CheckRequiredFiles_Valid_Empty() { - string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "Redumper", "CDROM", "test"); + string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "Redumper", "CDROM"); + string baseFilename = "test"; var processor = new Redumper(RedumpSystem.IBMPCcompatible, MediaType.CDROM); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Empty(actual); } diff --git a/MPF.Processors.Test/UmdImageCreatorTests.cs b/MPF.Processors.Test/UmdImageCreatorTests.cs index 21f10fb9..d25fb513 100644 --- a/MPF.Processors.Test/UmdImageCreatorTests.cs +++ b/MPF.Processors.Test/UmdImageCreatorTests.cs @@ -72,18 +72,20 @@ namespace MPF.Processors.Test [Fact] public void CheckRequiredFiles_Invalid_Filled() { - string basePath = string.Empty; + string? baseDirectory = null; + string baseFilename = string.Empty; var processor = new UmdImageCreator(RedumpSystem.SonyPlayStationPortable, MediaType.UMD); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Equal(5, actual.Count); } [Fact] public void CheckRequiredFiles_Valid_Empty() { - string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "UmdImageCreator", "UMD", "test"); + string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "UmdImageCreator", "UMD"); + string baseFilename = "test"; var processor = new UmdImageCreator(RedumpSystem.SonyPlayStationPortable, MediaType.UMD); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Empty(actual); } diff --git a/MPF.Processors.Test/XboxBackupCreatorTests.cs b/MPF.Processors.Test/XboxBackupCreatorTests.cs index c604589b..d7e3ecc1 100644 --- a/MPF.Processors.Test/XboxBackupCreatorTests.cs +++ b/MPF.Processors.Test/XboxBackupCreatorTests.cs @@ -72,18 +72,20 @@ namespace MPF.Processors.Test [Fact] public void CheckRequiredFiles_Invalid_Filled() { - string basePath = string.Empty; + string? baseDirectory = null; + string baseFilename = string.Empty; var processor = new XboxBackupCreator(RedumpSystem.MicrosoftXbox, MediaType.DVD); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Equal(5, actual.Count); } [Fact] public void CheckRequiredFiles_Valid_Empty() { - string? basePath = Path.Combine(Environment.CurrentDirectory, "TestData", "XboxBackupCreator", "DVD", "test"); + string? baseDirectory = Path.Combine(Environment.CurrentDirectory, "TestData", "XboxBackupCreator", "DVD"); + string baseFilename = "test"; var processor = new XboxBackupCreator(RedumpSystem.MicrosoftXbox, MediaType.DVD); - var actual = processor.CheckRequiredFiles(basePath); + var actual = processor.CheckRequiredFiles(baseDirectory, baseFilename); Assert.Empty(actual); } diff --git a/MPF.Processors/BaseProcessor.cs b/MPF.Processors/BaseProcessor.cs index 91f2e096..eee42aa3 100644 --- a/MPF.Processors/BaseProcessor.cs +++ b/MPF.Processors/BaseProcessor.cs @@ -187,13 +187,8 @@ namespace MPF.Processors // Sanitize the output filename to strip off any potential extension outputFilename = Path.GetFileNameWithoutExtension(outputFilename); - // Then get the base path for all checking - string basePath = outputFilename; - if (!string.IsNullOrEmpty(outputDirectory)) - basePath = Path.Combine(outputDirectory, outputFilename); - // Finally, let the parameters say if all files exist - return CheckRequiredFiles(basePath); + return CheckRequiredFiles(outputDirectory, outputFilename); } /// @@ -328,13 +323,15 @@ namespace MPF.Processors /// /// Validate if all required output files exist /// - /// Base filename and path to use for checking + /// Base directory to check + /// Base filename template to use /// A list representing missing files, empty if none - internal List CheckRequiredFiles(string basePath) + internal List CheckRequiredFiles(string? baseDirectory, string baseFilename) { - // Split the base path for matching - string baseDirectory = Path.GetDirectoryName(basePath) ?? string.Empty; - string baseFilename = Path.GetFileNameWithoutExtension(basePath); + // Assemble a base path + string basePath = baseFilename; + if (!string.IsNullOrEmpty(baseDirectory)) + basePath = Path.Combine(baseDirectory, basePath); // Get the list of output files var outputFiles = GetOutputFiles(baseDirectory, baseFilename); @@ -371,7 +368,7 @@ namespace MPF.Processors continue; // Use the built-in existence function - if (outputFile.Exists(baseDirectory)) + if (outputFile.Exists(baseDirectory ?? string.Empty)) continue; // If the log archive doesn't exist