@@ -36,6 +36,10 @@ import java.util.function.IntSupplier
36
36
class ObjectModelProvider : ModelProvider {
37
37
38
38
var modelProvider: ModelProvider
39
+ var limitValuesCreatedByFieldAccessors: Int = 100
40
+ set(value) {
41
+ field = maxOf(0 , value)
42
+ }
39
43
40
44
private val idGenerator: IntSupplier
41
45
private val recursion: Int
@@ -100,6 +104,7 @@ class ObjectModelProvider : ModelProvider {
100
104
}
101
105
102
106
private fun generateModelsWithFieldsInitialization (constructorId : ConstructorId , description : FuzzedMethodDescription , concreteValues : Collection <FuzzedConcreteValue >): Sequence <FuzzedValue > {
107
+ if (limitValuesCreatedByFieldAccessors == 0 ) return emptySequence()
103
108
val fields = findSuitableFields(constructorId.classId, description)
104
109
val syntheticClassFieldsSetterMethodDescription = FuzzedMethodDescription (
105
110
" ${constructorId.classId.simpleName} <syntheticClassFieldSetter>" ,
@@ -109,6 +114,7 @@ class ObjectModelProvider : ModelProvider {
109
114
)
110
115
111
116
return fuzz(syntheticClassFieldsSetterMethodDescription, nonRecursiveModelProvider)
117
+ .take(limitValuesCreatedByFieldAccessors) // limit the number of fuzzed values in this particular case
112
118
.map { fieldValues ->
113
119
val fuzzedModel = assembleModel(idGenerator.asInt, constructorId, emptyList())
114
120
val assembleModel = fuzzedModel.model as ? UtAssembleModel ? : error(" Expected UtAssembleModel but ${fuzzedModel.model::class .java} found" )
0 commit comments