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