You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by ni...@apache.org on 2019/05/19 05:58:48 UTC

[kylin] branch master updated: Add tests for LookupExecutableUtil and JobInfoConverter (#640)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 79a2fc2  Add tests for LookupExecutableUtil and JobInfoConverter (#640)
79a2fc2 is described below

commit 79a2fc26af25a8c6c5bbd5200e714ad95bcfdf4f
Author: Michael Hausegger <ha...@googlemail.com>
AuthorDate: Sun May 19 07:58:41 2019 +0200

    Add tests for LookupExecutableUtil and JobInfoConverter (#640)
    
    * Add tests for LookupExecutableUtil and JobInfoConverter
---
 .../mr/common/DefaultX509TrustManagerTest.java     |  29 ++--
 .../engine/mr/common/HadoopCmdOutputTest.java      |  25 ++--
 .../engine/mr/common/JobInfoConverterTest.java     | 159 +++++++++++++++++++--
 .../mr/steps/lookup/LookupExecutableUtilTest.java  |  63 ++++++++
 4 files changed, 240 insertions(+), 36 deletions(-)

diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java
index 9a113db..30135b0 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/DefaultX509TrustManagerTest.java
@@ -17,34 +17,33 @@
  */
 package org.apache.kylin.engine.mr.common;
 
-import org.junit.Test;
+import static org.junit.Assert.assertTrue;
 
 import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
 
-import static org.junit.Assert.assertTrue;
+import org.junit.Test;
 
 /**
  * Unit tests for class {@link DefaultX509TrustManager}.
  *
  * @see DefaultX509TrustManager
- *
  */
-public class DefaultX509TrustManagerTest{
+public class DefaultX509TrustManagerTest {
 
-  @Test(expected = NullPointerException.class)
-  public void testIsServerTrustedThrowsNullPointerException() throws KeyStoreException, NoSuchAlgorithmException {
-      DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
+    @Test(expected = NullPointerException.class)
+    public void testIsServerTrustedThrowsNullPointerException() throws KeyStoreException, NoSuchAlgorithmException {
+        DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
 
-      defaultX509TrustManager.isServerTrusted(new X509Certificate[1]);
-  }
+        defaultX509TrustManager.isServerTrusted(new X509Certificate[1]);
+    }
 
-  @Test
-  public void testIsServerTrustedWithNull() throws KeyStoreException, NoSuchAlgorithmException {
-      DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
+    @Test
+    public void testIsServerTrustedWithNull() throws KeyStoreException, NoSuchAlgorithmException {
+        DefaultX509TrustManager defaultX509TrustManager = new DefaultX509TrustManager(null);
 
-      assertTrue(defaultX509TrustManager.isServerTrusted(null));
-  }
+        assertTrue(defaultX509TrustManager.isServerTrusted(null));
+    }
 
-}
\ No newline at end of file
+}
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java
index 6d8cbc6..6ac1225 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/HadoopCmdOutputTest.java
@@ -17,29 +17,28 @@
  */
 package org.apache.kylin.engine.mr.common;
 
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.mapreduce.Job;
-import org.junit.Test;
+import static org.junit.Assert.assertNull;
 
 import java.io.IOException;
 
-import static org.junit.Assert.assertNull;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.mapreduce.Job;
+import org.junit.Test;
 
 /**
  * Unit tests for class {@link HadoopCmdOutput}.
  *
  * @see HadoopCmdOutput
- *
  */
-public class HadoopCmdOutputTest{
+public class HadoopCmdOutputTest {
 
-  @Test(expected = IllegalStateException.class)
-  public void testGetMrJobIdThrowsIllegalStateException() throws IOException {
-      Job job = Job.getInstance(new Configuration(false));
-      HadoopCmdOutput hadoopCmdOutput = new HadoopCmdOutput(job, new StringBuilder());
+    @Test(expected = IllegalStateException.class)
+    public void testGetMrJobIdThrowsIllegalStateException() throws IOException {
+        Job job = Job.getInstance(new Configuration(false));
+        HadoopCmdOutput hadoopCmdOutput = new HadoopCmdOutput(job, new StringBuilder());
 
-      assertNull(hadoopCmdOutput.getMrJobId());
-  }
+        assertNull(hadoopCmdOutput.getMrJobId());
+    }
 
     @Test
     public void testUpdateJobCounterCatchesEveryInternalException() throws IOException {
@@ -49,4 +48,4 @@ public class HadoopCmdOutputTest{
         hadoopCmdOutput.updateJobCounter();
     }
 
-}
\ No newline at end of file
+}
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java
index 013ab0b..2201530 100644
--- a/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/common/JobInfoConverterTest.java
@@ -14,42 +14,49 @@
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
-*/
+ */
 
 package org.apache.kylin.engine.mr.common;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
 import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.ConcurrentHashMap;
 
+import com.google.common.collect.Maps;
 import org.apache.kylin.engine.mr.CubingJob;
 import org.apache.kylin.job.JobInstance;
+import org.apache.kylin.job.constant.JobStatusEnum;
 import org.apache.kylin.job.constant.JobStepStatusEnum;
 import org.apache.kylin.job.exception.ExecuteException;
+import org.apache.kylin.job.execution.CheckpointExecutable;
 import org.apache.kylin.job.execution.ExecutableContext;
 import org.apache.kylin.job.execution.ExecutableState;
 import org.apache.kylin.job.execution.ExecuteResult;
 import org.apache.kylin.job.execution.Output;
-import org.junit.Assert;
 import org.junit.Test;
 
-import com.google.common.collect.Maps;
-
 public class JobInfoConverterTest {
     @Test
     public void testParseToJobInstance() {
         TestJob task = new TestJob();
-        JobInstance instance = JobInfoConverter.parseToJobInstanceQuietly(task, Maps.<String, Output> newHashMap());
+        JobInstance instance = JobInfoConverter.parseToJobInstanceQuietly(task, Maps.newHashMap());
         // no exception thrown is expected
-        Assert.assertTrue(instance == null);
+        assertTrue(instance == null);
     }
 
     @Test
     public void testParseToJobStep() {
         TestJob task = new TestJob();
         JobInstance.JobStep step = JobInfoConverter.parseToJobStep(task, 0, null);
-        Assert.assertEquals(step.getStatus(), JobStepStatusEnum.PENDING);
+        assertEquals(step.getStatus(), JobStepStatusEnum.PENDING);
 
         step = JobInfoConverter.parseToJobStep(task, 0, new TestOutput());
-        Assert.assertEquals(step.getStatus(), JobStepStatusEnum.FINISHED);
+        assertEquals(step.getStatus(), JobStepStatusEnum.FINISHED);
     }
 
     public static class TestJob extends CubingJob {
@@ -87,4 +94,140 @@ public class JobInfoConverterTest {
             return 0;
         }
     }
+
+    @Test
+    public void testParseToJobStepStatusReturnsJobStepStatusStopped() {
+        ExecutableState executableState = ExecutableState.STOPPED;
+        JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+        assertFalse(jobStepStatusEnum.isComplete());
+        assertFalse(jobStepStatusEnum.isRunable());
+        assertEquals(128, jobStepStatusEnum.getCode());
+        assertEquals(JobStepStatusEnum.STOPPED, jobStepStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStepStatusReturnsJobStepStatusFinished() {
+        ExecutableState executableState = ExecutableState.SUCCEED;
+        JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+        assertTrue(jobStepStatusEnum.isComplete());
+        assertEquals(4, jobStepStatusEnum.getCode());
+        assertFalse(jobStepStatusEnum.isRunable());
+        assertEquals(JobStepStatusEnum.FINISHED, jobStepStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStepStatusReturnsJobStepStatusDiscarded() {
+        ExecutableState executableState = ExecutableState.DISCARDED;
+        JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+        assertTrue(jobStepStatusEnum.isComplete());
+        assertFalse(jobStepStatusEnum.isRunable());
+        assertEquals(16, jobStepStatusEnum.getCode());
+        assertEquals(JobStepStatusEnum.DISCARDED, jobStepStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStepStatusReturnsJobStepStatusRunning() {
+        ExecutableState executableState = ExecutableState.RUNNING;
+        JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+        assertEquals(2, jobStepStatusEnum.getCode());
+        assertFalse(jobStepStatusEnum.isComplete());
+        assertFalse(jobStepStatusEnum.isRunable());
+        assertEquals(JobStepStatusEnum.RUNNING, jobStepStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStepStatusReturnsJobStepStatusError() {
+        ExecutableState executableState = ExecutableState.ERROR;
+        JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+        assertTrue(jobStepStatusEnum.isRunable());
+        assertTrue(jobStepStatusEnum.isComplete());
+        assertEquals(8, jobStepStatusEnum.getCode());
+        assertEquals(JobStepStatusEnum.ERROR, jobStepStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStepStatusReturnsJobStepStatusPending() {
+        ExecutableState executableState = ExecutableState.READY;
+        JobStepStatusEnum jobStepStatusEnum = JobInfoConverter.parseToJobStepStatus(executableState);
+
+        assertTrue(jobStepStatusEnum.isRunable());
+        assertEquals(1, jobStepStatusEnum.getCode());
+        assertEquals(JobStepStatusEnum.PENDING, jobStepStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStatusReturnsJobStatusStopped() {
+        ExecutableState executableState = ExecutableState.STOPPED;
+        JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+        assertEquals(32, jobStatusEnum.getCode());
+        assertEquals(JobStatusEnum.STOPPED, jobStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStatusReturnsJobStatusFinished() {
+        ExecutableState executableState = ExecutableState.SUCCEED;
+        JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+        assertEquals(4, jobStatusEnum.getCode());
+        assertEquals(JobStatusEnum.FINISHED, jobStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStatusReturnsJobStatusError() {
+        ExecutableState executableState = ExecutableState.ERROR;
+        JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+        assertEquals(8, jobStatusEnum.getCode());
+        assertEquals(JobStatusEnum.ERROR, jobStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStatusReturnsJobStatusRunning() {
+        ExecutableState executableState = ExecutableState.RUNNING;
+        JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+        assertEquals(2, jobStatusEnum.getCode());
+        assertEquals(JobStatusEnum.RUNNING, jobStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStatusReturnsJobStatusDiscarded() {
+        ExecutableState executableState = ExecutableState.DISCARDED;
+        JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+        assertEquals(16, jobStatusEnum.getCode());
+        assertEquals(JobStatusEnum.DISCARDED, jobStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobStatusReturnsJobStatusPending() {
+        ExecutableState executableState = ExecutableState.READY;
+        JobStatusEnum jobStatusEnum = JobInfoConverter.parseToJobStatus(executableState);
+
+        assertEquals(1, jobStatusEnum.getCode());
+        assertEquals(JobStatusEnum.PENDING, jobStatusEnum);
+    }
+
+    @Test
+    public void testParseToJobInstanceQuietlyUsingNullCheckpointExecutable() {
+        TreeMap<String, Output> treeMap = new TreeMap<>();
+        JobInstance jobInstance = JobInfoConverter.parseToJobInstanceQuietly((CheckpointExecutable) null, treeMap);
+
+        assertNull(jobInstance);
+    }
+
+    @Test
+    public void testParseToJobInstanceQuietlyUsingNullCubingJob() {
+        ConcurrentHashMap<String, Output> concurrentHashMap = new ConcurrentHashMap<>();
+        JobInstance jobInstance = JobInfoConverter.parseToJobInstanceQuietly((CubingJob) null, concurrentHashMap);
+
+        assertNull(jobInstance);
+    }
+
 }
diff --git a/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/lookup/LookupExecutableUtilTest.java b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/lookup/LookupExecutableUtilTest.java
new file mode 100644
index 0000000..7cae7b2
--- /dev/null
+++ b/engine-mr/src/test/java/org/apache/kylin/engine/mr/steps/lookup/LookupExecutableUtilTest.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.kylin.engine.mr.steps.lookup;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.junit.Test;
+
+/**
+ * Unit tests for class {@link LookupExecutableUtil}.
+ *
+ * @see LookupExecutableUtil
+ */
+public class LookupExecutableUtilTest {
+
+    @Test
+    public void testSetAndGetLookupTableName() {
+        Map<String, String> map = new HashMap<>();
+        LookupExecutableUtil.setLookupTableName("bxI,*2 $r", map);
+
+        assertEquals("bxI,*2 $r", LookupExecutableUtil.getLookupTableName(map));
+    }
+
+    @Test
+    public void testSetAndGetSegments() {
+        Map<String, String> map = new HashMap<>();
+        List<String> segmentList = new ArrayList<>(0);
+        LookupExecutableUtil.setSegments(segmentList, map);
+
+        assertEquals(0, LookupExecutableUtil.getSegments(map).size());
+
+
+        map = new HashMap<>();
+        segmentList = new ArrayList<>(1);
+        segmentList.add("a a");
+        LookupExecutableUtil.setSegments(segmentList, map);
+
+        assertEquals(1, LookupExecutableUtil.getSegments(map).size());
+        assertEquals("[a a]", LookupExecutableUtil.getSegments(map).toString());
+    }
+
+}