You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by da...@apache.org on 2022/07/25 04:10:36 UTC
[doris] branch master updated: [test] use suffix of directory as group name and use directory as dbname (#11142)
This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 93cb80c9cb [test] use suffix of directory as group name and use directory as dbname (#11142)
93cb80c9cb is described below
commit 93cb80c9cb5ba8cde0a1220bcca5d445b3ac7be1
Author: Yongqiang YANG <98...@users.noreply.github.com>
AuthorDate: Mon Jul 25 12:10:31 2022 +0800
[test] use suffix of directory as group name and use directory as dbname (#11142)
* use suffix of directory as group name and use directory as dbname
We can rename tpcds_sf1 to tpcds_sf1_p1, then tpcds_sf1 will be in group
p1. We will group cases to p0, p1, p2, p3 in the future.
p0: function cases running in seconds.
p1: cases with expected out running in minutes, like tpcds_sf1
p2: cases with expected out running in hours, like tpcds_sf10 tpcds_sf100
p3: cases without without expected out to test core dump.
---
.../conditional_functions/datetype.csv | 16 +++++++
.../org/apache/doris/regression/Config.groovy | 27 +++++++----
.../regression/action/StreamLoadAction.groovy | 3 +-
.../doris/regression/suite/SuiteContext.groovy | 5 +-
.../doris/regression/suite/SuiteScript.groovy | 13 ++---
.../conditional_functions/test_nullif.groovy | 55 ++++++++++++++++++++++
regression-test/suites/ssb_sf1/nereids/q1.1.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q1.2.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q1.3.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q2.1.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q2.2.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q2.3.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q3.1.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q3.2.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q3.3.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q3.4.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q4.1.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q4.2.groovy | 2 +-
regression-test/suites/ssb_sf1/nereids/q4.3.groovy | 2 +-
19 files changed, 115 insertions(+), 30 deletions(-)
diff --git a/regression-test/data/query/sql_functions/conditional_functions/datetype.csv b/regression-test/data/query/sql_functions/conditional_functions/datetype.csv
new file mode 100644
index 0000000000..a57e5ca7d1
--- /dev/null
+++ b/regression-test/data/query/sql_functions/conditional_functions/datetype.csv
@@ -0,0 +1,16 @@
+12|12.25|String1|1999-01-08|1999-01-08 02:05:06|TRUE|123.22|12345678901234567890.0123456789
+25|55.52|test|1952-01-05|1989-01-08 04:05:06|FALSE|321.21|-12345678901234567890.0123456789
+964|0.245|Again|1936-02-08|2005-01-09 04:05:06|FALSE|333.82|98765432109876543210.9876543210
+100|12.25|testing|1949-07-08|2002-01-07 01:05:06|TRUE|-393.22|-98765432109876543210.9876543210
+100|99.8777|AGAIN|1987-04-09|2010-01-02 04:03:06|TRUE|000.00|00000000000000000000.0000000000
+5252|12.25|sample|1987-04-09|2010-01-02 04:03:06|TRUE|123.00|00000000000000000001.0000000000
+100|9.8777|STRING1|1923-04-08|2010-01-02 05:09:06|TRUE|010.01|00000000000000000002.0000000000
+8996|98.8777|again|1987-04-09|2010-01-02 04:03:06|FALSE|-000.01|99999999999999999999.9999999999
+100|12.8788|string1|1922-04-02|2010-01-02 02:05:06|TRUE|999.99|-99999999999999999999.9999999999
+5748|67.87|sample|1987-04-06|2010-01-02 04:03:06|TRUE|-999.99|00000000000000000000.0000000001
+5748|67.87|Sample|1987-04-06|2010-01-02 04:03:06|TRUE|181.18|-00000000000000000000.0000000001
+5748|67.87|sample|1987-04-06|2010-01-02 04:03:06|TRUE|181.18|12345678901234567890.0123456789
+5748|67.87|sample|1987-04-06|2010-01-02 04:03:06|TRUE|181.18|12345678901234567890.0123456789
+5000|67.87|testing|\N|2010-01-02 04:03:06|\N|\N|\N
+6000|\N|\N|1987-04-06|\N|TRUE|\N|\N
+\N|98.52|\N|\N|\N|TRUE|181.18|\N
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 c8ddee08bd..8d6e18e1ba 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
@@ -371,18 +371,29 @@ class Config {
return DriverManager.getConnection(jdbcUrl, jdbcUser, jdbcPassword)
}
- Connection getConnectionByLastGroup(String group) {
- String realDb = getDbByLastGroup(group)
- String dbUrl = buildUrl(realDb)
- tryCreateDbIfNotExist(realDb)
+ Connection getConnectionByDbName(String dbName) {
+ String dbUrl = buildUrl(dbName)
+ tryCreateDbIfNotExist(dbName)
log.info("connect to ${dbUrl}".toString())
return DriverManager.getConnection(dbUrl, jdbcUser, jdbcPassword)
}
- String getDbByLastGroup(String group) {
- def groupList = group.split(',')
- String lastGroup = groupList[groupList.length - 1].replace(File.separator, '_')
- return defaultDb + '_' + lastGroup
+ String getDbNameByFile(File suiteFile) {
+ String dir = new File(suitePath).relativePath(suiteFile.parentFile)
+ // We put sql files under sql dir, so dbs and tables used by cases
+ // under sql directory should be prepared by load.groovy unbder the
+ // parent.
+ //
+ // e.g.
+ // suites/tpcds_sf1/load.groovy
+ // suites/tpcds_sf1/sql/q01.sql
+ if (dir.indexOf(File.separator + "sql") > 0 && dir.endsWith("sql")) {
+ dir = dir.substring(0, dir.indexOf(File.separator + "sql"))
+ }
+
+ dir = dir.replace('-', '_')
+
+ return defaultDb + '_' + dir.replace(File.separator, '_')
}
Predicate<String> getDirectoryFilter() {
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy
index 4aee6e4fb7..a101fb20f7 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/action/StreamLoadAction.groovy
@@ -59,8 +59,7 @@ class StreamLoadAction implements SuiteAction {
this.password = context.config.feHttpPassword
def groupList = context.group.split(',')
- def topGroup = groupList[groupList.length - 1].replace(File.separator, '_')
- this.db = context.config.defaultDb + "_" + topGroup
+ this.db = context.config.getDbNameByFile(context.file)
this.context = context
this.headers = new LinkedHashMap<>()
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
index f463f72e4c..bee345b74b 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteContext.groovy
@@ -34,6 +34,7 @@ class SuiteContext implements Closeable {
public final File file
public final String suiteName
public final String group
+ public final String dbName
public final ThreadLocal<Connection> threadLocalConn = new ThreadLocal<>()
public final Config config
public final File dataPath
@@ -74,6 +75,8 @@ class SuiteContext implements Closeable {
this.outputFile = new File(new File(config.dataPath), outputRelativePath)
this.realOutputFile = new File(new File(config.realDataPath), realOutputRelativePath)
this.dataPath = this.outputFile.getParentFile().getCanonicalFile()
+
+ this.dbName = config.getDbNameByFile(file)
// - flowName: tpcds_sf1.sql.q47.q47, flowId: tpcds_sf1/sql/q47.sql#q47
log.info("flowName: ${flowName}, flowId: ${flowId}".toString())
}
@@ -108,7 +111,7 @@ class SuiteContext implements Closeable {
Connection getConnection() {
def threadConn = threadLocalConn.get()
if (threadConn == null) {
- threadConn = config.getConnectionByLastGroup(group)
+ threadConn = config.getConnectionByDbName(dbName)
threadLocalConn.set(threadConn)
}
return threadConn
diff --git a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy
index fd593077c2..a1b4d4e14f 100644
--- a/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy
+++ b/regression-test/framework/src/main/groovy/org/apache/doris/regression/suite/SuiteScript.groovy
@@ -53,15 +53,16 @@ abstract class SuiteScript extends Script {
log.info("path: ${path}, groupPath: ${groupPath}".toString())
List<String> groups = ["default"]
- String parentGroup = ""
-
groupPath.split(File.separator)
.collect {it.trim()}
.findAll {it != "." && it != ".." && !it.isEmpty()}
- .each {
- String currentGroup = parentGroup + it
- groups.add(currentGroup)
- parentGroup = currentGroup + "/"
+ .reverse()
+ .any {
+ def candidateGroups = it.split('_')
+ if (candidateGroups.length > 1) {
+ groups.add(candidateGroups[candidateGroups.length - 1])
+ return true
+ }
}
return groups.join(",")
}
diff --git a/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy b/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy
index 368f194552..0ec424ea17 100644
--- a/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy
+++ b/regression-test/suites/query/sql_functions/conditional_functions/test_nullif.groovy
@@ -16,6 +16,61 @@
// under the License.
suite("test_nullif", "query") {
+ def tableName = "datetype"
+
+ sql """ DROP TABLE IF EXISTS ${tableName} """
+ sql """
+ CREATE TABLE IF NOT EXISTS ${tableName} (
+ c_bigint bigint,
+ c_double double,
+ c_string string,
+ c_date date,
+ c_timestamp datetime,
+ c_boolean boolean,
+ c_short_decimal decimal(5,2),
+ c_long_decimal decimal(27,9)
+ )
+ DUPLICATE KEY(c_bigint)
+ DISTRIBUTED BY HASH(c_bigint) BUCKETS 1
+ PROPERTIES (
+ "replication_num" = "1"
+ )
+ """
+
+ streamLoad {
+ // you can skip declare db, because a default db already specify in ${DORIS_HOME}/conf/regression-conf.groovy
+ // db 'regression_test'
+ table tableName
+
+ // default label is UUID:
+ // set 'label' UUID.randomUUID().toString()
+
+ // default column_separator is specify in doris fe config, usually is '\t'.
+ // this line change to ','
+ set 'column_separator', '|'
+
+ // relate to ${DORIS_HOME}/regression-test/data/demo/streamload_input.csv.
+ // also, you can stream load a http stream, e.g. http://xxx/some.csv
+ file 'datetype.csv'
+
+ time 10000 // limit inflight 10s
+
+ // stream load action will check result, include Success status, and NumberTotalRows == NumberLoadedRows
+
+ // if declared a check callback, the default check condition will ignore.
+ // So you must check all condition
+ check { result, exception, startTime, endTime ->
+ if (exception != null) {
+ throw exception
+ }
+ log.info("Stream load result: ${result}".toString())
+ def json = parseJson(result)
+ assertEquals("success", json.Status.toLowerCase())
+ assertEquals(json.NumberTotalRows, json.NumberLoadedRows)
+ assertTrue(json.NumberLoadedRows > 0 && json.LoadBytes > 0)
+ }
+ }
+
qt_select "select nullif(k6, \"false\") k from test_query_db.test order by k1"
qt_select "select if(c_date is null,c_timestamp,c_date) from datetype where c_date is null and c_timestamp is not null"
}
diff --git a/regression-test/suites/ssb_sf1/nereids/q1.1.groovy b/regression-test/suites/ssb_sf1/nereids/q1.1.groovy
index 2383510c06..2b63a68d5d 100644
--- a/regression-test/suites/ssb_sf1/nereids/q1.1.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q1.1.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q1_1_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q1.2.groovy b/regression-test/suites/ssb_sf1/nereids/q1.2.groovy
index cb6a7f742f..813480375a 100644
--- a/regression-test/suites/ssb_sf1/nereids/q1.2.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q1.2.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q1_2_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q1.3.groovy b/regression-test/suites/ssb_sf1/nereids/q1.3.groovy
index 068897e1bd..3196c56cc7 100644
--- a/regression-test/suites/ssb_sf1/nereids/q1.3.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q1.3.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q1_3_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q2.1.groovy b/regression-test/suites/ssb_sf1/nereids/q2.1.groovy
index 1a8103559c..7068176bcc 100644
--- a/regression-test/suites/ssb_sf1/nereids/q2.1.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q2.1.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q2_1_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q2.2.groovy b/regression-test/suites/ssb_sf1/nereids/q2.2.groovy
index 290f9de260..368f439dc2 100644
--- a/regression-test/suites/ssb_sf1/nereids/q2.2.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q2.2.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q2_2_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q2.3.groovy b/regression-test/suites/ssb_sf1/nereids/q2.3.groovy
index bb71a1d214..78a5999d87 100644
--- a/regression-test/suites/ssb_sf1/nereids/q2.3.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q2.3.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q2_3_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q3.1.groovy b/regression-test/suites/ssb_sf1/nereids/q3.1.groovy
index cc0486bc77..daef73d69f 100644
--- a/regression-test/suites/ssb_sf1/nereids/q3.1.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q3.1.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q3_1_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q3.2.groovy b/regression-test/suites/ssb_sf1/nereids/q3.2.groovy
index c25454d604..1470b2f5b1 100644
--- a/regression-test/suites/ssb_sf1/nereids/q3.2.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q3.2.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q3_2_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q3.3.groovy b/regression-test/suites/ssb_sf1/nereids/q3.3.groovy
index c4e4dbd5e6..5312f59d7f 100644
--- a/regression-test/suites/ssb_sf1/nereids/q3.3.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q3.3.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q3_3_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q3.4.groovy b/regression-test/suites/ssb_sf1/nereids/q3.4.groovy
index 47b3faa314..bd3f4f5a4e 100644
--- a/regression-test/suites/ssb_sf1/nereids/q3.4.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q3.4.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q3_4_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q4.1.groovy b/regression-test/suites/ssb_sf1/nereids/q4.1.groovy
index 2d93598782..26aa503b15 100644
--- a/regression-test/suites/ssb_sf1/nereids/q4.1.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q4.1.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q4_1_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q4.2.groovy b/regression-test/suites/ssb_sf1/nereids/q4.2.groovy
index 34e485c53c..68dfab276f 100644
--- a/regression-test/suites/ssb_sf1/nereids/q4.2.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q4.2.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q4_2_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
diff --git a/regression-test/suites/ssb_sf1/nereids/q4.3.groovy b/regression-test/suites/ssb_sf1/nereids/q4.3.groovy
index 90c844cb53..bed16331ba 100644
--- a/regression-test/suites/ssb_sf1/nereids/q4.3.groovy
+++ b/regression-test/suites/ssb_sf1/nereids/q4.3.groovy
@@ -16,7 +16,7 @@
// under the License.
suite("ssb_sf1_q4_3_nereids") {
- String realDb = context.config.getDbByLastGroup(context.group)
+ String realDb = context.config.getDbNameByFile(context.file)
// get parent directory's group
realDb = realDb.substring(0, realDb.lastIndexOf("_"))
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org