Skip to content

Commit 88ef333

Browse files
committed
Added option for turning off symbolic or fuzzing
1 parent 7d92741 commit 88ef333

File tree

3 files changed

+46
-24
lines changed

3 files changed

+46
-24
lines changed

utbot-cli-python/src/main/kotlin/org/utbot/cli/language/python/sbft/SbftGenerateTestsCommand.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.github.ajalt.clikt.parameters.options.option
88
import com.github.ajalt.clikt.parameters.options.required
99
import com.github.ajalt.clikt.parameters.options.split
1010
import com.github.ajalt.clikt.parameters.types.choice
11+
import com.github.ajalt.clikt.parameters.types.enum
1112
import com.github.ajalt.clikt.parameters.types.long
1213
import mu.KotlinLogging
1314
import org.parsers.python.PythonParser
@@ -16,12 +17,7 @@ import org.utbot.cli.language.python.findCurrentPythonModule
1617
import org.utbot.cli.language.python.toAbsolutePath
1718
import org.utbot.cli.language.python.writeToFileAndSave
1819
import org.utbot.framework.codegen.domain.RuntimeExceptionTestsBehaviour
19-
import org.utbot.python.MypyConfig
20-
import org.utbot.python.PythonMethodHeader
21-
import org.utbot.python.PythonTestGenerationConfig
22-
import org.utbot.python.PythonTestGenerationProcessor
23-
import org.utbot.python.TestFileInformation
24-
import org.utbot.python.UsvmConfig
20+
import org.utbot.python.*
2521
import org.utbot.python.code.PythonCode
2622
import org.utbot.python.coverage.CoverageOutputFormat
2723
import org.utbot.python.coverage.PythonCoverageMode
@@ -115,6 +111,10 @@ class SbftGenerateTestsCommand : CliktCommand(
115111
)
116112
.flag(default = false)
117113

114+
private val searchMode by option("--mode")
115+
.enum<InputSearchMode> { it.name }
116+
.default(InputSearchMode.BOTH)
117+
118118
private val javaCmd by option(
119119
"--java-cmd",
120120
help = "(required) Path to Java command (ONLY FOR USVM)."
@@ -273,6 +273,7 @@ class SbftGenerateTestsCommand : CliktCommand(
273273
prohibitedExceptions = if (prohibitedExceptions == listOf("-")) emptyList() else prohibitedExceptions,
274274
checkUsvm = checkUsvm,
275275
doNotGenerateStateAssertions = doNotGenerateStateAssertions,
276+
inputSearchMode = searchMode
276277
)
277278
val processor = SbftCliProcessor(config)
278279

utbot-python/src/main/kotlin/org/utbot/python/PythonTestGenerationConfig.kt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class PythonTestGenerationConfig(
3434
val prohibitedExceptions: List<String> = defaultProhibitedExceptions,
3535
val checkUsvm: Boolean = false,
3636
val doNotGenerateStateAssertions: Boolean = false,
37+
val inputSearchMode: InputSearchMode = InputSearchMode.BOTH
3738
) {
3839
companion object {
3940
val defaultProhibitedExceptions = listOf(
@@ -60,4 +61,14 @@ data class UsvmConfig(
6061
val usvmJavaCmd = "${System.getProperty("java.home")}/bin/java"
6162
val defaultConfig = UsvmConfig(usvmJavaCmd, usvmDirectory)
6263
}
64+
}
65+
66+
@Suppress("unused")
67+
enum class InputSearchMode(
68+
val fuzzingEnabled: Boolean,
69+
val symbolicEnabled: Boolean
70+
) {
71+
FUZZING(true, false),
72+
SYMBOLIC(false, true),
73+
BOTH(true, true)
6374
}

utbot-python/src/main/kotlin/org/utbot/python/engine/GlobalPythonEngine.kt

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -105,26 +105,36 @@ class GlobalPythonEngine(
105105
}
106106

107107
fun run() {
108-
val fuzzing = thread(
109-
start = true,
110-
isDaemon = false,
111-
name = "Fuzzer"
112-
) {
113-
logger.info { " >>>>>>> Start fuzzer >>>>>>> " }
114-
runFuzzing()
115-
logger.info { " <<<<<<< Finish fuzzer <<<<<<< " }
108+
val threads = mutableListOf<Thread>()
109+
if (configuration.inputSearchMode.fuzzingEnabled) {
110+
val fuzzing = thread(
111+
start = true,
112+
isDaemon = false,
113+
name = "Fuzzer"
114+
) {
115+
logger.info { " >>>>>>> Start fuzzer >>>>>>> " }
116+
runFuzzing()
117+
logger.info { " <<<<<<< Finish fuzzer <<<<<<< " }
118+
}
119+
threads.add(fuzzing)
120+
} else {
121+
logger.info { "Fuzzing disabled." }
116122
}
117-
val symbolic = thread(
118-
start = true,
119-
isDaemon = false,
120-
name = "Symbolic"
121-
) {
122-
logger.info { " ------- Start symbolic ------- " }
123-
runSymbolic()
124-
logger.info { " ======= Finish symbolic ======= " }
123+
if (configuration.inputSearchMode.symbolicEnabled) {
124+
val symbolic = thread(
125+
start = true,
126+
isDaemon = false,
127+
name = "Symbolic"
128+
) {
129+
logger.info { " ------- Start symbolic ------- " }
130+
runSymbolic()
131+
logger.info { " ======= Finish symbolic ======= " }
132+
}
133+
threads.add(symbolic)
134+
} else {
135+
logger.info { "Symbolic disabled." }
125136
}
126-
fuzzing.join()
127-
symbolic.join()
137+
threads.forEach { it.join() }
128138
}
129139

130140
fun debugUsvmRun() {

0 commit comments

Comments
 (0)