You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2015/06/23 20:36:28 UTC
[1/2] vxquery git commit: Added more default options to improve longs
during debugging.
Repository: vxquery
Updated Branches:
refs/heads/master 017283317 -> aeaa2f1f9
Added more default options to improve longs during debugging.
- Also included a missing rewrite rule to improve the plans.
Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/aeaa2f1f
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/aeaa2f1f
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/aeaa2f1f
Branch: refs/heads/master
Commit: aeaa2f1f95acb876a955a9315bf8d0f26bb11a83
Parents: 0cda903
Author: Eldon Carman <ec...@ucr.edu>
Authored: Tue Jun 23 11:34:50 2015 -0700
Committer: Eldon Carman <ec...@ucr.edu>
Committed: Tue Jun 23 11:35:53 2015 -0700
----------------------------------------------------------------------
.../java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java | 2 ++
.../src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java | 2 ++
2 files changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/vxquery/blob/aeaa2f1f/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
index b67402b..0db26a9 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/compiler/rewriter/RewriteRuleset.java
@@ -60,6 +60,7 @@ import edu.uci.ics.hyracks.algebricks.rewriter.rules.IntroduceAggregateCombinerR
import edu.uci.ics.hyracks.algebricks.rewriter.rules.IntroduceGroupByCombinerRule;
import edu.uci.ics.hyracks.algebricks.rewriter.rules.IntroduceProjectsRule;
import edu.uci.ics.hyracks.algebricks.rewriter.rules.IsolateHyracksOperatorsRule;
+import edu.uci.ics.hyracks.algebricks.rewriter.rules.MoveFreeVariableOperatorOutOfSubplanRule;
import edu.uci.ics.hyracks.algebricks.rewriter.rules.PullSelectOutOfEqJoin;
import edu.uci.ics.hyracks.algebricks.rewriter.rules.PushMapOperatorDownThroughProductRule;
import edu.uci.ics.hyracks.algebricks.rewriter.rules.PushProjectDownRule;
@@ -124,6 +125,7 @@ public class RewriteRuleset {
// Improvement for scalar child expressions
normalization.add(new EliminateSubplanForSingleItemsRule());
+ normalization.add(new MoveFreeVariableOperatorOutOfSubplanRule());
return normalization;
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/aeaa2f1f/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
index 4f0487a..9cae8e8 100644
--- a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
+++ b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
@@ -35,6 +35,8 @@ public abstract class AbstractXQueryTest {
XTestOptions opts = new XTestOptions();
opts.verbose = false;
opts.threads = 1;
+ opts.showQuery = true;
+ opts.showResult = true;
return opts;
}
[2/2] vxquery git commit: Updated the JUnit configuration to allow
for easier eclipse testing.
Posted by pr...@apache.org.
Updated the JUnit configuration to allow for easier eclipse testing.
Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo
Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/0cda9038
Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/0cda9038
Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/0cda9038
Branch: refs/heads/master
Commit: 0cda9038bf45d43ac65730f6f86bd7f578692280
Parents: 0172833
Author: Eldon Carman <ec...@ucr.edu>
Authored: Mon Jun 22 17:50:26 2015 -0700
Committer: Eldon Carman <ec...@ucr.edu>
Committed: Tue Jun 23 11:35:53 2015 -0700
----------------------------------------------------------------------
vxquery-xtest/pom.xml | 10 ++-
.../org/apache/vxquery/xtest/TestRunner.java | 3 +-
.../vxquery/xtest/AbstractXQueryTest.java | 80 ++++++++++++++++++++
.../org/apache/vxquery/xtest/VXQueryTest.java | 77 +++----------------
.../org/apache/vxquery/xtest/XMarkTest.java | 55 ++++++++++++++
.../java/org/apache/vxquery/xtest/XQTSTest.java | 56 ++++++++++++++
.../Queries/XQuery/XMark/Modified/q08.xq | 2 +-
7 files changed, 214 insertions(+), 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cda9038/vxquery-xtest/pom.xml
----------------------------------------------------------------------
diff --git a/vxquery-xtest/pom.xml b/vxquery-xtest/pom.xml
index bab2642..6fb2798 100644
--- a/vxquery-xtest/pom.xml
+++ b/vxquery-xtest/pom.xml
@@ -14,7 +14,10 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project
+ xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
@@ -114,6 +117,11 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- <argLine>-agentpath:"${yourkit.home}/bin/mac/libyjpagent.jnilib=sampling"</argLine> -->
+ <excludes>
+ <exclude>**/AbstractXQueryTest.java</exclude>
+ <exclude>**/XMarkTest.java</exclude>
+ <exclude>**/XQTSTest.java</exclude>
+ </excludes>
</configuration>
</plugin>
</plugins>
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cda9038/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java
index 1e3e4ca..8ca43e2 100644
--- a/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java
+++ b/vxquery-xtest/src/main/java/org/apache/vxquery/xtest/TestRunner.java
@@ -182,7 +182,8 @@ public class TestRunner {
if (opts.showResult) {
if (res.result == null) {
System.err.println("***Error: ");
- System.err.println(res.error.getStackTrace());
+ System.err.println("Message: " + res.error.getMessage());
+ res.error.printStackTrace();
} else {
System.err.println("***Result: ");
System.err.println(res.result);
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cda9038/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
new file mode 100644
index 0000000..4f0487a
--- /dev/null
+++ b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/AbstractXQueryTest.java
@@ -0,0 +1,80 @@
+/*
+* 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.vxquery.xtest;
+
+import static org.junit.Assert.fail;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+@RunWith(Parameterized.class)
+public abstract class AbstractXQueryTest {
+ private TestCase tc;
+ private TestRunner tr;
+
+ protected abstract XTestOptions getTestOptions();
+
+ protected static XTestOptions getDefaultTestOptions() {
+ XTestOptions opts = new XTestOptions();
+ opts.verbose = false;
+ opts.threads = 1;
+ return opts;
+ }
+
+ protected static void setCatalogToTestOptions(XTestOptions opts, String catalog) {
+ opts.catalog = catalog;
+ }
+
+ public AbstractXQueryTest(TestCase tc) throws Exception {
+ this.tc = tc;
+ tr = new TestRunner(getTestOptions());
+ }
+
+ @Before
+ public void beforeTest() throws Exception {
+ tr.open();
+ }
+
+ @Test
+ public void test() throws Exception {
+ TestCaseResult result = tr.run(tc);
+ switch (result.state) {
+ case EXPECTED_ERROR_GOT_DIFFERENT_ERROR:
+ case EXPECTED_ERROR_GOT_FAILURE:
+ case EXPECTED_ERROR_GOT_RESULT:
+ case EXPECTED_RESULT_GOT_DIFFERENT_RESULT:
+ case EXPECTED_RESULT_GOT_ERROR:
+ case EXPECTED_RESULT_GOT_FAILURE:
+ fail(result.state + " (" + result.time + " ms): " + result.testCase.getXQueryDisplayName());
+ break;
+ case EXPECTED_ERROR_GOT_SAME_ERROR:
+ case EXPECTED_RESULT_GOT_SAME_RESULT:
+ break;
+ case NO_RESULT_FILE:
+ break;
+ }
+ }
+
+ @After
+ public void afterTest() throws Exception {
+ tr.close();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cda9038/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/VXQueryTest.java
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/VXQueryTest.java b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/VXQueryTest.java
index b889eb6..91adbbf 100644
--- a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/VXQueryTest.java
+++ b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/VXQueryTest.java
@@ -16,95 +16,40 @@
*/
package org.apache.vxquery.xtest;
-import static org.junit.Assert.fail;
-
import java.io.File;
import java.util.Collection;
import org.apache.commons.lang3.StringUtils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
-public class VXQueryTest {
- private TestCase tc;
- private TestRunner tr;
+public class VXQueryTest extends AbstractXQueryTest{
private static String VXQUERY_CATALOG = StringUtils.join(new String[] { "src", "test", "resources",
"VXQueryCatalog.xml" }, File.separator);
- private static String XQTS_CATALOG = StringUtils.join(new String[] { "test-suites", "xqts", "XQTSCatalog.xml" },
- File.separator);
-
- private static boolean includeXqtsTests() {
- return new File(XQTS_CATALOG).isFile();
- }
- private static XTestOptions getVXQueryOptions() {
- XTestOptions opts = new XTestOptions();
- opts.catalog = VXQUERY_CATALOG;
- opts.verbose = false;
- opts.threads = 1;
- return opts;
- }
-
- private static XTestOptions getPreviousTestOptions() {
- XTestOptions opts = new XTestOptions();
- opts.catalog = XQTS_CATALOG;
- opts.previousTestResults = StringUtils.join(new String[] { "results", "xqts.txt" }, File.separator);
- opts.verbose = false;
- opts.threads = 1;
- return opts;
+ public VXQueryTest(TestCase tc) throws Exception {
+ super(tc);
}
@Parameters
public static Collection<Object[]> tests() throws Exception {
- JUnitTestCaseFactory jtcf_vxquery = new JUnitTestCaseFactory(getVXQueryOptions());
+ JUnitTestCaseFactory jtcf_vxquery = new JUnitTestCaseFactory(getOptions());
Collection<Object[]> tests = jtcf_vxquery.getList();
- if (includeXqtsTests()) {
- JUnitTestCaseFactory jtcf_previous = new JUnitTestCaseFactory(getPreviousTestOptions());
- // TODO Maven fails to run when including XQTS. (Error to many open files.)
- // tests.addAll(jtcf_previous.getList());
- }
return tests;
}
- public VXQueryTest(TestCase tc) throws Exception {
- this.tc = tc;
- tr = new TestRunner(getVXQueryOptions());
- }
-
- @Before
- public void beforeTest() throws Exception {
- tr.open();
- }
-
- @Test
- public void test() throws Exception {
- TestCaseResult result = tr.run(tc);
- switch (result.state) {
- case EXPECTED_ERROR_GOT_DIFFERENT_ERROR:
- case EXPECTED_ERROR_GOT_FAILURE:
- case EXPECTED_ERROR_GOT_RESULT:
- case EXPECTED_RESULT_GOT_DIFFERENT_RESULT:
- case EXPECTED_RESULT_GOT_ERROR:
- case EXPECTED_RESULT_GOT_FAILURE:
- fail(result.state + " (" + result.time + " ms): " + result.testCase.getXQueryDisplayName());
- break;
- case EXPECTED_ERROR_GOT_SAME_ERROR:
- case EXPECTED_RESULT_GOT_SAME_RESULT:
- break;
- case NO_RESULT_FILE:
- break;
- }
+ public static XTestOptions getOptions() {
+ XTestOptions options = getDefaultTestOptions();
+ setCatalogToTestOptions(options, VXQUERY_CATALOG);
+ return options;
}
- @After
- public void afterTest() throws Exception {
- tr.close();
+ @Override
+ protected XTestOptions getTestOptions() {
+ return getOptions();
}
}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cda9038/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XMarkTest.java
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XMarkTest.java b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XMarkTest.java
new file mode 100644
index 0000000..0e7838f
--- /dev/null
+++ b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XMarkTest.java
@@ -0,0 +1,55 @@
+/*
+* 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.vxquery.xtest;
+
+import java.io.File;
+import java.util.Collection;
+
+import org.apache.commons.lang3.StringUtils;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class XMarkTest extends AbstractXQueryTest {
+
+ private static String XMARK_CATALOG = StringUtils.join(new String[] { "src", "test", "resources",
+ "VXQueryXMarkCatalog.xml" }, File.separator);
+
+ public XMarkTest(TestCase tc) throws Exception {
+ super(tc);
+ }
+
+ @Parameters
+ public static Collection<Object[]> tests() throws Exception {
+ JUnitTestCaseFactory jtcf_vxquery = new JUnitTestCaseFactory(getOptions());
+ Collection<Object[]> tests = jtcf_vxquery.getList();
+ return tests;
+ }
+
+ public static XTestOptions getOptions() {
+ XTestOptions options = getDefaultTestOptions();
+ setCatalogToTestOptions(options, XMARK_CATALOG);
+ return options;
+ }
+
+ @Override
+ protected XTestOptions getTestOptions() {
+ return getOptions();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cda9038/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XQTSTest.java
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XQTSTest.java b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XQTSTest.java
new file mode 100644
index 0000000..68f00a3
--- /dev/null
+++ b/vxquery-xtest/src/test/java/org/apache/vxquery/xtest/XQTSTest.java
@@ -0,0 +1,56 @@
+/*
+* 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.vxquery.xtest;
+
+import java.io.File;
+import java.util.Collection;
+
+import org.apache.commons.lang3.StringUtils;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+@RunWith(Parameterized.class)
+public class XQTSTest extends AbstractXQueryTest {
+
+ private static String XQTS_CATALOG = StringUtils.join(new String[] { "test-suites", "xqts", "XQTSCatalog.xml" },
+ File.separator);
+
+ public XQTSTest(TestCase tc) throws Exception {
+ super(tc);
+ }
+
+ @Parameters
+ public static Collection<Object[]> tests() throws Exception {
+ JUnitTestCaseFactory jtcf_vxquery = new JUnitTestCaseFactory(getOptions());
+ Collection<Object[]> tests = jtcf_vxquery.getList();
+ return tests;
+ }
+
+ public static XTestOptions getOptions() {
+ XTestOptions options = getDefaultTestOptions();
+ setCatalogToTestOptions(options, XQTS_CATALOG);
+ options.previousTestResults = StringUtils.join(new String[] { "results", "xqts.txt" }, File.separator);
+ return options;
+ }
+
+ @Override
+ protected XTestOptions getTestOptions() {
+ return getOptions();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/vxquery/blob/0cda9038/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Modified/q08.xq
----------------------------------------------------------------------
diff --git a/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Modified/q08.xq b/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Modified/q08.xq
index fa6c1ea..1f0045a 100644
--- a/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Modified/q08.xq
+++ b/vxquery-xtest/src/test/resources/Queries/XQuery/XMark/Modified/q08.xq
@@ -20,7 +20,7 @@
let $collection1 := "people"
for $p in collection($collection1)/site/people/person
let $a := count(
- let $collection2 := "vxquery-xtest/src/test/resources/TestSources/XMarkData/closed_auctions/"
+ let $collection2 := "closed_auctions"
for $t in collection($collection2)/site/closed_auctions/closed_auction
where $t/buyer/@person = $p/@id
return $t