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 <[email protected]>