You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2018/03/03 04:53:55 UTC

[kylin] 07/11: KYLIN-3266 improve kylin CI BuildCubeWithEngine coverage

This is an automated email from the ASF dual-hosted git repository.

liyang pushed a commit to branch sync
in repository https://gitbox.apache.org/repos/asf/kylin.git

commit a040c9a7f419fa1599d35f3becea3f4d67cfcef3
Author: Li Yang <li...@apache.org>
AuthorDate: Thu Feb 22 17:42:55 2018 +0800

    KYLIN-3266 improve kylin CI BuildCubeWithEngine coverage
---
 .../kylin/provision/BuildCubeWithEngine.java       | 75 ++++++++++++----------
 1 file changed, 42 insertions(+), 33 deletions(-)

diff --git a/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java b/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java
index 18a07cf..ce7b892 100644
--- a/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java
+++ b/kylin-it/src/test/java/org/apache/kylin/provision/BuildCubeWithEngine.java
@@ -21,6 +21,7 @@ package org.apache.kylin.provision;
 import java.io.File;
 import java.io.IOException;
 import java.lang.reflect.Method;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.List;
 import java.util.Map;
@@ -107,9 +108,8 @@ public class BuildCubeWithEngine {
         logger.info("Adding to classpath: " + new File(confDir).getAbsolutePath());
         ClassUtil.addClasspath(new File(confDir).getAbsolutePath());
 
-        String fastModeStr = System.getProperty("fastBuildMode");
-        if (fastModeStr != null && fastModeStr.equalsIgnoreCase("true")) {
-            fastBuildMode = true;
+        fastBuildMode = isFastBuildMode();
+        if (fastBuildMode) {
             logger.info("Will use fast build mode");
         } else {
             logger.info("Will not use fast build mode");
@@ -145,6 +145,14 @@ public class BuildCubeWithEngine {
         }
     }
 
+    private static boolean isFastBuildMode() {
+        String fastModeStr = System.getProperty("fastBuildMode");
+        if (fastModeStr == null)
+            fastModeStr = System.getenv("KYLIN_CI_FASTBUILD");
+        
+        return "true".equalsIgnoreCase(fastModeStr);
+    }
+
     protected void deployEnv() throws IOException {
         DeployUtil.initCliWorkDir();
         DeployUtil.deployMetadata();
@@ -268,28 +276,43 @@ public class BuildCubeWithEngine {
     private boolean testLeftJoinCube() throws Exception {
         String cubeName = "ci_left_join_cube";
         clearSegment(cubeName);
-        // ci_left_join_cube has percentile which isn't supported by Spark engine now
-        // updateCubeEngineType(cubeName);
+        
+        // NOTE: ci_left_join_cube has percentile which isn't supported by Spark engine now
 
+        return doBuildAndMergeOnCube(cubeName);
+    }
+
+    private boolean doBuildAndMergeOnCube(String cubeName) throws ParseException, Exception {
         SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
         f.setTimeZone(TimeZone.getTimeZone("GMT"));
         long date1 = 0;
-        long date2 = f.parse("2013-01-01").getTime();
+        long date2 = f.parse("2012-06-01").getTime();
         long date3 = f.parse("2013-07-01").getTime();
         long date4 = f.parse("2022-01-01").getTime();
+        long date5 = f.parse("2023-01-01").getTime();
+        long date6 = f.parse("2024-01-01").getTime();
 
-        if (fastBuildMode) {
+        if (fastBuildMode)
             return buildSegment(cubeName, date1, date4);
-        } else {
-            if (buildSegment(cubeName, date1, date2) == true) {
-                if (buildSegment(cubeName, date2, date3) == true) {
-                    if (buildSegment(cubeName, date3, date4) == true) {
-                        return mergeSegment(cubeName, date1, date3); // don't merge all segments
-                    }
-                }
-            }
-        }
-        return false;
+        
+        if (!buildSegment(cubeName, date1, date2))
+            return false;
+        if (!buildSegment(cubeName, date2, date3))
+            return false;
+        if (!buildSegment(cubeName, date3, date4))
+            return false;
+        if (!buildSegment(cubeName, date4, date5)) // one empty segment
+            return false;
+        if (!buildSegment(cubeName, date5, date6)) // another empty segment
+            return false;
+
+        if (!mergeSegment(cubeName, date2, date4)) // merge 2 normal segments
+            return false;
+        if (!mergeSegment(cubeName, date2, date5)) // merge normal and empty
+            return false;
+        
+        // now have 2 normal segments [date1, date2) [date2, date5) and 1 empty segment [date5, date6)
+        return true;
     }
 
     @SuppressWarnings("unused")
@@ -298,22 +321,8 @@ public class BuildCubeWithEngine {
 
         String cubeName = "ci_inner_join_cube";
         clearSegment(cubeName);
-        //updateCubeEngineType(cubeName);
-
-        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
-        f.setTimeZone(TimeZone.getTimeZone("GMT"));
-        long date1 = 0;
-        long date2 = f.parse("2022-07-01").getTime();
-        long date3 = f.parse("2023-01-01").getTime();
-
-        if (fastBuildMode) {
-            return buildSegment(cubeName, date1, date3);
-        } else {
-            if (buildSegment(cubeName, date1, date2) == true) { // all-in-one build
-                return buildSegment(cubeName, date2, date3); // empty segment
-            }
-        }
-        return false;
+        
+        return doBuildAndMergeOnCube(cubeName);
     }
 
     @SuppressWarnings("unused")

-- 
To stop receiving notification emails like this one, please contact
liyang@apache.org.