Skip to content

Commit 00797a7

Browse files
Rd-gen (#748)
* [instrumentation-rd] 1. switched from Protocol.Command to rd generated model 2. added utbot-rd project featuring LifetimedProcess, ProcessWithRdServer and minor rd-related utility classes 3. Switched from message-driven ConcreteExecutor to callback rd model, featuring UtInstrumentationProcess * Add utbot-rd to pipeline Co-authored-by: Victoria <32179813+victoriafomina@users.noreply.github.com>
1 parent b808306 commit 00797a7

File tree

38 files changed

+2030
-611
lines changed

38 files changed

+2030
-611
lines changed

.github/workflows/build-and-run-tests-from-branch.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ jobs:
109109
# The option forces to execute all jobs even though some of them have failed.
110110
fail-fast: false
111111
matrix:
112-
project: [utbot-api, utbot-cli, utbot-core, utbot-framework-api, utbot-fuzzers, utbot-gradle, utbot-instrumentation, utbot-instrumentation-tests, utbot-intellij, utbot-junit-contest, utbot-sample, utbot-summary, utbot-summary-tests]
112+
project: [utbot-api, utbot-cli, utbot-core, utbot-framework-api, utbot-fuzzers, utbot-gradle, utbot-instrumentation, utbot-instrumentation-tests, utbot-intellij, utbot-junit-contest, utbot-rd, utbot-sample, utbot-summary, utbot-summary-tests]
113113
runs-on: ubuntu-20.04
114114
container: unittestbot/java-env:java11-zulu-jdk-gradle7.4.2-kotlinc1.7.0
115115
steps:

settings.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
pluginManagement {
2+
resolutionStrategy {
3+
eachPlugin {
4+
if (requested.id.name == "rdgen") {
5+
useModule("com.jetbrains.rd:rd-gen:${requested.version}")
6+
}
7+
}
8+
}
9+
}
10+
111
rootProject.name = 'utbot'
212

313
include 'utbot-core'
@@ -17,4 +27,5 @@ include 'utbot-summary'
1727
include 'utbot-gradle'
1828
//include 'utbot-maven'
1929
include 'utbot-summary-tests'
30+
include 'utbot-rd'
2031

utbot-analytics/build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,4 +82,5 @@ jar {
8282
}
8383

8484
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
85+
zip64 = true
8586
}

utbot-core/src/main/kotlin/org/utbot/common/ProcessUtil.kt

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

