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>