Fix usages of ArgType.Choice in benchmarks (#4562)

This commit is contained in:
LepilkinaElena
2020-11-30 22:05:21 +03:00
committed by Stanislav Erokhin
parent 211c160558
commit e940a1d6bb
3 changed files with 18 additions and 17 deletions
@@ -156,11 +156,17 @@ class VideoPlayer(val requestedSize: Dimensions?) : DisposableContainer() {
}
}
enum class Mode {
VIDEO,
AUDIO,
BOTH
}
fun main(args: Array<String>) {
val argParser = ArgParser("videoplayer")
val mode by argParser.option(
ArgType.Choice(listOf("video", "audio", "both")), shortName = "m", description = "Play mode")
.default("both")
ArgType.Choice<Mode>(), 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")
@@ -150,8 +150,8 @@ fun main(args: Array<String>) {
"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<RenderType>(), 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<String>) {
var outputFile = output
renders.forEach {
Render.getRenderByName(it).print(summaryReport, useShortForm, outputFile)
it.render.print(summaryReport, useShortForm, outputFile)
outputFile = null
}
}
@@ -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