Skip to content

Commit 64ac713

Browse files
committed
Limit fuzzing cases for a field accessors
1 parent 77b51a9 commit 64ac713

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

utbot-fuzzers/src/main/kotlin/org/utbot/fuzzer/providers/ObjectModelProvider.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ import java.util.function.IntSupplier
3636
class ObjectModelProvider : ModelProvider {
3737

3838
var modelProvider: ModelProvider
39+
var limitValuesCreatedByFieldAccessors: Int = 100
40+
set(value) {
41+
field = maxOf(0, value)
42+
}
3943

4044
private val idGenerator: IntSupplier
4145
private val recursion: Int
@@ -100,6 +104,7 @@ class ObjectModelProvider : ModelProvider {
100104
}
101105

102106
private fun generateModelsWithFieldsInitialization(constructorId: ConstructorId, description: FuzzedMethodDescription, concreteValues: Collection<FuzzedConcreteValue>): Sequence<FuzzedValue> {
107+
if (limitValuesCreatedByFieldAccessors == 0) return emptySequence()
103108
val fields = findSuitableFields(constructorId.classId, description)
104109
val syntheticClassFieldsSetterMethodDescription = FuzzedMethodDescription(
105110
"${constructorId.classId.simpleName}<syntheticClassFieldSetter>",
@@ -109,6 +114,7 @@ class ObjectModelProvider : ModelProvider {
109114
)
110115

111116
return fuzz(syntheticClassFieldsSetterMethodDescription, nonRecursiveModelProvider)
117+
.take(limitValuesCreatedByFieldAccessors) // limit the number of fuzzed values in this particular case
112118
.map { fieldValues ->
113119
val fuzzedModel = assembleModel(idGenerator.asInt, constructorId, emptyList())
114120
val assembleModel = fuzzedModel.model as? UtAssembleModel ?: error("Expected UtAssembleModel but ${fuzzedModel.model::class.java} found")

0 commit comments

Comments
 (0)