From e940a1d6bb2427e1c8d5d311700585fd65aa9a3f Mon Sep 17 00:00:00 2001 From: LepilkinaElena Date: Mon, 30 Nov 2020 22:05:21 +0300 Subject: [PATCH] Fix usages of ArgType.Choice in benchmarks (#4562) --- .../src/videoPlayerMain/kotlin/VideoPlayer.kt | 10 ++++++++-- .../src/main/kotlin/main.kt | 6 +++--- .../kotlin/org/jetbrains/renders/Render.kt | 19 +++++++------------ 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/kotlin-native/samples/videoplayer/src/videoPlayerMain/kotlin/VideoPlayer.kt b/kotlin-native/samples/videoplayer/src/videoPlayerMain/kotlin/VideoPlayer.kt index 18ae5585d05..7384943787b 100644 --- a/kotlin-native/samples/videoplayer/src/videoPlayerMain/kotlin/VideoPlayer.kt +++ b/kotlin-native/samples/videoplayer/src/videoPlayerMain/kotlin/VideoPlayer.kt @@ -156,11 +156,17 @@ class VideoPlayer(val requestedSize: Dimensions?) : DisposableContainer() { } } +enum class Mode { + VIDEO, + AUDIO, + BOTH +} + fun main(args: Array) { val argParser = ArgParser("videoplayer") val mode by argParser.option( - ArgType.Choice(listOf("video", "audio", "both")), shortName = "m", description = "Play mode") - .default("both") + ArgType.Choice(), shortName = "m", description = "Play mode") + .default(BOTH) val size by argParser.option(ArgType.Int, shortName = "s", description = "Required size of videoplayer window") .delimiter(",") val fileName by argParser.argument(ArgType.String, description = "File to play") diff --git a/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/main.kt b/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/main.kt index 0bfe5f6cf24..4f3647dec04 100644 --- a/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/main.kt +++ b/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/main.kt @@ -150,8 +150,8 @@ fun main(args: Array) { "Meaningful performance changes").default(1.0) val useShortForm by argParser.option(ArgType.Boolean, "short", "s", "Show short version of report").default(false) - val renders by argParser.option(ArgType.Choice(listOf("text", "html", "teamcity", "statistics", "metrics")), - shortName = "r", description = "Renders for showing information").multiple().default(listOf("text")) + val renders by argParser.option(ArgType.Choice(), shortName = "r", + description = "Renders for showing information").multiple().default(listOf(RenderType.TEXT)) val user by argParser.option(ArgType.String, shortName = "u", description = "User access information for authorization") argParser.parse(args) @@ -169,7 +169,7 @@ fun main(args: Array) { var outputFile = output renders.forEach { - Render.getRenderByName(it).print(summaryReport, useShortForm, outputFile) + it.render.print(summaryReport, useShortForm, outputFile) outputFile = null } } \ No newline at end of file diff --git a/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/org/jetbrains/renders/Render.kt b/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/org/jetbrains/renders/Render.kt index 1342f8bc52e..b0eb0fa1e8c 100644 --- a/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/org/jetbrains/renders/Render.kt +++ b/kotlin-native/tools/benchmarksAnalyzer/src/main/kotlin/org/jetbrains/renders/Render.kt @@ -10,21 +10,16 @@ import org.jetbrains.report.* import kotlin.math.abs +enum class RenderType(val render: Render) { + TEXT(TextRender()), + HTML(HTMLRender()), + TEAMCITY(TeamCityStatisticsRender()), + STATISTICS(StatisticsRender()) +} + // Base class for printing report in different formats. abstract class Render { - companion object { - fun getRenderByName(name: String) = - when (name) { - "text" -> TextRender() - "html" -> HTMLRender() - "teamcity" -> TeamCityStatisticsRender() - "statistics" -> StatisticsRender() - "metrics" -> MetricResultsRender() - else -> error("Unknown render $name") - } - } - abstract val name: String abstract fun render(report: SummaryBenchmarksReport, onlyChanges: Boolean = false): String