Skip to content

Commit e1db53a

Browse files
SaloedDaniilStepanov
authored andcommitted
rewrite quickcheck on Kotlin
1 parent a70ed6c commit e1db53a

File tree

134 files changed

+4465
-6153
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+4465
-6153
lines changed

utbot-framework/src/main/java/org/utbot/quickcheck/internal/Comparables.java

Lines changed: 0 additions & 25 deletions
This file was deleted.

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ object DataGenerator {
4646
}
4747

4848
fun generate(
49-
generator: Generator<*>?,
49+
generator: Generator?,
5050
parameter: Parameter,
5151
random: SourceOfRandomness,
5252
status: GenerationStatus,

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ data class FField(
1111
val field: Field?,
1212
val value: Any?,
1313
val resolvedType: Type,
14-
val generator: Generator<*>?,
14+
val generator: Generator?,
1515
val classId: ClassId,
1616
val subFields: List<FField>,
1717
var isBlocked: Boolean,
@@ -21,7 +21,7 @@ data class FField(
2121
field: Field?,
2222
value: Any?,
2323
resolvedType: Type,
24-
generator: Generator<*>?,
24+
generator: Generator?,
2525
subFields: List<FField>,
2626
isBlocked: Boolean
2727
) : this(
@@ -38,7 +38,7 @@ data class FField(
3838
field: Field?,
3939
value: Any?,
4040
resolvedType: Type,
41-
generator: Generator<*>?,
41+
generator: Generator?,
4242
subFields: List<FField>,
4343
) : this(
4444
field,
@@ -54,7 +54,7 @@ data class FField(
5454
field: Field?,
5555
value: Any?,
5656
resolvedType: Type,
57-
generator: Generator<*>?,
57+
generator: Generator?,
5858
) : this(
5959
field,
6060
value,

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ data class FParameter(
1515
val parameter: Parameter,
1616
val value: Any?,
1717
var utModel: UtModel,
18-
val generator: Generator<*>?,
18+
val generator: Generator?,
1919
val classId: ClassId,
2020
val fields: List<FField>
2121
) {
@@ -24,14 +24,14 @@ data class FParameter(
2424
parameter: Parameter,
2525
value: Any?,
2626
utModel: UtModel,
27-
generator: Generator<*>?
27+
generator: Generator?
2828
) : this(parameter, value, utModel, generator, classIdForType(parameter.type), emptyList())
2929

3030
constructor(
3131
parameter: Parameter,
3232
value: Any?,
3333
utModel: UtModel,
34-
generator: Generator<*>?,
34+
generator: Generator?,
3535
fields: List<FField>
3636
) : this(parameter, value, utModel, generator, classIdForType(parameter.type), fields)
3737

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import org.utbot.quickcheck.generator.java.util.CollectionGenerator
77
import org.utbot.quickcheck.generator.java.util.MapGenerator
88
import org.utbot.quickcheck.internal.generator.ArrayGenerator
99
import org.utbot.engine.greyboxfuzzer.util.getTrue
10-
import org.utbot.engine.greyboxfuzzer.util.setFieldValue
1110
import org.utbot.quickcheck.generator.java.lang.*
1211
import kotlin.random.Random
1312

@@ -66,13 +65,13 @@ object GeneratorConfigurator {
6665
inRangeAnnotationInstance = InRange::class.constructors.first().callBy(inRangeAnnotationParams)
6766
}
6867

69-
fun configureGenerator(generator: Generator<*>, prob: Int) {
68+
fun configureGenerator(generator: Generator, prob: Int) {
7069
(listOf(generator) + generator.getAllComponents()).forEach {
7170
if (Random.getTrue(prob)) handleGenerator(it)
7271
}
7372
}
7473

75-
private fun handleGenerator(generator: Generator<*>) =
74+
private fun handleGenerator(generator: Generator) =
7675
when (generator) {
7776
is IntegerGenerator -> generator.configure(inRangeAnnotationInstance)
7877
is ByteGenerator -> generator.configure(inRangeAnnotationInstance)
@@ -88,7 +87,7 @@ object GeneratorConfigurator {
8887
is PrimitiveFloatGenerator -> generator.configure(inRangeAnnotationInstance)
8988
is PrimitiveDoubleGenerator -> generator.configure(inRangeAnnotationInstance)
9089
is PrimitiveLongGenerator -> generator.configure(inRangeAnnotationInstance)
91-
is CollectionGenerator<*> -> generator.configure(sizeAnnotationInstance)
90+
is CollectionGenerator -> generator.configure(sizeAnnotationInstance)
9291
is ArrayGenerator -> generator.configure(sizeAnnotationInstance)
9392
is MapGenerator -> generator.configure(sizeAnnotationInstance)
9493
else -> Unit

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ import ru.vyarus.java.generics.resolver.context.MethodGenericsContext
2525
import java.lang.reflect.*
2626

2727

28-
fun Generator<*>.getAllComponents(): List<Generator<*>> {
29-
val queue = ArrayDeque<Generator<*>>()
30-
val res = mutableListOf<Generator<*>>()
28+
fun Generator.getAllComponents(): List<Generator> {
29+
val queue = ArrayDeque<Generator>()
30+
val res = mutableListOf<Generator>()
3131
this.getComponents().forEach { queue.add(it) }
3232
while (queue.isNotEmpty()) {
3333
val comp = queue.removeFirst()
@@ -37,9 +37,9 @@ fun Generator<*>.getAllComponents(): List<Generator<*>> {
3737
return res
3838
}
3939

40-
fun Generator<*>.getComponents(): List<Generator<*>> =
40+
fun Generator.getComponents(): List<Generator> =
4141
when (this) {
42-
is ComponentizedGenerator<*> -> this.componentGenerators()
42+
is ComponentizedGenerator -> this.componentGenerators()
4343
is ArrayGenerator -> listOf(this.component)
4444
else -> emptyList()
4545
}
@@ -58,19 +58,19 @@ fun GeneratorRepository.produceUserClassGenerator(
5858
return userClassGenerator
5959
}
6060

61-
fun GeneratorRepository.getOrProduceGenerator(field: Field, depth: Int = 0): Generator<*>? =
61+
fun GeneratorRepository.getOrProduceGenerator(field: Field, depth: Int = 0): Generator? =
6262
getOrProduceGenerator(ParameterTypeContext.forField(field), depth)
6363

64-
fun GeneratorRepository.getOrProduceGenerator(param: Parameter, parameterIndex: Int, depth: Int = 0): Generator<*>? =
64+
fun GeneratorRepository.getOrProduceGenerator(param: Parameter, parameterIndex: Int, depth: Int = 0): Generator? =
6565
getOrProduceGenerator(param.createParameterTypeContext(parameterIndex), depth)
6666

67-
fun GeneratorRepository.getOrProduceGenerator(clazz: Class<*>, depth: Int = 0): Generator<*>? =
67+
fun GeneratorRepository.getOrProduceGenerator(clazz: Class<*>, depth: Int = 0): Generator? =
6868
getOrProduceGenerator(clazz.createParameterTypeContext(), depth)
6969

7070
fun GeneratorRepository.getOrProduceGenerator(
7171
parameterTypeContext: ParameterTypeContext,
7272
depth: Int
73-
): Generator<*>? {
73+
): Generator? {
7474
val producedUserClassesGenerators = mutableListOf<UserClassGenerator>()
7575
parameterTypeContext.getAllSubParameterTypeContexts(GreyBoxFuzzerGenerators.sourceOfRandomness).reversed()
7676
.forEach { typeContext ->

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,22 @@ import org.utbot.quickcheck.internal.generator.GeneratorRepository
66
import org.utbot.quickcheck.internal.generator.LambdaGenerator
77
import org.utbot.quickcheck.internal.generator.MarkerInterfaceGenerator
88
import org.utbot.quickcheck.random.SourceOfRandomness
9-
import org.utbot.engine.greyboxfuzzer.util.toClass
109
import org.utbot.engine.logger
10+
import org.utbot.quickcheck.internal.Zilch
1111

1212
class UTGeneratorRepository(random: SourceOfRandomness) : GeneratorRepository(random) {
1313

14-
override fun generatorFor(parameter: ParameterTypeContext): Generator<*>? {
14+
override fun generatorFor(parameter: ParameterTypeContext): Generator {
1515
logger.debug { "TRYING TO GET GENERATOR FOR ${parameter.resolved}" }
16-
if (parameter.resolved.name == "org.utbot.quickcheck.internal.Zilch") return null
16+
if (parameter.resolved.name == Zilch::class.java.name) return TODO("null")
1717
val generator = super.generatorFor(parameter)
18-
if (generator is MarkerInterfaceGenerator<*>) {
18+
if (generator is MarkerInterfaceGenerator) {
1919
throw IllegalArgumentException(
2020
"Cannot find generator for " + parameter.name()
2121
+ " of type " + parameter.type().typeName
2222
)
23-
} else if (generator is LambdaGenerator<*, *>) {
24-
return null
23+
} else if (generator is LambdaGenerator<*>) {
24+
return TODO("null")
2525
}
2626
return generator
2727
}

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

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

33
import org.utbot.quickcheck.generator.java.util.SetGenerator
44

5-
class HashSetGenerator: SetGenerator<HashSet<*>>(HashSet::class.java)
5+
class HashSetGenerator: SetGenerator(HashSet::class.java)

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

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,22 @@ import org.utbot.framework.plugin.api.UtNullModel
1717
import org.utbot.framework.plugin.api.util.id
1818
import java.lang.reflect.*
1919

20-
class UserClassGenerator : ComponentizedGenerator<Any>(Any::class.java) {
20+
class UserClassGenerator : ComponentizedGenerator(Any::class.java) {
2121

2222
var clazz: Class<*>? = null
2323
var parameterTypeContext: ParameterTypeContext? = null
2424
var depth = 0
2525
var generationMethod = GenerationMethod.ANY
2626

27-
override fun copy(): Generator<Any> {
27+
override fun copy(): Generator {
2828
return UserClassGenerator().also {
2929
it.clazz = clazz
3030
it.depth = depth
3131
it.parameterTypeContext = parameterTypeContext
3232
}
3333
}
3434

35-
override fun canGenerateForParametersOfTypes(typeParameters: MutableList<TypeParameter<*>>?): Boolean {
35+
override fun canGenerateForParametersOfTypes(typeParameters: List<TypeParameter<*>>): Boolean {
3636
return true
3737
}
3838

@@ -45,15 +45,12 @@ class UserClassGenerator : ComponentizedGenerator<Any>(Any::class.java) {
4545
return generate(random, status)
4646
}
4747

48-
override fun generate(random: SourceOfRandomness, status: GenerationStatus): UtModel? {
48+
override fun generate(random: SourceOfRandomness, status: GenerationStatus): UtModel {
4949
logger.debug { "Trying to generate ${parameterTypeContext!!.resolved}. Current depth depth: $depth" }
50-
if (depth >= GreyBoxFuzzerGenerators.maxDepthOfGeneration) return UtNullModel(clazz!!.id)
50+
if (depth >= GreyBoxFuzzerGenerators.maxDepthOfGeneration) return TODO("null")
5151
val immutableClazz = clazz!!
52-
when (immutableClazz) {
53-
Any::class.java -> return ObjectGenerator(parameterTypeContext!!, random, status).generate()
54-
Class::class.java -> return ReflectionClassGenerator(parameterTypeContext!!).generate()
55-
Type::class.java -> return ReflectionTypeGenerator(parameterTypeContext!!).generate()
56-
}
52+
if (immutableClazz == Any::class.java) return ObjectGenerator(random, status).generate()
53+
if (immutableClazz == Class::class.java) return ReflectionClassGenerator(parameterTypeContext!!).generate()
5754
//TODO! generate inner classes instances
5855
if (immutableClazz.declaringClass != null && !immutableClazz.hasModifiers(Modifier.STATIC)) {
5956
return UtNullModel(immutableClazz.id)

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ class ClassesInstanceGenerator(
1616
private val genStatus: GenerationStatus,
1717
private val depth: Int
1818
): InstanceGenerator {
19-
override fun generate(): UtModel? {
19+
override fun generate(): UtModel {
2020
val typeOfGenerations = when (generationMethod) {
2121
GenerationMethod.CONSTRUCTOR -> mutableListOf('c')
2222
GenerationMethod.STATIC -> mutableListOf('s')
2323
else -> mutableListOf('c', 'c', 's')
2424
}
2525
while (typeOfGenerations.isNotEmpty()) {
26-
val randomTypeOfGeneration = typeOfGenerations.randomOrNull() ?: return null
26+
val randomTypeOfGeneration = typeOfGenerations.randomOrNull() ?: return TODO("null")
2727
logger.debug { "Type of generation: $randomTypeOfGeneration" }
2828
val generatedInstance =
2929
when (randomTypeOfGeneration) {
@@ -50,6 +50,6 @@ class ClassesInstanceGenerator(
5050
return generatedInstance
5151
}
5252
}
53-
return null
53+
return TODO("null")
5454
}
5555
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ class ConstructorBasedInstanceGenerator(
2222
private val depth: Int
2323
): InstanceGenerator {
2424

25-
override fun generate(): UtModel? {
26-
val constructor = chooseRandomConstructor(clazz) ?: return null
25+
override fun generate(): UtModel {
26+
val constructor = chooseRandomConstructor(clazz) ?: return TODO("null")
2727
val resolvedConstructor =
2828
//In case if we can not resolve constructor
2929
gctx.constructor(constructor).let {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@ package org.utbot.engine.greyboxfuzzer.generator.userclasses.generator
33
import org.utbot.framework.plugin.api.UtModel
44

55
interface InstanceGenerator {
6-
fun generate(): UtModel?
6+
fun generate(): UtModel
77
}

0 commit comments

Comments
 (0)