Skip to content

Commit e39a604

Browse files
wldehAbduqodiri Qurbonzoda
authored andcommitted
Update mode test and introduce ValidOptions object
1 parent 159b5fb commit e39a604

File tree

1 file changed

+19
-12
lines changed

1 file changed

+19
-12
lines changed

integration/src/test/kotlin/kotlinx/benchmark/integration/OptionsValidationTest.kt

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class OptionsValidationTest : GradleTest() {
1616
}
1717

1818
runner.runAndFail("invalidReportFormatBenchmark") {
19-
assertOutputContains("Invalid report format: 'htmll'. Accepted formats: json, csv, scsv, text (e.g., reportFormat = \"json\").")
19+
assertOutputContains("Invalid report format: 'htmll'. Accepted formats: ${ValidOptions.format.joinToString(", ")} (e.g., reportFormat = \"json\").")
2020
}
2121
}
2222

@@ -66,12 +66,6 @@ class OptionsValidationTest : GradleTest() {
6666
}
6767
}
6868

69-
private val validTimeUnits = "NANOSECONDS, ns, nanos, " +
70-
"MICROSECONDS, us, micros, " +
71-
"MILLISECONDS, ms, millis, " +
72-
"SECONDS, s, sec, " +
73-
"MINUTES, m, min"
74-
7569
@Test
7670
fun testIterationTimeUnitValidation() {
7771
val runner = project("kotlin-multiplatform") {
@@ -88,10 +82,10 @@ class OptionsValidationTest : GradleTest() {
8882
}
8983

9084
runner.runAndFail("invalidIterationTimeUnitBenchmark") {
91-
assertOutputContains("Invalid iterationTimeUnit: 'x'. Accepted units: $validTimeUnits (e.g., iterationTimeUnit = \"ms\").")
85+
assertOutputContains("Invalid iterationTimeUnit: 'x'. Accepted units: ${ValidOptions.timeUnits.joinToString(", ")} (e.g., iterationTimeUnit = \"ms\").")
9286
}
9387
runner.runAndFail("incorrectCaseIterationTimeUnitBenchmark") {
94-
assertOutputContains("Invalid iterationTimeUnit: 'seconds'. Accepted units: $validTimeUnits (e.g., iterationTimeUnit = \"ms\").")
88+
assertOutputContains("Invalid iterationTimeUnit: 'seconds'. Accepted units: ${ValidOptions.timeUnits.joinToString(", ")} (e.g., iterationTimeUnit = \"ms\").")
9589
}
9690
}
9791

@@ -120,7 +114,7 @@ class OptionsValidationTest : GradleTest() {
120114
}
121115

122116
runner.runAndFail("invalidModeBenchmark") {
123-
assertOutputContains("Invalid benchmark mode: 'x'. Accepted modes: thrpt, avgt (e.g., mode = \"thrpt\").")
117+
assertOutputContains("Invalid benchmark mode: 'x'. Accepted modes: ${ValidOptions.modes.joinToString(", ")} (e.g., mode = \"thrpt\").")
124118
}
125119
}
126120

@@ -136,7 +130,7 @@ class OptionsValidationTest : GradleTest() {
136130
}
137131

138132
runner.runAndFail("invalidOutputTimeUnitBenchmark") {
139-
assertOutputContains("Invalid outputTimeUnit: 'x'. Accepted units: $validTimeUnits (e.g., outputTimeUnit = \"ns\").")
133+
assertOutputContains("Invalid outputTimeUnit: 'x'. Accepted units: ${ValidOptions.timeUnits.joinToString(", ")} (e.g., outputTimeUnit = \"ns\").")
140134
}
141135
}
142136

@@ -241,7 +235,7 @@ class OptionsValidationTest : GradleTest() {
241235
assertOutputContains("Invalid advanced option name: 'jsFork'. Accepted options: \"nativeFork\", \"nativeGCAfterIteration\", \"jvmForks\", \"jsUseBridge\".")
242236
}
243237
runner.runAndFail("invalidNativeForkBenchmark") {
244-
assertOutputContains("Invalid value for 'nativeFork': 'x'. Accepted values: perBenchmark, perIteration.")
238+
assertOutputContains("Invalid value for 'nativeFork': 'x'. Accepted values: ${ValidOptions.nativeForks.joinToString(", ")}.")
245239
}
246240
runner.runAndFail("invalidNativeGCAfterIterationBenchmark") {
247241
assertOutputContains("Invalid value for 'nativeGCAfterIteration': 'x'. Expected a Boolean value.")
@@ -253,4 +247,17 @@ class OptionsValidationTest : GradleTest() {
253247
assertOutputContains("Invalid value for 'jsUseBridge': 'x'. Expected a Boolean value.")
254248
}
255249
}
250+
}
251+
252+
private object ValidOptions {
253+
val format = setOf("json", "csv", "scsv", "text")
254+
val timeUnits = setOf(
255+
"NANOSECONDS", "ns", "nanos",
256+
"MICROSECONDS", "us", "micros",
257+
"MILLISECONDS", "ms", "millis",
258+
"SECONDS", "s", "sec",
259+
"MINUTES", "m", "min"
260+
)
261+
val modes = setOf("thrpt", "avgt", "Throughput", "AverageTime")
262+
val nativeForks = setOf("perBenchmark", "perIteration")
256263
}

0 commit comments

Comments
 (0)