This is an automated email from the ASF dual-hosted git repository. panxiaolei pushed a commit to branch branch-1.2-lts in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.2-lts by this push: new 8d655eff0a0 [regression](framework) add config caseNamePrefix (#32639) 8d655eff0a0 is described below commit 8d655eff0a05c4bfce6c7e43fd970799aff4be2e Author: Dongyang Li <hello_step...@qq.com> AuthorDate: Thu Mar 21 21:00:56 2024 +0800 [regression](framework) add config caseNamePrefix (#32639) add config caseNamePrefix --- .../org/apache/doris/regression/Config.groovy | 12 ++++++++++- .../apache/doris/regression/ConfigOptions.groovy | 9 ++++++++ .../apache/doris/regression/RegressionTest.groovy | 6 ++++++ .../doris/regression/util/TeamcityUtils.groovy | 25 +++++++++++++++++----- 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy index 355c58f2df6..26e3bd6577d 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/Config.groovy @@ -84,14 +84,16 @@ class Config { public Integer actionParallel public Integer times public boolean withOutLoadData + public String caseNamePrefix Config() {} - Config(String defaultDb, String jdbcUrl, String jdbcUser, String jdbcPassword, + Config(String caseNamePrefix, String defaultDb, String jdbcUrl, String jdbcUser, String jdbcPassword, String feHttpAddress, String feHttpUser, String feHttpPassword, String metaServiceHttpAddress, String suitePath, String dataPath, String realDataPath, String cacheDataPath, String testGroups, String excludeGroups, String testSuites, String excludeSuites, String testDirectories, String excludeDirectories, String pluginPath) { + this.caseNamePrefix = caseNamePrefix this.defaultDb = defaultDb this.jdbcUrl = jdbcUrl this.jdbcUser = jdbcUser @@ -209,11 +211,13 @@ class Config { config.randomOrder = cmd.hasOption(randomOrderOpt) config.stopWhenFail = cmd.hasOption(stopWhenFailOpt) config.withOutLoadData = cmd.hasOption(withOutLoadDataOpt) + config.caseNamePrefix = cmd.getOptionValue(caseNamePrefixOpt, config.caseNamePrefix) config.dryRun = cmd.hasOption(dryRunOpt) log.info("randomOrder is ${config.randomOrder}".toString()) log.info("stopWhenFail is ${config.stopWhenFail}".toString()) log.info("withOutLoadData is ${config.withOutLoadData}".toString()) + log.info("caseNamePrefix is ${config.caseNamePrefix}".toString()) log.info("dryRun is ${config.dryRun}".toString()) Properties props = cmd.getOptionProperties("conf") @@ -227,6 +231,7 @@ class Config { static Config fromConfigObject(ConfigObject obj) { def config = new Config( + configToString(obj.caseNamePrefix), configToString(obj.defaultDb), configToString(obj.jdbcUrl), configToString(obj.jdbcUser), @@ -262,6 +267,11 @@ class Config { } static void fillDefaultConfig(Config config) { + if (config.caseNamePrefix == null) { + config.caseNamePrefix = "" + log.info("set caseNamePrefix to '' because not specify.".toString()) + } + if (config.defaultDb == null) { config.defaultDb = "regression_test" log.info("Set defaultDb to '${config.defaultDb}' because not specify.".toString()) diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy index 4fa7552e09a..6661cfdf6d0 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/ConfigOptions.groovy @@ -58,6 +58,7 @@ class ConfigOptions { static Option stopWhenFailOpt static Option timesOpt static Option withOutLoadDataOpt + static Option caseNamePrefixOpt static Option dryRunOpt static CommandLine initCommands(String[] args) { @@ -304,6 +305,13 @@ class ConfigOptions { .longOpt("withOutLoadData") .desc("do not run load.groovy to reload data to Doris.") .build() + caseNamePrefixOpt = Option.builder("cnp") + .required(false) + .hasArg(true) + .type(String.class) + .longOpt("caseNamePrefix") + .desc("add prefix to each case name") + .build() dryRunOpt = Option.builder("dryRun") .required(false) .hasArg(false) @@ -339,6 +347,7 @@ class ConfigOptions { .addOption(stopWhenFailOpt) .addOption(timesOpt) .addOption(withOutLoadDataOpt) + .addOption(caseNamePrefixOpt) .addOption(dryRunOpt) CommandLine cmd = new DefaultParser().parse(options, args, true) diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy index 7c45cac9a63..dd16afcb20a 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/RegressionTest.groovy @@ -30,6 +30,7 @@ import org.apache.doris.regression.suite.event.StackEventListeners import org.apache.doris.regression.suite.SuiteScript import org.apache.doris.regression.suite.event.TeamcityEventListener import org.apache.doris.regression.util.Recorder +import org.apache.doris.regression.util.TeamcityUtils import groovy.util.logging.Slf4j import org.apache.commons.cli.* import org.apache.commons.lang3.concurrent.BasicThreadFactory; @@ -65,6 +66,11 @@ class RegressionTest { boolean success = true for (int i = 0; i < config.times; i++) { log.info("=== run ${i} time ===") + + if (config.caseNamePrefix) { + TeamcityUtils.prefix = config.caseNamePrefix.toString() + } + Recorder recorder = runScripts(config) success = printResult(config, recorder) } diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/TeamcityUtils.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/TeamcityUtils.groovy index dd713db2d1d..8d6e99ae8df 100644 --- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/TeamcityUtils.groovy +++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/util/TeamcityUtils.groovy @@ -24,34 +24,49 @@ import org.apache.tools.ant.util.DateUtils @CompileStatic class TeamcityUtils { + + static String prefix = "" + + static String getSuiteName(String name) { + if (prefix != "") { + name = prefix + "-" + name + } + return name + } + static String formatNow() { return DateUtils.format(System.currentTimeMillis(), "yyyy-MM-dd'T'HH:mm:ss.SSSZ") } static String formatStdOut(SuiteContext suiteContext, String msg) { String timestamp = formatNow() - return "##teamcity[testStdOut name='${suiteContext.flowName}' out='${escape(msg)}' flowId='${suiteContext.flowId}' timestamp='${timestamp}']" + String name = getSuiteName(suiteContext.flowName) + return "##teamcity[testStdOut name='${name}' out='${escape(msg)}' flowId='${suiteContext.flowId}' timestamp='${timestamp}']" } static String formatStdErr(SuiteContext suiteContext, String msg) { String timestamp = formatNow() - return "##teamcity[testStdErr name='${suiteContext.flowName}' out='${escape(msg)}' flowId='${suiteContext.flowId}' timestamp='${timestamp}']" + String name = getSuiteName(suiteContext.flowName) + return "##teamcity[testStdErr name='${name}' out='${escape(msg)}' flowId='${suiteContext.flowId}' timestamp='${timestamp}']" } static void testStarted(SuiteContext suiteContext) { String timestamp = formatNow() + String name = getSuiteName(suiteContext.flowName) println("##teamcity[flowStarted flowId='${suiteContext.flowId}' timestamp='${timestamp}']") - println("##teamcity[testStarted name='${suiteContext.flowName}' flowId='${suiteContext.flowId}' timestamp='${timestamp}']") + println("##teamcity[testStarted name='${name}' flowId='${suiteContext.flowId}' timestamp='${timestamp}']") } static void testFailed(SuiteContext suiteContext, String msg, String details) { String timestamp = formatNow() - println("##teamcity[testFailed name='${suiteContext.flowName}' message='${escape(msg)}' flowId='${suiteContext.flowId}' details='${escape(details)}' timestamp='${timestamp}']") + String name = getSuiteName(suiteContext.flowName) + println("##teamcity[testFailed name='${name}' message='${escape(msg)}' flowId='${suiteContext.flowId}' details='${escape(details)}' timestamp='${timestamp}']") } static void testFinished(SuiteContext suiteContext, long elapsed) { String timestamp = formatNow() - println("##teamcity[testFinished name='${suiteContext.flowName}' flowId='${suiteContext.flowId}' duration='${elapsed}' timestamp='${timestamp}']") + String name = getSuiteName(suiteContext.flowName) + println("##teamcity[testFinished name='${name}' flowId='${suiteContext.flowId}' duration='${elapsed}' timestamp='${timestamp}']") println("##teamcity[flowFinished flowId='${suiteContext.flowId}' timestamp='${timestamp}']") } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org