Skip to content

Commit 33f0789

Browse files
bug fixes
1 parent 1a46bb0 commit 33f0789

File tree

9 files changed

+18
-15
lines changed

9 files changed

+18
-15
lines changed

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/GreyBoxFuzzer.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class GreyBoxFuzzer(
6363
var regenerateThis = false
6464
val thisInstancesHistory = ArrayDeque<ThisInstance>()
6565
val startTime = System.currentTimeMillis()
66-
val endTime = startTime + timeBudgetInMillis / percentageOfTimeBudgetToChangeMode
66+
val endTime = startTime + timeBudgetInMillis / (100L / percentageOfTimeBudgetToChangeMode)
6767
var iterationNumber = 0
6868
while (System.currentTimeMillis() < endTime) {
6969
try {
@@ -160,7 +160,7 @@ class GreyBoxFuzzer(
160160
if (seeds == null || seeds!!.seedsSize() == 0) return
161161
if (seeds!!.all { it.parameters.isEmpty() }) return
162162
val startTime = System.currentTimeMillis()
163-
val endTime = startTime + timeBudgetInMillis / percentageOfTimeBudgetToChangeMode
163+
val endTime = startTime + timeBudgetInMillis / (100L / percentageOfTimeBudgetToChangeMode)
164164
var iterationNumber = 0
165165
while (System.currentTimeMillis() < endTime) {
166166
if (timeRemain < 0 || isMethodCovered()) return

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/generator/GeneratorConfigurator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ object GeneratorConfigurator {
2727
private val maxDouble: Double = 100.0
2828
private val minStringLength: Int = 1
2929
private val maxStringLength: Int = 5
30-
val minCollectionSize: Int = 1
30+
val minCollectionSize: Int = 0
3131
val maxCollectionSize: Int = 5
3232

3333
val sizeAnnotationInstance: Size

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/generator/QuickCheckExtensions.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import org.utbot.engine.greyboxfuzzer.quickcheck.generator.GeneratorContext
1515
import org.utbot.engine.greyboxfuzzer.quickcheck.internal.FakeAnnotatedTypeFactory
1616
import org.utbot.engine.greyboxfuzzer.quickcheck.internal.ParameterTypeContext
1717
import org.utbot.engine.greyboxfuzzer.quickcheck.internal.generator.ArrayGenerator
18+
import org.utbot.engine.greyboxfuzzer.quickcheck.internal.generator.CompositeGenerator
1819
import org.utbot.engine.greyboxfuzzer.quickcheck.internal.generator.GeneratorRepository
1920
import ru.vyarus.java.generics.resolver.GenericsResolver
2021
import ru.vyarus.java.generics.resolver.context.ConstructorGenericsContext
@@ -41,6 +42,7 @@ fun Generator.getComponents(): List<Generator> =
4142
when (this) {
4243
is org.utbot.engine.greyboxfuzzer.quickcheck.generator.ComponentizedGenerator -> this.componentGenerators()
4344
is ArrayGenerator -> listOf(this.component)
45+
is CompositeGenerator -> this.composed.map { it.item }
4446
else -> emptyList()
4547
}
4648

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/mutator/SeedCollector.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package org.utbot.engine.greyboxfuzzer.mutator
22

33
import kotlin.random.Random
44

5-
class SeedCollector(private val maxSize: Int = 50, private val methodInstructionsIds: Set<Long>) {
5+
class SeedCollector(private val maxSize: Int = 100, private val methodInstructionsIds: Set<Long>) {
66
private val seeds = ArrayList<Seed>(maxSize)
77

88
fun calcSeedScore(coverage: Set<Long>): Double =

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/quickcheck/generator/ComponentizedGenerator.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import java.util.Collections
1616
* @param type class token for type of property parameter this generator
1717
* is applicable to
1818
</T> */
19-
abstract class ComponentizedGenerator constructor(type: Class<*>) : org.utbot.engine.greyboxfuzzer.quickcheck.generator.Generator(type) {
20-
private val components: MutableList<org.utbot.engine.greyboxfuzzer.quickcheck.generator.Generator> = ArrayList()
19+
abstract class ComponentizedGenerator constructor(type: Class<*>) : Generator(type) {
20+
private val components: MutableList<Generator> = ArrayList()
2121

2222
/**
2323
* {@inheritDoc}
@@ -35,7 +35,7 @@ abstract class ComponentizedGenerator constructor(type: Class<*>) : org.utbot.en
3535
}
3636

3737
override fun addComponentGenerators(
38-
newComponents: List<org.utbot.engine.greyboxfuzzer.quickcheck.generator.Generator>
38+
newComponents: List<Generator>
3939
) {
4040
require(newComponents.size == numberOfNeededComponents()) {
4141
String.format(
@@ -89,12 +89,12 @@ abstract class ComponentizedGenerator constructor(type: Class<*>) : org.utbot.en
8989
/**
9090
* @return this generator's component generators
9191
*/
92-
fun componentGenerators(): List<org.utbot.engine.greyboxfuzzer.quickcheck.generator.Generator> {
92+
fun componentGenerators(): List<Generator> {
9393
return Collections.unmodifiableList(components)
9494
}
9595

96-
override fun copy(): org.utbot.engine.greyboxfuzzer.quickcheck.generator.Generator {
97-
return (super.copy() as org.utbot.engine.greyboxfuzzer.quickcheck.generator.ComponentizedGenerator).also {
96+
override fun copy(): Generator {
97+
return (super.copy() as ComponentizedGenerator).also {
9898
it.components.addAll(components.map { it.copy() })
9999
}
100100
}

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/quickcheck/generator/Generator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ abstract class Generator protected constructor(types: List<Class<*>>) : Gen {
4040
return when (generationState) {
4141
GenerationState.REGENERATE -> {
4242
val possibleConstant =
43-
if (Random.getTrue(20)) {
43+
if (Random.getTrue(25)) {
4444
getConstant()
4545
} else null
4646
(possibleConstant ?: generate(random, status)).also {

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/quickcheck/generator/java/util/CollectionGenerator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import org.utbot.engine.greyboxfuzzer.quickcheck.random.SourceOfRandomness
2222
*
2323
* @param <T> the type of collection generated
2424
</T> */
25-
abstract class CollectionGenerator(type: Class<*>) : org.utbot.engine.greyboxfuzzer.quickcheck.generator.ComponentizedGenerator(type) {
25+
abstract class CollectionGenerator(type: Class<*>) : ComponentizedGenerator(type) {
2626
private var sizeRange: Size? = null
2727
private var distinct = false
2828

utbot-framework/src/main/kotlin/org/utbot/engine/greyboxfuzzer/quickcheck/internal/generator/CompositeGenerator.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import java.lang.reflect.AnnotatedElement
1212
import java.lang.reflect.AnnotatedType
1313

1414
class CompositeGenerator(composed: List<Weighted<Generator>>) : Generator(Any::class.java) {
15-
private val composed: MutableList<Weighted<Generator>>
15+
val composed: MutableList<Weighted<Generator>>
1616
private var previousChosenGenerator: Generator? = null
1717

1818
init {
@@ -122,10 +122,11 @@ class CompositeGenerator(composed: List<Weighted<Generator>>) : Generator(Any::c
122122

123123
override fun copy(): Generator {
124124
val composedCopies = composed.map { Weighted(it.item.copy(), it.weight) }.toMutableList()
125-
val gen = Reflection.instantiate(CompositeGenerator::class.java.constructors.first(), composedCopies) as Generator
125+
val gen = Reflection.instantiate(CompositeGenerator::class.java.constructors.first(), composedCopies) as CompositeGenerator
126126
return gen.also {
127127
it.generatedUtModel = generatedUtModel
128128
it.generationState = generationState
129+
it.generatorContext = generatorContext
129130
it.nestedGenerators = nestedGenerators.map { it.copy() }.toMutableList()
130131
GeneratorConfigurator.configureGenerator(it, 100)
131132
}

utbot-framework/src/main/kotlin/org/utbot/external/api/UtBotJavaApi.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ object UtBotJavaApi {
183183
generationTimeoutInMillis,
184184
generate = { symbolicEngine ->
185185
if (isGreyBoxFuzzing) {
186-
symbolicEngine.greyBoxFuzzing()
186+
symbolicEngine.greyBoxFuzzing(generationTimeoutInMillis)
187187
} else {
188188
symbolicEngine.fuzzing { defaultModelProvider ->
189189
customModelProvider.withFallback(defaultModelProvider)

0 commit comments

Comments
 (0)