From 1b45779a09b4c3bd9871b0515388046be3fd52ae Mon Sep 17 00:00:00 2001 From: amandelpie Date: Fri, 14 Oct 2022 15:48:04 +0300 Subject: [PATCH 1/4] Added checkbox for the enableSummariesGeneration --- .../main/kotlin/org/utbot/framework/UtSettings.kt | 4 ++-- .../tests/infrastructure/UtValueTestCaseChecker.kt | 1 + .../kotlin/org/utbot/instrumentation/Settings.kt | 2 +- .../plugin/generator/UtTestsDialogProcessor.kt | 3 ++- .../intellij/plugin/models/GenerateTestsModel.kt | 1 + .../org/utbot/intellij/plugin/settings/Settings.kt | 10 ++++++++-- .../intellij/plugin/settings/SettingsWindow.kt | 14 ++++++++++++++ .../plugin/ui/GenerateTestsDialogWindow.kt | 1 + .../src/main/kotlin/org/utbot/contest/Contest.kt | 2 +- .../main/kotlin/org/utbot/summary/Summarization.kt | 2 +- 10 files changed, 32 insertions(+), 8 deletions(-) diff --git a/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt b/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt index 8ce3cf15ee..f52e394f94 100644 --- a/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt +++ b/utbot-framework-api/src/main/kotlin/org/utbot/framework/UtSettings.kt @@ -133,12 +133,12 @@ object UtSettings : AbstractSettings( var useCustomJavaDocTags by getBooleanProperty(true) /** - * Enable the machine learning module to generate summaries for methods under test. + * Enable the Summarization module to generate summaries for methods under test. * True by default. * * Note: if it is false, all the execution for a particular method will be stored at the same nameless region. */ - var enableMachineLearningModule by getBooleanProperty(true) + var enableSummariesGeneration by getBooleanProperty(true) /** * Options below regulate which [NullPointerException] check should be performed. diff --git a/utbot-framework/src/main/kotlin/org/utbot/tests/infrastructure/UtValueTestCaseChecker.kt b/utbot-framework/src/main/kotlin/org/utbot/tests/infrastructure/UtValueTestCaseChecker.kt index 8cdf559742..02afafd73a 100644 --- a/utbot-framework/src/main/kotlin/org/utbot/tests/infrastructure/UtValueTestCaseChecker.kt +++ b/utbot-framework/src/main/kotlin/org/utbot/tests/infrastructure/UtValueTestCaseChecker.kt @@ -88,6 +88,7 @@ abstract class UtValueTestCaseChecker( UtSettings.saveRemainingStatesForConcreteExecution = false UtSettings.useFuzzing = false UtSettings.useCustomJavaDocTags = false + UtSettings.enableSummariesGeneration = true } // checks paramsBefore and result diff --git a/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt b/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt index 0b3cf8c032..1a62d3274f 100644 --- a/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt +++ b/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt @@ -36,7 +36,7 @@ object Settings { * @see runChildProcessWithDebug * @see org.utbot.intellij.plugin.process.EngineProcess */ - const val runIdeaProcessWithDebug = false + const val runIdeaProcessWithDebug = true var defaultConcreteExecutorPoolSize = 10 } \ No newline at end of file diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt index 6c652ab4e7..d3bc2f8d22 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt @@ -27,7 +27,6 @@ import mu.KotlinLogging import org.jetbrains.kotlin.idea.util.module import org.utbot.framework.UtSettings import org.utbot.framework.plugin.api.ClassId -import org.utbot.framework.plugin.api.ExecutableId import org.utbot.framework.plugin.api.JavaDocCommentStyle import org.utbot.framework.plugin.api.util.withStaticsSubstitutionRequired import org.utbot.framework.plugin.services.JdkInfoService @@ -192,6 +191,8 @@ object UtTestsDialogProcessor { UtSettings.useCustomJavaDocTags = model.commentStyle == JavaDocCommentStyle.CUSTOM_JAVADOC_TAGS + UtSettings.enableSummariesGeneration = model.enableSummariesGeneration == true + val searchDirectory = ReadAction .nonBlocking { project.basePath?.let { Paths.get(it) } diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt index e11adde947..a448e79196 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/models/GenerateTestsModel.kt @@ -77,6 +77,7 @@ data class GenerateTestsModel( srcClasses.map { it.packageName }.distinct().size != 1 } var runGeneratedTestsWithCoverage : Boolean = false + var enableSummariesGeneration : Boolean = true val jdkVersion: JavaSdkVersion? get() = try { diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt index 9c83a33a15..a23260a4a6 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt @@ -55,7 +55,8 @@ class Settings(val project: Project) : PersistentStateComponent var classesToMockAlways: Array = Mocker.defaultSuperClassesToMockAlwaysNames.toTypedArray(), var fuzzingValue: Double = 0.05, var runGeneratedTestsWithCoverage: Boolean = false, - var commentStyle: JavaDocCommentStyle = JavaDocCommentStyle.defaultItem + var commentStyle: JavaDocCommentStyle = JavaDocCommentStyle.defaultItem, + var enableSummariesGeneration: Boolean = true ) { constructor(model: GenerateTestsModel) : this( codegenLanguage = model.codegenLanguage, @@ -70,7 +71,8 @@ class Settings(val project: Project) : PersistentStateComponent classesToMockAlways = model.chosenClassesToMockAlways.mapTo(mutableSetOf()) { it.name }.toTypedArray(), fuzzingValue = model.fuzzingValue, runGeneratedTestsWithCoverage = model.runGeneratedTestsWithCoverage, - commentStyle = model.commentStyle + commentStyle = model.commentStyle, + enableSummariesGeneration = model.enableSummariesGeneration ) override fun equals(other: Any?): Boolean { @@ -92,6 +94,8 @@ class Settings(val project: Project) : PersistentStateComponent if (!classesToMockAlways.contentEquals(other.classesToMockAlways)) return false if (fuzzingValue != other.fuzzingValue) return false if (runGeneratedTestsWithCoverage != other.runGeneratedTestsWithCoverage) return false + if (commentStyle != other.commentStyle) return false + if (enableSummariesGeneration != other.enableSummariesGeneration) return false return true } @@ -149,6 +153,8 @@ class Settings(val project: Project) : PersistentStateComponent } var runGeneratedTestsWithCoverage = state.runGeneratedTestsWithCoverage + var enableSummariesGeneration = state.enableSummariesGeneration + fun setClassesToMockAlways(classesToMockAlways: List) { state.classesToMockAlways = classesToMockAlways.distinct().toTypedArray() } diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt index 52649656e2..71a2ca9025 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt @@ -36,6 +36,7 @@ class SettingsWindow(val project: Project) { // TODO it is better to use something like SearchEverywhere for classes but it is complicated to implement private val excludeTable = MockAlwaysClassesTable(project) private lateinit var forceMockCheckBox: JCheckBox + private lateinit var enableSummarizationGenerationCheckBox: JCheckBox val panel: JPanel = panel { val valuesComboBox: LayoutBuilder.(KClass<*>, Array<*>) -> Unit = { loader, values -> @@ -98,6 +99,19 @@ class SettingsWindow(val project: Project) { valuesComboBox(loader, values) } + row { + cell { + enableSummarizationGenerationCheckBox = checkBox("Enable Summaries Generation") + .onApply { + settings.state.enableSummariesGeneration = + enableSummarizationGenerationCheckBox.isSelected + } + .onReset { enableSummarizationGenerationCheckBox.isSelected = settings.enableSummariesGeneration == true } + .onIsModified { enableSummarizationGenerationCheckBox.isSelected xor (settings.enableSummariesGeneration != false) } + .component + } + } + row { cell { forceMockCheckBox = checkBox("Force mocking static methods") diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt index 779261d3c2..a2eb00b805 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt @@ -515,6 +515,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m model.chosenClassesToMockAlways = chosenClassesToMockAlways() model.fuzzingValue = fuzzingValue model.commentStyle = javaDocCommentStyle + model.enableSummariesGeneration = enableSummariesGeneration UtSettings.treatOverflowAsError = treatOverflowAsError == TreatOverflowAsError.AS_ERROR } diff --git a/utbot-junit-contest/src/main/kotlin/org/utbot/contest/Contest.kt b/utbot-junit-contest/src/main/kotlin/org/utbot/contest/Contest.kt index 691faa4b64..fdd856ea0a 100644 --- a/utbot-junit-contest/src/main/kotlin/org/utbot/contest/Contest.kt +++ b/utbot-junit-contest/src/main/kotlin/org/utbot/contest/Contest.kt @@ -149,7 +149,7 @@ fun setOptions() { UtSettings.useFuzzing = true UtSettings.classfilesCanChange = false UtSettings.useAssembleModelGenerator = false - UtSettings.enableMachineLearningModule = false + UtSettings.enableSummariesGeneration = false UtSettings.preferredCexOption = false UtSettings.warmupConcreteExecution = true UtSettings.testMinimizationStrategyType = TestSelectionStrategyType.COVERAGE_STRATEGY diff --git a/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt b/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt index 7c71f4a3f4..59cdc3177f 100644 --- a/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt +++ b/utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt @@ -43,7 +43,7 @@ import soot.SootMethod private val logger = KotlinLogging.logger {} fun UtMethodTestSet.summarize(sourceFile: File?, searchDirectory: Path = Paths.get("")): UtMethodTestSet { - if (!UtSettings.enableMachineLearningModule) return this + if (!UtSettings.enableSummariesGeneration) return this return try { makeDiverseExecutions(this) From 58602bb992b40ecddd407b3bc9ddf9f37be88754 Mon Sep 17 00:00:00 2001 From: amandelpie Date: Fri, 14 Oct 2022 15:48:29 +0300 Subject: [PATCH 2/4] Added checkbox for the enableSummariesGeneration --- .../src/main/kotlin/org/utbot/instrumentation/Settings.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt b/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt index 1a62d3274f..0b3cf8c032 100644 --- a/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt +++ b/utbot-instrumentation/src/main/kotlin/org/utbot/instrumentation/Settings.kt @@ -36,7 +36,7 @@ object Settings { * @see runChildProcessWithDebug * @see org.utbot.intellij.plugin.process.EngineProcess */ - const val runIdeaProcessWithDebug = true + const val runIdeaProcessWithDebug = false var defaultConcreteExecutorPoolSize = 10 } \ No newline at end of file From 406c007c99b076689b2f87defaadf4fe1800315f Mon Sep 17 00:00:00 2001 From: amandelpie Date: Fri, 14 Oct 2022 17:12:56 +0300 Subject: [PATCH 3/4] Added checkbox for the enableSummariesGeneration --- .../org/utbot/intellij/plugin/settings/SettingsWindow.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt index 71a2ca9025..46ca563495 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt @@ -103,11 +103,12 @@ class SettingsWindow(val project: Project) { cell { enableSummarizationGenerationCheckBox = checkBox("Enable Summaries Generation") .onApply { - settings.state.enableSummariesGeneration = - enableSummarizationGenerationCheckBox.isSelected + settings.state.enableSummariesGeneration = enableSummarizationGenerationCheckBox.isSelected } - .onReset { enableSummarizationGenerationCheckBox.isSelected = settings.enableSummariesGeneration == true } - .onIsModified { enableSummarizationGenerationCheckBox.isSelected xor (settings.enableSummariesGeneration != false) } + .onReset { + enableSummarizationGenerationCheckBox.isSelected = settings.state.enableSummariesGeneration + } + .onIsModified { enableSummarizationGenerationCheckBox.isSelected xor settings.state.enableSummariesGeneration } .component } } From 905b5b4ccdfcef118f2fd48c73ba73382f1376b4 Mon Sep 17 00:00:00 2001 From: amandelpie Date: Mon, 17 Oct 2022 12:01:44 +0300 Subject: [PATCH 4/4] Fixed wrong setting saving --- .../utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt | 2 +- .../kotlin/org/utbot/intellij/plugin/settings/Settings.kt | 1 + .../org/utbot/intellij/plugin/settings/SettingsWindow.kt | 4 +++- .../org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt | 2 +- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt index d3bc2f8d22..3a7f291e1f 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/generator/UtTestsDialogProcessor.kt @@ -191,7 +191,7 @@ object UtTestsDialogProcessor { UtSettings.useCustomJavaDocTags = model.commentStyle == JavaDocCommentStyle.CUSTOM_JAVADOC_TAGS - UtSettings.enableSummariesGeneration = model.enableSummariesGeneration == true + UtSettings.enableSummariesGeneration = model.enableSummariesGeneration val searchDirectory = ReadAction .nonBlocking { diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt index a23260a4a6..c78d03e8a3 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/Settings.kt @@ -113,6 +113,7 @@ class Settings(val project: Project) : PersistentStateComponent result = 31 * result + classesToMockAlways.contentHashCode() result = 31 * result + fuzzingValue.hashCode() result = 31 * result + if (runGeneratedTestsWithCoverage) 1 else 0 + result = 31 * result + if (enableSummariesGeneration) 1 else 0 return result } diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt index 46ca563495..94d87384ec 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/settings/SettingsWindow.kt @@ -108,7 +108,9 @@ class SettingsWindow(val project: Project) { .onReset { enableSummarizationGenerationCheckBox.isSelected = settings.state.enableSummariesGeneration } - .onIsModified { enableSummarizationGenerationCheckBox.isSelected xor settings.state.enableSummariesGeneration } + .onIsModified { + enableSummarizationGenerationCheckBox.isSelected xor settings.state.enableSummariesGeneration + } .component } } diff --git a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt index a2eb00b805..1c529eea8a 100644 --- a/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt +++ b/utbot-intellij/src/main/kotlin/org/utbot/intellij/plugin/ui/GenerateTestsDialogWindow.kt @@ -515,7 +515,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m model.chosenClassesToMockAlways = chosenClassesToMockAlways() model.fuzzingValue = fuzzingValue model.commentStyle = javaDocCommentStyle - model.enableSummariesGeneration = enableSummariesGeneration + model.enableSummariesGeneration = state.enableSummariesGeneration UtSettings.treatOverflowAsError = treatOverflowAsError == TreatOverflowAsError.AS_ERROR }