Updated the error checking to search nested exceptions.
Project: http://git-wip-us.apache.org/repos/asf/vxquery/repo Commit: http://git-wip-us.apache.org/repos/asf/vxquery/commit/94c242df Tree: http://git-wip-us.apache.org/repos/asf/vxquery/tree/94c242df Diff: http://git-wip-us.apache.org/repos/asf/vxquery/diff/94c242df Branch: refs/heads/site Commit: 94c242df136252826827e0c424f77ca139f95e66 Parents: e2e115c Author: Preston Carman <[email protected]> Authored: Thu Feb 19 10:41:15 2015 -0800 Committer: Preston Carman <[email protected]> Committed: Thu Feb 19 10:41:15 2015 -0800 ---------------------------------------------------------------------- .../java/org/apache/vxquery/xtest/TestRunner.java | 16 +++++++++++++--- .../java/org/apache/vxquery/xtest/VXQueryTest.java | 13 ++++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/vxquery/blob/94c242df/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 e974bca..a5f0ba1 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 @@ -145,10 +145,20 @@ public class TestRunner { } throw e; } - } catch (SystemException e) { - res.error = e; } catch (Throwable e) { - res.error = e; + // Check for nested SystemExceptions. + Throwable error = e; + while (error != null) { + if (error instanceof SystemException) { + res.error = error; + break; + } + error = error.getCause(); + } + // Default + if (res.error == null) { + res.error = e; + } } finally { try { res.compare(); http://git-wip-us.apache.org/repos/asf/vxquery/blob/94c242df/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 95a20fa..b889eb6 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 @@ -22,6 +22,8 @@ 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; @@ -75,9 +77,13 @@ public class VXQueryTest { tr = new TestRunner(getVXQueryOptions()); } + @Before + public void beforeTest() throws Exception { + tr.open(); + } + @Test public void test() throws Exception { - tr.open(); TestCaseResult result = tr.run(tc); switch (result.state) { case EXPECTED_ERROR_GOT_DIFFERENT_ERROR: @@ -94,6 +100,11 @@ public class VXQueryTest { case NO_RESULT_FILE: break; } + } + + @After + public void afterTest() throws Exception { tr.close(); } + }
