You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@calcite.apache.org by el...@apache.org on 2016/05/31 23:24:08 UTC
[10/14] calcite git commit: [CALCITE-1264] Litmus argument
interpolation (Chris Baynes)
[CALCITE-1264] Litmus argument interpolation (Chris Baynes)
Close apache/calcite#241
Project: http://git-wip-us.apache.org/repos/asf/calcite/repo
Commit: http://git-wip-us.apache.org/repos/asf/calcite/commit/2f937c1b
Tree: http://git-wip-us.apache.org/repos/asf/calcite/tree/2f937c1b
Diff: http://git-wip-us.apache.org/repos/asf/calcite/diff/2f937c1b
Branch: refs/heads/branch-avatica-1.8
Commit: 2f937c1ba354726a340968a51224131a71017979
Parents: f3caf13
Author: Chris Baynes <bi...@gmail.com>
Authored: Mon May 30 18:15:42 2016 +0200
Committer: Julian Hyde <jh...@apache.org>
Committed: Mon May 30 23:15:43 2016 -0700
----------------------------------------------------------------------
.../java/org/apache/calcite/util/Litmus.java | 5 +++-
.../java/org/apache/calcite/util/UtilTest.java | 26 ++++++++++++++++++++
.../calcite/adapter/druid/DruidQuery.java | 4 +--
3 files changed, 32 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/calcite/blob/2f937c1b/core/src/main/java/org/apache/calcite/util/Litmus.java
----------------------------------------------------------------------
diff --git a/core/src/main/java/org/apache/calcite/util/Litmus.java b/core/src/main/java/org/apache/calcite/util/Litmus.java
index 0f0be55..dbdd0e3 100644
--- a/core/src/main/java/org/apache/calcite/util/Litmus.java
+++ b/core/src/main/java/org/apache/calcite/util/Litmus.java
@@ -16,6 +16,8 @@
*/
package org.apache.calcite.util;
+import org.slf4j.helpers.MessageFormatter;
+
/**
* Callback to be called when a test for validity succeeds or fails.
*/
@@ -24,7 +26,8 @@ public interface Litmus {
* an {@link java.lang.AssertionError} on failure. */
Litmus THROW = new Litmus() {
public boolean fail(String message, Object... args) {
- final String s = message == null ? null : String.format(message, args);
+ final String s = message == null
+ ? null : MessageFormatter.arrayFormat(message, args).getMessage();
throw new AssertionError(s);
}
http://git-wip-us.apache.org/repos/asf/calcite/blob/2f937c1b/core/src/test/java/org/apache/calcite/util/UtilTest.java
----------------------------------------------------------------------
diff --git a/core/src/test/java/org/apache/calcite/util/UtilTest.java b/core/src/test/java/org/apache/calcite/util/UtilTest.java
index 9afa6b6..e9af460 100644
--- a/core/src/test/java/org/apache/calcite/util/UtilTest.java
+++ b/core/src/test/java/org/apache/calcite/util/UtilTest.java
@@ -1791,6 +1791,32 @@ public class UtilTest {
}
assertThat(local2.get(), is("x"));
}
+
+ /** Test case for
+ * <a href="https://issues.apache.org/jira/browse/CALCITE-1264">[CALCITE-1264]
+ * Litmus argument interpolation</a>. */
+ @Test public void testLitmus() {
+ boolean b = checkLitmus(2, Litmus.THROW);
+ assertThat(b, is(true));
+ b = checkLitmus(2, Litmus.IGNORE);
+ assertThat(b, is(true));
+ try {
+ b = checkLitmus(-1, Litmus.THROW);
+ fail("expected fail, got " + b);
+ } catch (AssertionError e) {
+ assertThat(e.getMessage(), is("-1 is less than 0"));
+ }
+ b = checkLitmus(-1, Litmus.IGNORE);
+ assertThat(b, is(false));
+ }
+
+ private boolean checkLitmus(int i, Litmus litmus) {
+ if (i < 0) {
+ return litmus.fail("{} is less than {}", i, 0);
+ } else {
+ return litmus.succeed();
+ }
+ }
}
// End UtilTest.java
http://git-wip-us.apache.org/repos/asf/calcite/blob/2f937c1b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
----------------------------------------------------------------------
diff --git a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
index ee86dd3..bc51e88 100644
--- a/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
+++ b/druid/src/main/java/org/apache/calcite/adapter/druid/DruidQuery.java
@@ -127,7 +127,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel {
}
final String signature = signature();
if (!isValidSignature(signature)) {
- return litmus.fail("invalid signature [%s]", signature);
+ return litmus.fail("invalid signature [{}]", signature);
}
if (rels.isEmpty()) {
return litmus.fail("must have at least one rel");
@@ -161,7 +161,7 @@ public class DruidQuery extends AbstractRelNode implements BindableRel {
if (r instanceof Filter) {
final Filter filter = (Filter) r;
if (!isValidFilter(filter.getCondition())) {
- return litmus.fail("invalid filter [%s]", filter.getCondition());
+ return litmus.fail("invalid filter [{}]", filter.getCondition());
}
}
}