@@ -16,7 +16,7 @@ class OptionsValidationTest : GradleTest() {
16
16
}
17
17
18
18
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\" )." )
20
20
}
21
21
}
22
22
@@ -66,12 +66,6 @@ class OptionsValidationTest : GradleTest() {
66
66
}
67
67
}
68
68
69
- private val validTimeUnits = " NANOSECONDS, ns, nanos, " +
70
- " MICROSECONDS, us, micros, " +
71
- " MILLISECONDS, ms, millis, " +
72
- " SECONDS, s, sec, " +
73
- " MINUTES, m, min"
74
-
75
69
@Test
76
70
fun testIterationTimeUnitValidation () {
77
71
val runner = project(" kotlin-multiplatform" ) {
@@ -88,10 +82,10 @@ class OptionsValidationTest : GradleTest() {
88
82
}
89
83
90
84
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\" )." )
92
86
}
93
87
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\" )." )
95
89
}
96
90
}
97
91
@@ -120,7 +114,7 @@ class OptionsValidationTest : GradleTest() {
120
114
}
121
115
122
116
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\" )." )
124
118
}
125
119
}
126
120
@@ -136,7 +130,7 @@ class OptionsValidationTest : GradleTest() {
136
130
}
137
131
138
132
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\" )." )
140
134
}
141
135
}
142
136
@@ -241,7 +235,7 @@ class OptionsValidationTest : GradleTest() {
241
235
assertOutputContains(" Invalid advanced option name: 'jsFork'. Accepted options: \" nativeFork\" , \" nativeGCAfterIteration\" , \" jvmForks\" , \" jsUseBridge\" ." )
242
236
}
243
237
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( " , " )} ." )
245
239
}
246
240
runner.runAndFail(" invalidNativeGCAfterIterationBenchmark" ) {
247
241
assertOutputContains(" Invalid value for 'nativeGCAfterIteration': 'x'. Expected a Boolean value." )
@@ -253,4 +247,17 @@ class OptionsValidationTest : GradleTest() {
253
247
assertOutputContains(" Invalid value for 'jsUseBridge': 'x'. Expected a Boolean value." )
254
248
}
255
249
}
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" )
256
263
}
0 commit comments