This is an automated email from the ASF dual-hosted git repository.

gian pushed a commit to branch 0.12.2
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git


The following commit(s) were added to refs/heads/0.12.2 by this push:
     new 757d5e8  Uniformly set Calcite systemProperties for All Unit tests 
(#5451) (#5977)
757d5e8 is described below

commit 757d5e878f4bf36bcc9fa96eaa2edb881f5e3df7
Author: Jihoon Son <jihoon...@apache.org>
AuthorDate: Mon Jul 9 08:57:23 2018 -0700

    Uniformly set Calcite systemProperties for All Unit tests (#5451) (#5977)
    
    Fixes test failures reported in -
    https://github.com/druid-io/druid/issues/4909
    
    Issue is that If some test skips setting up Calcite system properties
    with proper encoding and loads calcite classes that use that property,
    All subsequent tests in the same JVM fails.
    
    To reproduce the issue - ExpressionsTest and CalciteQueryTest from IDE
    in this order.
    
    A better fix would be to not use System Properties in calcite, This
    will work for now.
    
    All new Calcite Unit tests that are added need to inherit
    CalciteTestBase.
---
 .../histogram/sql/QuantileSqlAggregatorTest.java     |  6 ++----
 .../druid/sql/avatica/DruidAvaticaHandlerTest.java   |  4 ++--
 .../io/druid/sql/avatica/DruidStatementTest.java     |  9 ++++-----
 .../java/io/druid/sql/calcite/CalciteQueryTest.java  |  4 ++--
 .../sql/calcite/expression/ExpressionsTest.java      |  3 ++-
 .../druid/sql/calcite/filtration/FiltrationTest.java |  3 ++-
 .../java/io/druid/sql/calcite/http/SqlQueryTest.java |  3 ++-
 .../io/druid/sql/calcite/http/SqlResourceTest.java   | 16 ++++++++++------
 .../io/druid/sql/calcite/planner/CalcitesTest.java   |  3 ++-
 .../io/druid/sql/calcite/schema/DruidSchemaTest.java |  8 +++-----
 .../SqlQueryTest.java => util/CalciteTestBase.java}  | 20 +++++++-------------
 11 files changed, 38 insertions(+), 41 deletions(-)

diff --git 
a/extensions-core/histogram/src/test/java/io/druid/query/aggregation/histogram/sql/QuantileSqlAggregatorTest.java
 
b/extensions-core/histogram/src/test/java/io/druid/query/aggregation/histogram/sql/QuantileSqlAggregatorTest.java
index 77f629e..5582cea 100644
--- 
a/extensions-core/histogram/src/test/java/io/druid/query/aggregation/histogram/sql/QuantileSqlAggregatorTest.java
+++ 
b/extensions-core/histogram/src/test/java/io/druid/query/aggregation/histogram/sql/QuantileSqlAggregatorTest.java
@@ -52,13 +52,13 @@ import io.druid.server.security.NoopEscalator;
 import io.druid.server.security.AuthConfig;
 import io.druid.server.security.AuthTestUtils;
 import io.druid.sql.calcite.filtration.Filtration;
-import io.druid.sql.calcite.planner.Calcites;
 import io.druid.sql.calcite.planner.DruidOperatorTable;
 import io.druid.sql.calcite.planner.DruidPlanner;
 import io.druid.sql.calcite.planner.PlannerConfig;
 import io.druid.sql.calcite.planner.PlannerFactory;
 import io.druid.sql.calcite.planner.PlannerResult;
 import io.druid.sql.calcite.schema.DruidSchema;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.calcite.util.CalciteTests;
 import io.druid.sql.calcite.util.QueryLogHook;
 import io.druid.sql.calcite.util.SpecificSegmentsQuerySegmentWalker;
@@ -74,7 +74,7 @@ import org.junit.rules.TemporaryFolder;
 import java.util.ArrayList;
 import java.util.List;
 
-public class QuantileSqlAggregatorTest
+public class QuantileSqlAggregatorTest extends CalciteTestBase
 {
   private static final String DATA_SOURCE = "foo";
 
@@ -90,8 +90,6 @@ public class QuantileSqlAggregatorTest
   @Before
   public void setUp() throws Exception
   {
-    Calcites.setSystemProperties();
-
     // Note: this is needed in order to properly register the serde for 
Histogram.
     new ApproximateHistogramDruidModule().configure(null);
 
diff --git 
a/sql/src/test/java/io/druid/sql/avatica/DruidAvaticaHandlerTest.java 
b/sql/src/test/java/io/druid/sql/avatica/DruidAvaticaHandlerTest.java
index 7b141ae..a978188 100644
--- a/sql/src/test/java/io/druid/sql/avatica/DruidAvaticaHandlerTest.java
+++ b/sql/src/test/java/io/druid/sql/avatica/DruidAvaticaHandlerTest.java
@@ -52,6 +52,7 @@ import io.druid.sql.calcite.planner.DruidOperatorTable;
 import io.druid.sql.calcite.planner.PlannerConfig;
 import io.druid.sql.calcite.planner.PlannerFactory;
 import io.druid.sql.calcite.schema.DruidSchema;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.calcite.util.CalciteTests;
 import io.druid.sql.calcite.util.QueryLogHook;
 import io.druid.sql.calcite.util.SpecificSegmentsQuerySegmentWalker;
@@ -89,7 +90,7 @@ import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.Executors;
 
-public class DruidAvaticaHandlerTest
+public class DruidAvaticaHandlerTest extends CalciteTestBase
 {
   private static final AvaticaServerConfig AVATICA_CONFIG = new 
AvaticaServerConfig()
   {
@@ -128,7 +129,6 @@ public class DruidAvaticaHandlerTest
   @Before
   public void setUp() throws Exception
   {
-    Calcites.setSystemProperties();
     walker = CalciteTests.createMockWalker(temporaryFolder.newFolder());
     final PlannerConfig plannerConfig = new PlannerConfig();
     final DruidSchema druidSchema = CalciteTests.createMockSchema(walker, 
plannerConfig);
diff --git a/sql/src/test/java/io/druid/sql/avatica/DruidStatementTest.java 
b/sql/src/test/java/io/druid/sql/avatica/DruidStatementTest.java
index d229549..f225a8d 100644
--- a/sql/src/test/java/io/druid/sql/avatica/DruidStatementTest.java
+++ b/sql/src/test/java/io/druid/sql/avatica/DruidStatementTest.java
@@ -24,14 +24,14 @@ import com.google.common.collect.Lists;
 import io.druid.java.util.common.DateTimes;
 import io.druid.math.expr.ExprMacroTable;
 import io.druid.server.security.AllowAllAuthenticator;
-import io.druid.server.security.NoopEscalator;
 import io.druid.server.security.AuthConfig;
 import io.druid.server.security.AuthTestUtils;
-import io.druid.sql.calcite.planner.Calcites;
+import io.druid.server.security.NoopEscalator;
 import io.druid.sql.calcite.planner.DruidOperatorTable;
 import io.druid.sql.calcite.planner.PlannerConfig;
 import io.druid.sql.calcite.planner.PlannerFactory;
 import io.druid.sql.calcite.schema.DruidSchema;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.calcite.util.CalciteTests;
 import io.druid.sql.calcite.util.QueryLogHook;
 import io.druid.sql.calcite.util.SpecificSegmentsQuerySegmentWalker;
@@ -46,7 +46,7 @@ import org.junit.rules.TemporaryFolder;
 
 import java.util.List;
 
-public class DruidStatementTest
+public class DruidStatementTest extends CalciteTestBase
 {
   @Rule
   public TemporaryFolder temporaryFolder = new TemporaryFolder();
@@ -60,7 +60,6 @@ public class DruidStatementTest
   @Before
   public void setUp() throws Exception
   {
-    Calcites.setSystemProperties();
     walker = CalciteTests.createMockWalker(temporaryFolder.newFolder());
     final PlannerConfig plannerConfig = new PlannerConfig();
     final DruidSchema druidSchema = CalciteTests.createMockSchema(
@@ -162,7 +161,7 @@ public class DruidStatementTest
     final String sql = "SELECT __time, cnt, dim1, dim2, m1 FROM druid.foo";
     final DruidStatement statement = new DruidStatement("", 0, null, () -> {
     }).prepare(plannerFactory, sql, -1, 
AllowAllAuthenticator.ALLOW_ALL_RESULT);
-    
+
     // First frame, ask for 2 rows.
     Meta.Frame frame = 
statement.execute().nextFrame(DruidStatement.START_OFFSET, 2);
     Assert.assertEquals(
diff --git a/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java 
b/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java
index a1e3f5f..19722de 100644
--- a/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/CalciteQueryTest.java
@@ -98,6 +98,7 @@ import io.druid.sql.calcite.planner.PlannerContext;
 import io.druid.sql.calcite.planner.PlannerFactory;
 import io.druid.sql.calcite.planner.PlannerResult;
 import io.druid.sql.calcite.schema.DruidSchema;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.calcite.util.CalciteTests;
 import io.druid.sql.calcite.util.QueryLogHook;
 import io.druid.sql.calcite.util.SpecificSegmentsQuerySegmentWalker;
@@ -124,7 +125,7 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
-public class CalciteQueryTest
+public class CalciteQueryTest extends CalciteTestBase
 {
   private static final Logger log = new Logger(CalciteQueryTest.class);
 
@@ -234,7 +235,6 @@ public class CalciteQueryTest
   @Before
   public void setUp() throws Exception
   {
-    Calcites.setSystemProperties();
     walker = CalciteTests.createMockWalker(temporaryFolder.newFolder());
   }
 
diff --git 
a/sql/src/test/java/io/druid/sql/calcite/expression/ExpressionsTest.java 
b/sql/src/test/java/io/druid/sql/calcite/expression/ExpressionsTest.java
index 13d3031..45d5033 100644
--- a/sql/src/test/java/io/druid/sql/calcite/expression/ExpressionsTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/expression/ExpressionsTest.java
@@ -40,6 +40,7 @@ import io.druid.sql.calcite.planner.Calcites;
 import io.druid.sql.calcite.planner.PlannerConfig;
 import io.druid.sql.calcite.planner.PlannerContext;
 import io.druid.sql.calcite.table.RowSignature;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.calcite.util.CalciteTests;
 import org.apache.calcite.avatica.util.TimeUnit;
 import org.apache.calcite.avatica.util.TimeUnitRange;
@@ -63,7 +64,7 @@ import org.junit.Test;
 import java.math.BigDecimal;
 import java.util.Map;
 
-public class ExpressionsTest
+public class ExpressionsTest extends CalciteTestBase
 {
   private static final DateTimeZone LOS_ANGELES = 
DateTimeZone.forID("America/Los_Angeles");
 
diff --git 
a/sql/src/test/java/io/druid/sql/calcite/filtration/FiltrationTest.java 
b/sql/src/test/java/io/druid/sql/calcite/filtration/FiltrationTest.java
index 059d62f..c7734c0 100644
--- a/sql/src/test/java/io/druid/sql/calcite/filtration/FiltrationTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/filtration/FiltrationTest.java
@@ -24,10 +24,11 @@ import io.druid.java.util.common.Intervals;
 import io.druid.query.filter.IntervalDimFilter;
 import io.druid.query.filter.NotDimFilter;
 import io.druid.segment.column.Column;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class FiltrationTest
+public class FiltrationTest extends CalciteTestBase
 {
   @Test
   public void testNotIntervals()
diff --git a/sql/src/test/java/io/druid/sql/calcite/http/SqlQueryTest.java 
b/sql/src/test/java/io/druid/sql/calcite/http/SqlQueryTest.java
index ea34420..08d06a1 100644
--- a/sql/src/test/java/io/druid/sql/calcite/http/SqlQueryTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/http/SqlQueryTest.java
@@ -22,11 +22,12 @@ package io.druid.sql.calcite.http;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.ImmutableMap;
 import io.druid.segment.TestHelper;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.http.SqlQuery;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class SqlQueryTest
+public class SqlQueryTest extends CalciteTestBase
 {
   @Test
   public void testSerde() throws Exception
diff --git a/sql/src/test/java/io/druid/sql/calcite/http/SqlResourceTest.java 
b/sql/src/test/java/io/druid/sql/calcite/http/SqlResourceTest.java
index fd12039..640d5e7 100644
--- a/sql/src/test/java/io/druid/sql/calcite/http/SqlResourceTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/http/SqlResourceTest.java
@@ -30,15 +30,15 @@ import io.druid.math.expr.ExprMacroTable;
 import io.druid.query.QueryInterruptedException;
 import io.druid.query.ResourceLimitExceededException;
 import io.druid.server.security.AllowAllAuthenticator;
-import io.druid.server.security.NoopEscalator;
 import io.druid.server.security.AuthConfig;
 import io.druid.server.security.AuthTestUtils;
-import io.druid.sql.calcite.planner.Calcites;
+import io.druid.server.security.NoopEscalator;
 import io.druid.sql.calcite.planner.DruidOperatorTable;
 import io.druid.sql.calcite.planner.PlannerConfig;
 import io.druid.sql.calcite.planner.PlannerContext;
 import io.druid.sql.calcite.planner.PlannerFactory;
 import io.druid.sql.calcite.schema.DruidSchema;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.calcite.util.CalciteTests;
 import io.druid.sql.calcite.util.QueryLogHook;
 import io.druid.sql.calcite.util.SpecificSegmentsQuerySegmentWalker;
@@ -60,7 +60,7 @@ import java.io.ByteArrayOutputStream;
 import java.util.List;
 import java.util.Map;
 
-public class SqlResourceTest
+public class SqlResourceTest extends CalciteTestBase
 {
   private static final ObjectMapper JSON_MAPPER = new DefaultObjectMapper();
 
@@ -76,10 +76,10 @@ public class SqlResourceTest
 
   private HttpServletRequest req;
 
+
   @Before
   public void setUp() throws Exception
   {
-    Calcites.setSystemProperties();
     walker = CalciteTests.createMockWalker(temporaryFolder.newFolder());
 
     final PlannerConfig plannerConfig = new PlannerConfig();
@@ -143,7 +143,9 @@ public class SqlResourceTest
   {
     final List<List<Object>> rows = doPost(
         new SqlQuery("SELECT COUNT(*), 'foo' FROM druid.foo", 
SqlQuery.ResultFormat.ARRAY, null),
-        new TypeReference<List<List<Object>>>() {}
+        new TypeReference<List<List<Object>>>()
+        {
+        }
     ).rhs;
 
     Assert.assertEquals(
@@ -317,6 +319,8 @@ public class SqlResourceTest
 
   private Pair<QueryInterruptedException, List<Map<String, Object>>> 
doPost(final SqlQuery query) throws Exception
   {
-    return doPost(query, new TypeReference<List<Map<String, Object>>>() {});
+    return doPost(query, new TypeReference<List<Map<String, Object>>>()
+    {
+    });
   }
 }
diff --git a/sql/src/test/java/io/druid/sql/calcite/planner/CalcitesTest.java 
b/sql/src/test/java/io/druid/sql/calcite/planner/CalcitesTest.java
index a330150..937ba7f 100644
--- a/sql/src/test/java/io/druid/sql/calcite/planner/CalcitesTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/planner/CalcitesTest.java
@@ -20,10 +20,11 @@
 package io.druid.sql.calcite.planner;
 
 import com.google.common.collect.ImmutableSortedSet;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class CalcitesTest
+public class CalcitesTest extends CalciteTestBase
 {
   @Test
   public void testEscapeStringLiteral()
diff --git a/sql/src/test/java/io/druid/sql/calcite/schema/DruidSchemaTest.java 
b/sql/src/test/java/io/druid/sql/calcite/schema/DruidSchemaTest.java
index 96e5dba..2c2d1b4 100644
--- a/sql/src/test/java/io/druid/sql/calcite/schema/DruidSchemaTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/schema/DruidSchemaTest.java
@@ -24,7 +24,6 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import io.druid.data.input.InputRow;
 import io.druid.java.util.common.Intervals;
-import io.druid.segment.writeout.OffHeapMemorySegmentWriteOutMediumFactory;
 import io.druid.query.aggregation.CountAggregatorFactory;
 import io.druid.query.aggregation.DoubleSumAggregatorFactory;
 import io.druid.query.aggregation.LongSumAggregatorFactory;
@@ -32,10 +31,11 @@ import 
io.druid.query.aggregation.hyperloglog.HyperUniquesAggregatorFactory;
 import io.druid.segment.IndexBuilder;
 import io.druid.segment.QueryableIndex;
 import io.druid.segment.incremental.IncrementalIndexSchema;
+import io.druid.segment.writeout.OffHeapMemorySegmentWriteOutMediumFactory;
 import io.druid.server.security.NoopEscalator;
-import io.druid.sql.calcite.planner.Calcites;
 import io.druid.sql.calcite.planner.PlannerConfig;
 import io.druid.sql.calcite.table.DruidTable;
+import io.druid.sql.calcite.util.CalciteTestBase;
 import io.druid.sql.calcite.util.CalciteTests;
 import io.druid.sql.calcite.util.SpecificSegmentsQuerySegmentWalker;
 import io.druid.sql.calcite.util.TestServerInventoryView;
@@ -58,7 +58,7 @@ import java.io.File;
 import java.util.List;
 import java.util.Map;
 
-public class DruidSchemaTest
+public class DruidSchemaTest extends CalciteTestBase
 {
   private static final PlannerConfig PLANNER_CONFIG_DEFAULT = new 
PlannerConfig();
 
@@ -83,8 +83,6 @@ public class DruidSchemaTest
   @Before
   public void setUp() throws Exception
   {
-    Calcites.setSystemProperties();
-
     final File tmpDir = temporaryFolder.newFolder();
     final QueryableIndex index1 = IndexBuilder.create()
                                               .tmpDir(new File(tmpDir, "1"))
diff --git a/sql/src/test/java/io/druid/sql/calcite/http/SqlQueryTest.java 
b/sql/src/test/java/io/druid/sql/calcite/util/CalciteTestBase.java
similarity index 56%
copy from sql/src/test/java/io/druid/sql/calcite/http/SqlQueryTest.java
copy to sql/src/test/java/io/druid/sql/calcite/util/CalciteTestBase.java
index ea34420..221ce4c 100644
--- a/sql/src/test/java/io/druid/sql/calcite/http/SqlQueryTest.java
+++ b/sql/src/test/java/io/druid/sql/calcite/util/CalciteTestBase.java
@@ -17,22 +17,16 @@
  * under the License.
  */
 
-package io.druid.sql.calcite.http;
+package io.druid.sql.calcite.util;
 
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.common.collect.ImmutableMap;
-import io.druid.segment.TestHelper;
-import io.druid.sql.http.SqlQuery;
-import org.junit.Assert;
-import org.junit.Test;
+import io.druid.sql.calcite.planner.Calcites;
+import org.junit.BeforeClass;
 
-public class SqlQueryTest
+public abstract class CalciteTestBase
 {
-  @Test
-  public void testSerde() throws Exception
+  @BeforeClass
+  public static void setupCalciteProperties()
   {
-    final ObjectMapper jsonMapper = TestHelper.makeJsonMapper();
-    final SqlQuery query = new SqlQuery("SELECT 1", 
SqlQuery.ResultFormat.ARRAY, ImmutableMap.of("useCache", false));
-    Assert.assertEquals(query, 
jsonMapper.readValue(jsonMapper.writeValueAsString(query), SqlQuery.class));
+    Calcites.setSystemProperties();
   }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@druid.apache.org
For additional commands, e-mail: dev-h...@druid.apache.org

Reply via email to