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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]