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 11c426c1ce..1cd5467b06 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-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..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 @@ -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 + 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 99593ca5da..99495e4079 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..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 @@ -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 } @@ -109,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 } @@ -149,6 +154,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..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 @@ -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,22 @@ 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.state.enableSummariesGeneration + } + .onIsModified { + enableSummarizationGenerationCheckBox.isSelected xor settings.state.enableSummariesGeneration + } + .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 6f57354945..4ad9520208 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 @@ -514,6 +514,7 @@ class GenerateTestsDialogWindow(val model: GenerateTestsModel) : DialogWrapper(m model.chosenClassesToMockAlways = chosenClassesToMockAlways() model.fuzzingValue = fuzzingValue model.commentStyle = javaDocCommentStyle + model.enableSummariesGeneration = state.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 c9656640d5..07aa300275 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)