abdullah alamoudi has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1112

Change subject: Improve Test Classes
......................................................................

Improve Test Classes

This change enables ExecutionTestUtil to handle different
IntegrationUtil implementations. In addition, it enables mutation
of fields of SelectRuntimeFactory.

Change-Id: I0672ae13b9afce7965e651b543b0799e5ed84d06
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
M 
asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
M asterixdb/asterix-external-data/pom.xml
M 
asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/nontagged/AqlBinaryBooleanInspectorImpl.java
M 
asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/AsterixLSMPrimaryUpsertOperatorNodePushable.java
M 
hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/SelectOperator.java
M 
hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/impl/BinaryBooleanInspectorImpl.java
M 
hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/StreamSelectRuntimeFactory.java
8 files changed, 43 insertions(+), 25 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/12/1112/1

diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
index 03ed3c4..7cc6ec9 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/AsterixHyracksIntegrationUtil.java
@@ -83,6 +83,7 @@
                 }
             };
             ncStartThread.start();
+            ncStartThread.join();
         }
         hcc = new HyracksConnection(cc.getConfig().clientNetIpAddress, 
cc.getConfig().clientNetPort);
         ncs = nodeControllers.toArray(new 
NodeControllerService[nodeControllers.size()]);
@@ -217,15 +218,16 @@
      */
     public static void main(String[] args) {
         AsterixHyracksIntegrationUtil integrationUtil = new 
AsterixHyracksIntegrationUtil();
-        run(integrationUtil);
+        run(integrationUtil, false, false);
     }
 
