Skip to content

Commit 9eab80d

Browse files
Abduqodiri Qurbonzodaqurbonzoda
authored andcommitted
Extract reporting setup to a separate function
1 parent 7160a8f commit 9eab80d

File tree

4 files changed

+26
-30
lines changed

4 files changed

+26
-30
lines changed

plugin/main/src/kotlinx/benchmark/gradle/JsNodeTasks.kt

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,16 @@ fun Project.createJsBenchmarkExecTask(
1717

1818
group = BenchmarksPlugin.BENCHMARKS_TASK_GROUP
1919
description = "Executes benchmark for '${target.name}'"
20-
extensions.extraProperties.set("idea.internal.test", project.getSystemProperty("idea.active"))
21-
22-
val reportsDir = benchmarkReportsDir(config, target)
23-
val reportFile = reportsDir.resolve("${target.name}.${config.reportFileExt()}")
2420

2521
val executableFile = compilation.compileKotlinTask.outputFile
2622
args("-r", "source-map-support/register")
2723
args(executableFile.absolutePath)
2824
workingDir = compilation.npmProject.dir
2925

3026
onlyIf { executableFile.exists() }
31-
32-
33-
doFirst {
34-
val ideaActive = (extensions.extraProperties.get("idea.internal.test") as? String)?.toBoolean() ?: false
35-
args(writeParameters(target.name, reportFile, if (ideaActive) "xml" else "text", config))
36-
reportsDir.mkdirs()
37-
logger.lifecycle("Running '${config.name}' benchmarks for '${target.name}'")
38-
}
27+
28+
val reportFile = setupReporting(target, config)
29+
args(writeParameters(target.name, reportFile, traceFormat(), config))
3930
}
4031

4132
tasks.getByName(config.prefixName(RUN_BENCHMARKS_TASKNAME)).dependsOn(task)

plugin/main/src/kotlinx/benchmark/gradle/JvmTasks.kt

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,11 +95,8 @@ fun Project.createJvmBenchmarkExecTask(
9595
) {
9696
group = BenchmarksPlugin.BENCHMARKS_TASK_GROUP
9797
description = "Execute benchmark for '${target.name}'"
98-
extensions.extraProperties.set("idea.internal.test", project.getSystemProperty("idea.active"))
9998

10099
val benchmarkBuildDir = benchmarkBuildDir(target)
101-
val reportsDir = benchmarkReportsDir(config, target)
102-
val reportFile = reportsDir.resolve("${target.name}.${config.reportFileExt()}")
103100
main = "kotlinx.benchmark.jvm.JvmBenchmarkRunnerKt"
104101

105102
if (target.workingDir != null)
@@ -113,11 +110,8 @@ fun Project.createJvmBenchmarkExecTask(
113110

114111

115112
dependsOn("${target.name}${BenchmarksPlugin.BENCHMARK_COMPILE_SUFFIX}")
116-
doFirst {
117-
val ideaActive = (extensions.extraProperties.get("idea.internal.test") as? String)?.toBoolean() ?: false
118-
args(writeParameters(target.name, reportFile, if (ideaActive) "xml" else "text", config))
119-
reportsDir.mkdirs()
120-
logger.lifecycle("Running '${config.name}' benchmarks for '${target.name}'")
121-
}
113+
114+
val reportFile = setupReporting(target, config)
115+
args(writeParameters(target.name, reportFile, traceFormat(), config))
122116
}
123117
}

plugin/main/src/kotlinx/benchmark/gradle/NativeMultiplatformTasks.kt

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,12 @@ fun Project.createNativeBenchmarkExecTask(
108108
) {
109109
group = BenchmarksPlugin.BENCHMARKS_TASK_GROUP
110110
description = "Executes benchmark for '${target.name}'"
111-
extensions.extraProperties.set("idea.internal.test", project.getSystemProperty("idea.active"))
112111

113112
val binary =
114113
benchmarkCompilation.target.binaries.getExecutable(benchmarkCompilation.name, NativeBuildType.RELEASE)
115114
val linkTask = binary.linkTask
116115
onlyIf { linkTask.enabled }
117116

118-
val reportsDir = benchmarkReportsDir(config, target)
119-
reportFile = reportsDir.resolve("${target.name}.${config.reportFileExt()}")
120-
121117
val executableFile = linkTask.outputFile.get()
122118
executable = executableFile.absolutePath
123119
this.config = config
@@ -126,14 +122,13 @@ fun Project.createNativeBenchmarkExecTask(
126122
onlyIf { executableFile.exists() }
127123
benchsDescriptionDir = file(project.buildDir.resolve(target.extension.benchsDescriptionDir).resolve(config.name))
128124

129-
val ideaActive = (extensions.extraProperties.get("idea.internal.test") as? String)?.toBoolean() ?: false
130-
configFile = writeParameters(target.name, reportFile, if (ideaActive) "xml" else "text", config)
131-
132125
dependsOn(linkTask)
126+
127+
reportFile = setupReporting(target, config)
128+
configFile = writeParameters(target.name, reportFile, traceFormat(), config)
129+
133130
doFirst {
134-
reportsDir.mkdirs()
135131
benchsDescriptionDir.mkdirs()
136-
logger.lifecycle("Running '${config.name}' benchmarks for '${target.name}'")
137132
}
138133
}
139134
}

plugin/main/src/kotlinx/benchmark/gradle/Utils.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,22 @@ fun <T> Any.tryGetClass(className: String): Class<T>? {
7575
}
7676
}
7777

78+
fun Task.setupReporting(target: BenchmarkTarget, config: BenchmarkConfiguration): File {
79+
extensions.extraProperties.set("idea.internal.test", project.getSystemProperty("idea.active"))
80+
val reportsDir = project.benchmarkReportsDir(config, target)
81+
val reportFile = reportsDir.resolve("${target.name}.${config.reportFileExt()}")
82+
doFirst {
83+
reportsDir.mkdirs()
84+
logger.lifecycle("Running '${config.name}' benchmarks for '${target.name}'")
85+
}
86+
return reportFile
87+
}
88+
89+
fun Task.traceFormat(): String {
90+
val ideaActive = project.getSystemProperty("idea.active").toBoolean()
91+
return if (ideaActive) "xml" else "text"
92+
}
93+
7894
fun writeParameters(
7995
name: String,
8096
reportFile: File,

0 commit comments

Comments
 (0)