diff --git a/save-common/src/commonMain/kotlin/org/cqfn/save/core/plugin/Plugin.kt b/save-common/src/commonMain/kotlin/org/cqfn/save/core/plugin/Plugin.kt index 3e202b6a9..4e788e0f8 100644 --- a/save-common/src/commonMain/kotlin/org/cqfn/save/core/plugin/Plugin.kt +++ b/save-common/src/commonMain/kotlin/org/cqfn/save/core/plugin/Plugin.kt @@ -20,7 +20,7 @@ import okio.Path * @property redirectTo a file where process output and errors should be redirected. If null, output will be returned as [ExecutionResult.stdout] and [ExecutionResult.stderr]. */ abstract class Plugin( - open val testConfig: TestConfig, + val testConfig: TestConfig, protected val testFiles: List, protected val fs: FileSystem, private val useInternalRedirections: Boolean, @@ -29,6 +29,9 @@ abstract class Plugin( * Instance that is capable of executing processes */ val pb = ProcessBuilder(useInternalRedirections, fs) + init { + testConfig.validateAndSetDefaults() + } /** * Perform plugin's work. diff --git a/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPlugin.kt b/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPlugin.kt index 44143b341..77a52f9e7 100644 --- a/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPlugin.kt +++ b/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPlugin.kt @@ -65,7 +65,6 @@ class FixAndWarnPlugin( ) override fun handleFiles(files: Sequence>): Sequence { - testConfig.validateAndSetDefaults() // Need to update private fields after validation initOrUpdateConfigs() val testFilePattern = warnPluginConfig.resourceNamePattern diff --git a/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPluginConfig.kt b/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPluginConfig.kt index 406696d9e..1efd290f7 100644 --- a/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPluginConfig.kt +++ b/save-plugins/fix-and-warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fixandwarn/FixAndWarnPluginConfig.kt @@ -36,16 +36,19 @@ data class FixAndWarnPluginConfig( } override fun validateAndSetDefaults(): PluginConfig { - require(fix.resourceNameTest == warn.testName && fix.batchSize == warn.batchSize) { + val fixPluginConfig = fix.validateAndSetDefaults() + val warnPluginConfig = warn.validateAndSetDefaults() + require(fixPluginConfig.resourceNameTest == warnPluginConfig.testNameSuffix && + fixPluginConfig.batchSize == warnPluginConfig.batchSize + ) { """ Test files suffix names and batch sizes should be identical for [fix] and [warn] plugins. - But found [fix]: {${fix.resourceNameTest}, ${fix.batchSize}}, - [warn]: {${warn.testName}, ${warn.batchSize}} + But found [fix]: {${fixPluginConfig.resourceNameTest}, ${fixPluginConfig.batchSize}}, + [warn]: {${warnPluginConfig.testNameSuffix}, ${warnPluginConfig.batchSize}} """ } return FixAndWarnPluginConfig( - fix.validateAndSetDefaults(), - warn.validateAndSetDefaults() + fixPluginConfig, warnPluginConfig ) } } diff --git a/save-plugins/fix-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fix/FixPlugin.kt b/save-plugins/fix-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fix/FixPlugin.kt index 4e1982bc6..079913509 100644 --- a/save-plugins/fix-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fix/FixPlugin.kt +++ b/save-plugins/fix-plugin/src/commonMain/kotlin/org/cqfn/save/plugins/fix/FixPlugin.kt @@ -47,8 +47,6 @@ class FixPlugin( @Suppress("TOO_LONG_FUNCTION") override fun handleFiles(files: Sequence>): Sequence { - testConfig.validateAndSetDefaults() - val fixPluginConfig = testConfig.pluginConfigs.filterIsInstance().single() val generalConfig = testConfig.pluginConfigs.filterIsInstance().single() diff --git a/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPlugin.kt b/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPlugin.kt index 9d686323e..b92f960f1 100644 --- a/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPlugin.kt +++ b/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPlugin.kt @@ -41,8 +41,6 @@ class WarnPlugin( private val unexpected = "Some warnings were unexpected" override fun handleFiles(files: Sequence>): Sequence { - testConfig.validateAndSetDefaults() - val warnPluginConfig = testConfig.pluginConfigs.filterIsInstance().single() val generalConfig = testConfig.pluginConfigs.filterIsInstance().single() diff --git a/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPluginConfig.kt b/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPluginConfig.kt index 1fdd34b23..583e8c349 100644 --- a/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPluginConfig.kt +++ b/save-plugins/warn-plugin/src/commonMain/kotlin/org/cqfn/save/plugin/warn/WarnPluginConfig.kt @@ -42,7 +42,7 @@ import kotlinx.serialization.UseSerializers * @property batchSize it controls how many files execCmd will process at a time. * @property batchSeparator separator for batch mode * @property linePlaceholder placeholder for line number, which resolved as current line and support addition and subtraction - * @property wildCardInDirectoryMode mode that controls that we are targetting our tested tools on directories (not on files). + * @property wildCardInDirectoryMode mode that controls that we are targeting our tested tools on directories (not on files). * This prefix will be added to the name of the directory, if you would like to use directory mode without any prefix simply use "" */ @Serializable @@ -71,17 +71,12 @@ data class WarnPluginConfig( override var configLocation: Path = "undefined_toml_location".toPath() /** - * @property suffix name of the test file. + * regex for the name of the test files. */ - val testName: String = testNameSuffix ?: "Test" - - /** - * @property resourceNamePattern regex for the name of the test files. - */ - val resourceNamePattern: Regex = if (testName == "Test") { - Regex("""(.+)${(testName)}\.[\w\d]+""") + val resourceNamePattern: Regex = if (testNameSuffix == "Test") { + Regex("""(.+)${(testNameSuffix)}\.[\w\d]+""") } else { - Regex("""(.+)${(testName)}""") + Regex("""(.+)${(testNameSuffix)}""") } @Suppress("ComplexMethod") @@ -147,7 +142,7 @@ data class WarnPluginConfig( newColumnCaptureGroupOut, newMessageCaptureGroupOut, exactWarningsMatch ?: true, - testName, + testNameSuffix ?: "Test", linePlaceholder ?: "\$line", wildCardInDirectoryMode, )