-    protected static void run(final AsterixHyracksIntegrationUtil 
integrationUtil) {
+    protected static void run(final AsterixHyracksIntegrationUtil 
integrationUtil, boolean cleanupOnStart,
+            boolean cleanupOnShutdow) {
         Runtime.getRuntime().addShutdownHook(new Thread() {
             @Override
             public void run() {
                 try {
-                    integrationUtil.deinit(false);
+                    integrationUtil.deinit(cleanupOnShutdow);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -234,7 +236,7 @@
         try {
             System.setProperty(GlobalConfig.CONFIG_FILE_PROPERTY, 
"asterix-build-configuration.xml");
 
-            integrationUtil.init(false);
+            integrationUtil.init(cleanupOnStart);
             while (true) {
                 Thread.sleep(10000);
             }
diff --git 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
index 3195c39..c73be7a 100644
--- 
a/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
+++ 
b/asterixdb/asterix-app/src/test/java/org/apache/asterix/test/runtime/ExecutionTestUtil.java
@@ -44,15 +44,16 @@
 
     protected static final String TEST_CONFIG_FILE_NAME = 
"asterix-build-configuration.xml";
 
-    protected static TestGroup FailedGroup;
+    public static TestGroup FailedGroup;
 
     public static AsterixHyracksIntegrationUtil integrationUtil = new 
AsterixHyracksIntegrationUtil();
 
     public static List<ILibraryManager> setUp(boolean cleanup) throws 
Exception {
-        return setUp(cleanup, TEST_CONFIG_FILE_NAME);
+        return setUp(cleanup, TEST_CONFIG_FILE_NAME, integrationUtil, true);
     }
 
-    public static List<ILibraryManager> setUp(boolean cleanup, String 
configFile) throws Exception {
+    public static List<ILibraryManager> setUp(boolean cleanup, String 
configFile,
+            AsterixHyracksIntegrationUtil integrationUtil, boolean startHdfs) 
throws Exception {
         System.out.println("Starting setup");
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.info("Starting setup");
@@ -68,7 +69,9 @@
             LOGGER.info("initializing HDFS");
         }
 
-        HDFSCluster.getInstance().setup();
+        if (startHdfs) {
+            HDFSCluster.getInstance().setup();
+        }
 
         // Set the node resolver to be the identity resolver that expects node
         // names
@@ -92,6 +95,11 @@
     }
 
     public static void tearDown(boolean cleanup) throws Exception {
+        tearDown(cleanup, integrationUtil, true);
+    }
+
+    public static void tearDown(boolean cleanup, AsterixHyracksIntegrationUtil 
integrationUtil, boolean stopHdfs)
+            throws Exception {
         // validateBufferCacheState(); <-- Commented out until bug is fixed -->
         integrationUtil.deinit(cleanup);
         File outdir = new File(PATH_ACTUAL);
@@ -99,7 +107,9 @@
         if (files == null || files.length == 0) {
             outdir.delete();
         }
-        HDFSCluster.getInstance().cleanup();
+        if (stopHdfs) {
+            HDFSCluster.getInstance().cleanup();
+        }
 
         if (FailedGroup != null && FailedGroup.getTestCase().size() > 0) {
             File temp = File.createTempFile("failed", ".xml");
diff --git a/asterixdb/asterix-external-data/pom.xml 
b/asterixdb/asterix-external-data/pom.xml
index d4fa801..c3cf3c4 100644
--- a/asterixdb/asterix-external-data/pom.xml
+++ b/asterixdb/asterix-external-data/pom.xml
@@ -296,12 +296,7 @@
     <dependency>
       <groupId>com.couchbase.client</groupId>
       <artifactId>core-io</artifactId>
-      <version>1.2.8</version>
-    </dependency>
-    <dependency>
-      <groupId>io.reactivex</groupId>
-      <artifactId>rxjava</artifactId>
-      <version>1.0.15</version>
+      <version>1.3.2</version>
     </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
diff --git 
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/nontagged/AqlBinaryBooleanInspectorImpl.java
 
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/nontagged/AqlBinaryBooleanInspectorImpl.java
index 6729a28..a9a57d7 100644
--- 
a/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/nontagged/AqlBinaryBooleanInspectorImpl.java
+++ 
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/formats/nontagged/AqlBinaryBooleanInspectorImpl.java
@@ -25,12 +25,14 @@
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 
 public class AqlBinaryBooleanInspectorImpl implements IBinaryBooleanInspector {
+    private static final AqlBinaryBooleanInspectorImpl INSTANCE = new 
AqlBinaryBooleanInspectorImpl();
     public static final IBinaryBooleanInspectorFactory FACTORY = new 
IBinaryBooleanInspectorFactory() {
         private static final long serialVersionUID = 1L;
 
         @Override
         public IBinaryBooleanInspector 
createBinaryBooleanInspector(IHyracksTaskContext ctx) {
-            return new AqlBinaryBooleanInspectorImpl();
+            // Stateless class. No need to construct an object per call
+            return INSTANCE;
         }
     };
 
diff --git 
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/AsterixLSMPrimaryUpsertOperatorNodePushable.java
 
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/AsterixLSMPrimaryUpsertOperatorNodePushable.java
index afd6019..4bc1d23 100644
--- 
a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/AsterixLSMPrimaryUpsertOperatorNodePushable.java
+++ 
b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/operators/AsterixLSMPrimaryUpsertOperatorNodePushable.java
@@ -243,6 +243,8 @@
                         lsmAccessor.forceInsert(tuple);
                     }
                     recordWasInserted = true;
+                } else {
+                    System.out.println("a Delete record");
                 }
                 writeOutput(i, recordWasInserted);
                 i++;
diff --git 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/SelectOperator.java
 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/SelectOperator.java
index 4a24e59..fb77285 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/SelectOperator.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/operators/logical/SelectOperator.java
@@ -41,13 +41,13 @@
 
 public class SelectOperator extends AbstractLogicalOperator {
     private final Mutable<ILogicalExpression> condition;
-    private final boolean retainNull;
+    private final boolean retainMissing;
     private final LogicalVariable nullPlaceholderVar;
 
     public SelectOperator(Mutable<ILogicalExpression> condition, boolean 
retainNull,
             LogicalVariable nullPlaceholderVar) {
         this.condition = condition;
-        this.retainNull = retainNull;
+        this.retainMissing = retainNull;
         this.nullPlaceholderVar = nullPlaceholderVar;
     }
 
@@ -61,7 +61,7 @@
     }
 
     public boolean getRetainMissing() {
-        return retainNull;
+        return retainMissing;
     }
 
     public LogicalVariable getMissingPlaceholderVariable() throws 
AlgebricksException {
diff --git 
a/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/impl/BinaryBooleanInspectorImpl.java
 
b/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/impl/BinaryBooleanInspectorImpl.java
index 65768dd..98b8d66 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/impl/BinaryBooleanInspectorImpl.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-data/src/main/java/org/apache/hyracks/algebricks/data/impl/BinaryBooleanInspectorImpl.java
@@ -23,12 +23,14 @@
 import org.apache.hyracks.api.context.IHyracksTaskContext;
 
 public class BinaryBooleanInspectorImpl implements IBinaryBooleanInspector {
+    private static final BinaryBooleanInspectorImpl INSTANCE = new 
BinaryBooleanInspectorImpl();
     public static final IBinaryBooleanInspectorFactory FACTORY = new 
IBinaryBooleanInspectorFactory() {
         private static final long serialVersionUID = 1L;
 
         @Override
         public IBinaryBooleanInspector 
createBinaryBooleanInspector(IHyracksTaskContext ctx) {
-            return new BinaryBooleanInspectorImpl();
+            // A stateless class. no need to create an instance per call
+            return INSTANCE;
         }
     };
 
diff --git 
a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/StreamSelectRuntimeFactory.java
 
b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/StreamSelectRuntimeFactory.java
index 1bc5d51..ded4163 100644
--- 
a/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/StreamSelectRuntimeFactory.java
+++ 
b/hyracks-fullstack/algebricks/algebricks-runtime/src/main/java/org/apache/hyracks/algebricks/runtime/operators/std/StreamSelectRuntimeFactory.java
@@ -41,15 +41,15 @@
 
     private static final long serialVersionUID = 1L;
 
-    private final IScalarEvaluatorFactory cond;
+    protected final IScalarEvaluatorFactory cond;
 
-    private final IBinaryBooleanInspectorFactory binaryBooleanInspectorFactory;
+    protected final IBinaryBooleanInspectorFactory 
binaryBooleanInspectorFactory;
 
-    private final boolean retainMissing;
+    protected boolean retainMissing;
 
-    private final int missingPlaceholderVariableIndex;
+    protected int missingPlaceholderVariableIndex;
 
-    private final IMissingWriterFactory missingWriterFactory;
+    protected final IMissingWriterFactory missingWriterFactory;
 
     /**
      * @param cond
@@ -71,6 +71,11 @@
         this.missingWriterFactory = missingWriterFactory;
     }
 
+    public void retainMissing(boolean retainMissing, int index) {
+        this.retainMissing = retainMissing;
+        this.missingPlaceholderVariableIndex = index;
+    }
+
     @Override
     public String toString() {
         return "stream-select " + cond.toString();

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1112
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0672ae13b9afce7965e651b543b0799e5ed84d06
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <bamou...@gmail.com>

Reply via email to