utbot-framework-api/src/main/kotlin/org/utbot/framework/plugin/api/UtExecutionResult.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,13 @@ class ConcreteExecutionFailureException(cause: Throwable, errorFile: File, val p
5252
appendLine("----------------------------------------")
5353
appendLine("The child process is dead")
5454
appendLine("Cause:\n${cause.message}")
55-
appendLine("Last 20 lines of the error log ${errorFile.absolutePath}:")
55+
appendLine("Last 1000 lines of the error log ${errorFile.absolutePath}:")
5656
appendLine("----------------------------------------")
5757
errorFile.useLines { lines ->
5858
val lastLines = LinkedList<String>()
5959
for (line in lines) {
6060
lastLines.add(line)
61-
if (lastLines.size > 20) {
61+
if (lastLines.size > 1000) {
6262
lastLines.removeFirst()
6363
}
6464
}

utbot-framework/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ dependencies {
2020
//implementation 'junit:junit:4.13.1'
2121
api project(':utbot-framework-api')
2222

23+
implementation group: 'com.jetbrains.rd', name: 'rd-framework', version: '2022.3.1'
24+
implementation group: 'com.jetbrains.rd', name: 'rd-core', version: '2022.3.1'
25+
2326
implementation "com.github.UnitTestBot:soot:${soot_commit_hash}"
2427

2528
implementation group: 'com.fasterxml.jackson.module', name: 'jackson-module-kotlin', version: jackson_version

utbot-framework/src/main/kotlin/org/utbot/framework/plugin/api/TestCaseGenerator.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import kotlinx.coroutines.GlobalScope
55
import kotlinx.coroutines.cancel
66
import kotlinx.coroutines.flow.Flow
77
import kotlinx.coroutines.flow.catch
8-
import kotlinx.coroutines.flow.collect
98
import kotlinx.coroutines.isActive
109
import kotlinx.coroutines.launch
1110
import kotlinx.coroutines.runBlocking
@@ -39,6 +38,7 @@ import org.utbot.framework.util.jimpleBody
3938
import org.utbot.framework.util.runSoot
4039
import org.utbot.framework.util.toModel
4140
import org.utbot.instrumentation.ConcreteExecutor
41+
import org.utbot.instrumentation.warmup
4242
import org.utbot.instrumentation.warmup.Warmup
4343
import java.io.File
4444
import java.nio.file.Path

utbot-instrumentation-tests/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ dependencies {
1414
testImplementation configurations.fetchInstrumentationJar
1515
testImplementation project(':utbot-sample')
1616
testImplementation group: 'org.jacoco', name: 'org.jacoco.report', version: jacoco_version
17+
implementation group: 'com.jetbrains.rd', name: 'rd-framework', version: '2022.3.1'
18+
implementation group: 'com.jetbrains.rd', name: 'rd-core', version: '2022.3.1'
1719
}
1820

1921
processResources {

utbot-instrumentation-tests/src/test/kotlin/org/utbot/examples/TestCoverageInstrumentation.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.utbot.examples
22

3+
import com.jetbrains.rd.util.reactive.RdFault
34
import org.utbot.examples.samples.ExampleClass
45
import org.utbot.examples.statics.substitution.StaticSubstitution
56
import org.utbot.examples.statics.substitution.StaticSubstitutionExamples
@@ -74,9 +75,10 @@ class TestCoverageInstrumentation {
7475
}
7576

7677
assertInstanceOf(
77-
IllegalArgumentException::class.java,
78+
RdFault::class.java,
7879
exc.cause!!
7980
)
81+
assertTrue((exc.cause as RdFault).reasonTypeFqn == "IllegalArgumentException")
8082
}
8183
}
8284

@@ -96,9 +98,10 @@ class TestCoverageInstrumentation {
9698
}
9799

98100
assertInstanceOf(
99-
IllegalArgumentException::class.java,
101+
RdFault::class.java,
100102
exc.cause!!
101103
)
104+
assertTrue((exc.cause as RdFault).reasonTypeFqn == "IllegalArgumentException")
102105

103106
it.execute(ExampleClass::bar, arrayOf(testObject, 2))
104107
val coverageInfo1 = it.collectCoverage(ExampleClass::class.java)

utbot-instrumentation-tests/src/test/kotlin/org/utbot/examples/TestInvokeInstrumentation.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.utbot.examples
22

3+
import com.jetbrains.rd.util.reactive.RdFault
34
import org.utbot.examples.samples.ClassWithSameMethodNames
45
import org.utbot.examples.samples.ExampleClass
56
import org.utbot.examples.samples.staticenvironment.StaticExampleClass
@@ -46,9 +47,10 @@ class TestInvokeInstrumentation {
4647
)
4748
}
4849
assertInstanceOf(
49-
IllegalArgumentException::class.java,
50+
RdFault::class.java,
5051
exc.cause!!
5152
)
53+
assertTrue((exc.cause as RdFault).reasonTypeFqn == "IllegalArgumentException")
5254
}
5355
}
5456

utbot-instrumentation-tests/src/test/kotlin/org/utbot/examples/TestIsolated.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.utbot.examples
22

3+
import com.jetbrains.rd.util.reactive.RdFault
34
import org.utbot.examples.samples.ExampleClass
45
import org.utbot.examples.samples.staticenvironment.StaticExampleClass
56
import org.utbot.instrumentation.ConcreteExecutor
@@ -52,9 +53,10 @@ class TestIsolated {
5253
}
5354

5455
assertInstanceOf(
55-
IllegalArgumentException::class.java,
56+
RdFault::class.java,
5657
exc.cause!!
5758
)
59+
assertTrue((exc.cause as RdFault).reasonTypeFqn == "IllegalArgumentException")
5860
}
5961
}
6062

utbot-instrumentation/build.gradle

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ apply from: "${parent.projectDir}/gradle/include/jvm-project.gradle"
22

33
dependencies {
44
api project(':utbot-framework-api')
5+
implementation project(':utbot-rd')
56

67
implementation group: 'org.ow2.asm', name: 'asm', version: asm_version
78
implementation group: 'org.ow2.asm', name: 'asm-commons', version: asm_version
@@ -10,6 +11,10 @@ dependencies {
1011
implementation group: 'de.javakaffee', name: 'kryo-serializers', version: kryo_serializers_version
1112
implementation group: 'io.github.microutils', name: 'kotlin-logging', version: kotlin_logging_version
1213

14+
implementation group: 'com.jetbrains.rd', name: 'rd-framework', version: '2022.3.1'
15+
implementation group: 'com.jetbrains.rd', name: 'rd-core', version: '2022.3.1'
16+
17+
1318
// TODO: this is necessary for inline classes mocking in UtExecutionInstrumentation
1419
implementation group: 'org.mockito', name: 'mockito-core', version: '4.2.0'
1520
implementation group: 'org.mockito', name: 'mockito-inline', version: '4.2.0'
@@ -41,4 +46,4 @@ configurations {
4146

4247
artifacts {
4348
instrumentationArchive jar
44-
}
49+
}

0 commit comments

Comments
 (0)