-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathbuild.gradle.kts
More file actions
84 lines (74 loc) · 2.2 KB
/
build.gradle.kts
File metadata and controls
84 lines (74 loc) · 2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
plugins {
convention.kotlin
convention.`multiplatform-jvm`
alias(libs.plugins.kotlin.benchmark)
alias(libs.plugins.kotlin.allopen)
}
allOpen {
annotation("org.openjdk.jmh.annotations.State")
}
kotlin {
jvm()
macosArm64()
iosX64()
iosArm64()
iosSimulatorArm64()
linuxX64()
mingwX64()
applyDefaultHierarchyTemplate()
sourceSets {
commonMain {
dependencies {
implementation(projects.jsonSchemaValidator)
implementation(libs.kotlin.benchmark)
implementation(libs.okio.common)
implementation(libs.kotlin.serialization.json.okio)
}
}
jvmMain {
dependencies {
implementation(project.dependencies.platform(libs.openapi.bom))
implementation(libs.bundles.openapi)
implementation(project.dependencies.platform(libs.jackson.bom))
implementation(libs.bundles.jackson)
implementation(libs.networknt.validator)
}
}
}
}
fun Any?.takeIfNotBlank(): String? = this?.toString()?.takeUnless(String::isBlank)
benchmark {
configurations {
configureEach {
warmups = properties["benchmark_warmups"]?.takeIfNotBlank()?.toInt() ?: 5
iterations = properties["benchmark_iterations"]?.takeIfNotBlank()?.toInt() ?: 10
iterationTime = properties["benchmark_iteration_time"]?.takeIfNotBlank()?.toLong() ?: 1L
iterationTimeUnit = properties["benchmark_iteration_time_unit"]?.takeIfNotBlank() ?: "s"
reportFormat = properties["benchmark_report_format"]?.takeIfNotBlank() ?: "json"
param("objectPath", "$projectDir/data/openapi.json", "$projectDir/data/openapi-invalid.json")
param("schemaPath", "$projectDir/data/schemas/openapi_schema.json")
}
getByName("main") {
include(".*Common.*Bench.*")
}
create("prValidation") {
include(".*CommonAvgTimeBench.*")
}
create("comparison") {
include(".*Comparison.*Benchmark.*")
}
create("prValidationComparison") {
include(".*ComparisonAvgTimeBenchmark.*")
}
}
targets {
register("jvm")
register("macosX64")
register("macosArm64")
register("iosX64")
register("iosArm64")
register("iosSimulatorArm64")
register("linuxX64")
register("mingwX64")
}
}