From 668b27338a5e091c00ad100467f6afcd88ff5dbb Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Wed, 3 Mar 2021 12:15:46 +0100 Subject: [PATCH 1/3] Introduce common connector test for JDBC connectors The connectors based on base-jdbc share a lot of common functionality and tests, so they will benefit from common test code as well. --- .../plugin/jdbc/BaseJdbcConnectorTest.java | 22 +++++++++++++++++++ .../plugin/jdbc/TestJdbcConnectorTest.java | 3 +-- plugin/trino-clickhouse/pom.xml | 7 ++++++ .../TestClickHouseConnectorTest.java | 4 ++-- plugin/trino-memsql/pom.xml | 7 ++++++ .../memsql/TestMemSqlConnectorTest.java | 4 ++-- plugin/trino-mysql/pom.xml | 7 ++++++ .../plugin/mysql/BaseMySqlConnectorTest.java | 4 ++-- plugin/trino-oracle/pom.xml | 7 ++++++ .../oracle/BaseOracleConnectorTest.java | 4 ++-- plugin/trino-postgresql/pom.xml | 7 ++++++ .../TestPostgreSqlConnectorTest.java | 4 ++-- plugin/trino-sqlserver/pom.xml | 7 ++++++ .../sqlserver/TestSqlServerConnectorTest.java | 4 ++-- 14 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java diff --git a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java new file mode 100644 index 000000000000..c58de234babc --- /dev/null +++ b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/BaseJdbcConnectorTest.java @@ -0,0 +1,22 @@ +/* + * Licensed 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 io.trino.plugin.jdbc; + +import io.trino.testing.BaseConnectorTest; + +public abstract class BaseJdbcConnectorTest + extends BaseConnectorTest +{ + // TODO move common tests from connector-specific classes here +} diff --git a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java index 3ebf3da1727f..425b7ebf4266 100644 --- a/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java +++ b/plugin/trino-base-jdbc/src/test/java/io/trino/plugin/jdbc/TestJdbcConnectorTest.java @@ -14,7 +14,6 @@ package io.trino.plugin.jdbc; import com.google.common.collect.ImmutableMap; -import io.trino.testing.BaseConnectorTest; import io.trino.testing.QueryRunner; import io.trino.testing.sql.JdbcSqlExecutor; import io.trino.testing.sql.TestTable; @@ -27,7 +26,7 @@ import static io.trino.plugin.jdbc.H2QueryRunner.createH2QueryRunner; public class TestJdbcConnectorTest - extends BaseConnectorTest + extends BaseJdbcConnectorTest { private Map properties; diff --git a/plugin/trino-clickhouse/pom.xml b/plugin/trino-clickhouse/pom.xml index 5fce19188ebc..d99d6c902c0a 100644 --- a/plugin/trino-clickhouse/pom.xml +++ b/plugin/trino-clickhouse/pom.xml @@ -100,6 +100,13 @@ + + io.trino + trino-base-jdbc + test-jar + test + + io.trino trino-main diff --git a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java index 1a0328f41267..26ed1fe776fb 100644 --- a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java +++ b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java @@ -14,7 +14,7 @@ package io.trino.plugin.clickhouse; import com.google.common.collect.ImmutableMap; -import io.trino.testing.BaseConnectorTest; +import io.trino.plugin.jdbc.BaseJdbcConnectorTest; import io.trino.testing.MaterializedResult; import io.trino.testing.QueryRunner; import io.trino.testing.sql.TestTable; @@ -31,7 +31,7 @@ import static org.assertj.core.api.Assertions.assertThat; public class TestClickHouseConnectorTest - extends BaseConnectorTest + extends BaseJdbcConnectorTest { private TestingClickHouseServer clickhouseServer; diff --git a/plugin/trino-memsql/pom.xml b/plugin/trino-memsql/pom.xml index 96b7c2d49912..76ea5f7f6d11 100644 --- a/plugin/trino-memsql/pom.xml +++ b/plugin/trino-memsql/pom.xml @@ -90,6 +90,13 @@ + + io.trino + trino-base-jdbc + test-jar + test + + io.trino trino-main diff --git a/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java b/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java index f3224088f59a..1495f631c06d 100644 --- a/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java +++ b/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java @@ -14,9 +14,9 @@ package io.trino.plugin.memsql; import com.google.common.collect.ImmutableMap; +import io.trino.plugin.jdbc.BaseJdbcConnectorTest; import io.trino.sql.planner.plan.AggregationNode; import io.trino.sql.planner.plan.FilterNode; -import io.trino.testing.BaseConnectorTest; import io.trino.testing.MaterializedResult; import io.trino.testing.MaterializedRow; import io.trino.testing.QueryRunner; @@ -43,7 +43,7 @@ import static org.testng.Assert.assertTrue; public class TestMemSqlConnectorTest - extends BaseConnectorTest + extends BaseJdbcConnectorTest { protected TestingMemSqlServer memSqlServer; diff --git a/plugin/trino-mysql/pom.xml b/plugin/trino-mysql/pom.xml index 4f1b47394777..b6067c513b65 100644 --- a/plugin/trino-mysql/pom.xml +++ b/plugin/trino-mysql/pom.xml @@ -104,6 +104,13 @@ + + io.trino + trino-base-jdbc + test-jar + test + + io.trino trino-main diff --git a/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java b/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java index 1cd5373f28d7..fb48372f0e64 100644 --- a/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java +++ b/plugin/trino-mysql/src/test/java/io/trino/plugin/mysql/BaseMySqlConnectorTest.java @@ -15,12 +15,12 @@ import com.google.common.collect.ImmutableList; import io.trino.Session; +import io.trino.plugin.jdbc.BaseJdbcConnectorTest; import io.trino.sql.planner.plan.AggregationNode; import io.trino.sql.planner.plan.ExchangeNode; import io.trino.sql.planner.plan.FilterNode; import io.trino.sql.planner.plan.MarkDistinctNode; import io.trino.sql.planner.plan.ProjectNode; -import io.trino.testing.BaseConnectorTest; import io.trino.testing.MaterializedResult; import io.trino.testing.MaterializedRow; import io.trino.testing.sql.SqlExecutor; @@ -43,7 +43,7 @@ import static org.testng.Assert.assertTrue; public abstract class BaseMySqlConnectorTest - extends BaseConnectorTest + extends BaseJdbcConnectorTest { @Override protected boolean supportsDelete() diff --git a/plugin/trino-oracle/pom.xml b/plugin/trino-oracle/pom.xml index 6ef6f6d13d74..3f45930d6a4c 100644 --- a/plugin/trino-oracle/pom.xml +++ b/plugin/trino-oracle/pom.xml @@ -109,6 +109,13 @@ + + io.trino + trino-base-jdbc + test-jar + test + + io.trino trino-main diff --git a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java index 6f58ed88c135..1e83bbff5c7a 100644 --- a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java +++ b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/BaseOracleConnectorTest.java @@ -16,10 +16,10 @@ import com.google.common.collect.ImmutableList; import io.trino.Session; import io.trino.execution.QueryInfo; +import io.trino.plugin.jdbc.BaseJdbcConnectorTest; import io.trino.sql.planner.plan.AggregationNode; import io.trino.sql.planner.plan.FilterNode; import io.trino.sql.planner.plan.ProjectNode; -import io.trino.testing.BaseConnectorTest; import io.trino.testing.MaterializedResult; import io.trino.testing.ResultWithQueryId; import io.trino.testing.sql.SqlExecutor; @@ -39,7 +39,7 @@ import static org.testng.Assert.assertTrue; public abstract class BaseOracleConnectorTest - extends BaseConnectorTest + extends BaseJdbcConnectorTest { @Override protected boolean supportsDelete() diff --git a/plugin/trino-postgresql/pom.xml b/plugin/trino-postgresql/pom.xml index d4803d0fa5ba..01ded25b7f80 100644 --- a/plugin/trino-postgresql/pom.xml +++ b/plugin/trino-postgresql/pom.xml @@ -112,6 +112,13 @@ + + io.trino + trino-base-jdbc + test-jar + test + + io.trino trino-jmx diff --git a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java index 53f9cc7c400a..cc9ca6c27855 100644 --- a/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java +++ b/plugin/trino-postgresql/src/test/java/io/trino/plugin/postgresql/TestPostgreSqlConnectorTest.java @@ -15,12 +15,12 @@ import com.google.common.collect.ImmutableList; import io.trino.Session; +import io.trino.plugin.jdbc.BaseJdbcConnectorTest; import io.trino.sql.planner.plan.AggregationNode; import io.trino.sql.planner.plan.ExchangeNode; import io.trino.sql.planner.plan.FilterNode; import io.trino.sql.planner.plan.MarkDistinctNode; import io.trino.sql.planner.plan.ProjectNode; -import io.trino.testing.BaseConnectorTest; import io.trino.testing.QueryRunner; import io.trino.testing.sql.JdbcSqlExecutor; import io.trino.testing.sql.TestTable; @@ -48,7 +48,7 @@ import static org.testng.Assert.assertTrue; public class TestPostgreSqlConnectorTest - extends BaseConnectorTest + extends BaseJdbcConnectorTest { protected TestingPostgreSqlServer postgreSqlServer; diff --git a/plugin/trino-sqlserver/pom.xml b/plugin/trino-sqlserver/pom.xml index b902e5f37979..f89fe75bd02e 100644 --- a/plugin/trino-sqlserver/pom.xml +++ b/plugin/trino-sqlserver/pom.xml @@ -95,6 +95,13 @@ + + io.trino + trino-base-jdbc + test-jar + test + + io.trino trino-main diff --git a/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java b/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java index 9e2c3e151c1e..e9088daab510 100644 --- a/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java +++ b/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java @@ -15,12 +15,12 @@ import com.google.common.collect.ImmutableMap; import io.trino.Session; +import io.trino.plugin.jdbc.BaseJdbcConnectorTest; import io.trino.sql.planner.plan.AggregationNode; import io.trino.sql.planner.plan.ExchangeNode; import io.trino.sql.planner.plan.FilterNode; import io.trino.sql.planner.plan.MarkDistinctNode; import io.trino.sql.planner.plan.ProjectNode; -import io.trino.testing.BaseConnectorTest; import io.trino.testing.QueryRunner; import io.trino.testing.sql.TestTable; import io.trino.tpch.TpchTable; @@ -43,7 +43,7 @@ import static org.testng.Assert.assertTrue; public class TestSqlServerConnectorTest - extends BaseConnectorTest + extends BaseJdbcConnectorTest { protected TestingSqlServer sqlServer; From c43485467cc649350d370e73c86497082457fc56 Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Wed, 3 Mar 2021 22:28:08 +0100 Subject: [PATCH 2/3] Fix formatting --- .../clickhouse/TestClickHouseConnectorTest.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java index 26ed1fe776fb..4f1c5596fccb 100644 --- a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java +++ b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java @@ -40,10 +40,14 @@ protected QueryRunner createQueryRunner() throws Exception { this.clickhouseServer = closeAfterClass(new TestingClickHouseServer()); - return createClickHouseQueryRunner(clickhouseServer, ImmutableMap.of(), ImmutableMap.builder() - .put("clickhouse.map-string-as-varchar", "true") - .put("allow-drop-table", "true") - .build(), TpchTable.getTables()); + return createClickHouseQueryRunner( + clickhouseServer, + ImmutableMap.of(), + ImmutableMap.builder() + .put("clickhouse.map-string-as-varchar", "true") + .put("allow-drop-table", "true") + .build(), + TpchTable.getTables()); } @Override From 97778576b94a50c1834fda84de14e7d27fc05143 Mon Sep 17 00:00:00 2001 From: Piotr Findeisen Date: Wed, 3 Mar 2021 22:29:02 +0100 Subject: [PATCH 3/3] Use REQUIRED_TPCH_TABLES in BCTs --- .../trino/plugin/clickhouse/TestClickHouseConnectorTest.java | 3 +-- .../java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java | 3 +-- .../java/io/trino/plugin/oracle/TestOracleConnectorTest.java | 3 +-- .../io/trino/plugin/oracle/TestOraclePoolConnectorTest.java | 3 +-- .../oracle/TestRemarksReportingOraclePoolConnectorTest.java | 3 +-- .../io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java | 3 +-- 6 files changed, 6 insertions(+), 12 deletions(-) diff --git a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java index 4f1c5596fccb..8586cbde11b9 100644 --- a/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java +++ b/plugin/trino-clickhouse/src/test/java/io/trino/plugin/clickhouse/TestClickHouseConnectorTest.java @@ -18,7 +18,6 @@ import io.trino.testing.MaterializedResult; import io.trino.testing.QueryRunner; import io.trino.testing.sql.TestTable; -import io.trino.tpch.TpchTable; import org.testng.SkipException; import org.testng.annotations.Test; @@ -47,7 +46,7 @@ protected QueryRunner createQueryRunner() .put("clickhouse.map-string-as-varchar", "true") .put("allow-drop-table", "true") .build(), - TpchTable.getTables()); + REQUIRED_TPCH_TABLES); } @Override diff --git a/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java b/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java index 1495f631c06d..1d3a7c8063e0 100644 --- a/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java +++ b/plugin/trino-memsql/src/test/java/io/trino/plugin/memsql/TestMemSqlConnectorTest.java @@ -21,7 +21,6 @@ import io.trino.testing.MaterializedRow; import io.trino.testing.QueryRunner; import io.trino.testing.sql.TestTable; -import io.trino.tpch.TpchTable; import org.intellij.lang.annotations.Language; import org.testng.SkipException; import org.testng.annotations.AfterClass; @@ -52,7 +51,7 @@ protected QueryRunner createQueryRunner() throws Exception { memSqlServer = new TestingMemSqlServer(); - return createMemSqlQueryRunner(memSqlServer, ImmutableMap.of(), TpchTable.getTables()); + return createMemSqlQueryRunner(memSqlServer, ImmutableMap.of(), REQUIRED_TPCH_TABLES); } @AfterClass(alwaysRun = true) diff --git a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConnectorTest.java b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConnectorTest.java index 72c38ebe5c1c..366f27490b90 100644 --- a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConnectorTest.java +++ b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOracleConnectorTest.java @@ -17,7 +17,6 @@ import io.airlift.testing.Closeables; import io.trino.testing.QueryRunner; import io.trino.testing.sql.SqlExecutor; -import io.trino.tpch.TpchTable; import org.testng.annotations.AfterClass; import org.testng.annotations.Test; @@ -53,7 +52,7 @@ protected QueryRunner createQueryRunner() .put("oracle.connection-pool.enabled", "false") .put("oracle.remarks-reporting.enabled", "false") .build(), - TpchTable.getTables()); + REQUIRED_TPCH_TABLES); } @AfterClass(alwaysRun = true) diff --git a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOraclePoolConnectorTest.java b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOraclePoolConnectorTest.java index 48fb5452898d..dbc6cd11497e 100644 --- a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOraclePoolConnectorTest.java +++ b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestOraclePoolConnectorTest.java @@ -17,7 +17,6 @@ import io.airlift.testing.Closeables; import io.trino.testing.QueryRunner; import io.trino.testing.sql.SqlExecutor; -import io.trino.tpch.TpchTable; import org.testng.annotations.AfterClass; import org.testng.annotations.Test; @@ -49,7 +48,7 @@ protected QueryRunner createQueryRunner() .put("oracle.connection-pool.enabled", "true") .put("oracle.remarks-reporting.enabled", "false") .build(), - TpchTable.getTables()); + REQUIRED_TPCH_TABLES); } @AfterClass(alwaysRun = true) diff --git a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestRemarksReportingOraclePoolConnectorTest.java b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestRemarksReportingOraclePoolConnectorTest.java index 24a21bbe6fde..b69513491ca1 100644 --- a/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestRemarksReportingOraclePoolConnectorTest.java +++ b/plugin/trino-oracle/src/test/java/io/trino/plugin/oracle/TestRemarksReportingOraclePoolConnectorTest.java @@ -17,7 +17,6 @@ import io.airlift.testing.Closeables; import io.trino.testing.QueryRunner; import io.trino.testing.sql.SqlExecutor; -import io.trino.tpch.TpchTable; import org.testng.annotations.AfterClass; import java.io.IOException; @@ -46,7 +45,7 @@ protected QueryRunner createQueryRunner() .put("oracle.connection-pool.enabled", "true") .put("oracle.remarks-reporting.enabled", "true") .build(), - TpchTable.getTables()); + REQUIRED_TPCH_TABLES); } @AfterClass(alwaysRun = true) diff --git a/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java b/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java index e9088daab510..45ea665c22dd 100644 --- a/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java +++ b/plugin/trino-sqlserver/src/test/java/io/trino/plugin/sqlserver/TestSqlServerConnectorTest.java @@ -23,7 +23,6 @@ import io.trino.sql.planner.plan.ProjectNode; import io.trino.testing.QueryRunner; import io.trino.testing.sql.TestTable; -import io.trino.tpch.TpchTable; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; @@ -53,7 +52,7 @@ protected QueryRunner createQueryRunner() { sqlServer = closeAfterClass(new TestingSqlServer()); sqlServer.start(); - return createSqlServerQueryRunner(sqlServer, ImmutableMap.of(), ImmutableMap.of(), TpchTable.getTables()); + return createSqlServerQueryRunner(sqlServer, ImmutableMap.of(), ImmutableMap.of(), REQUIRED_TPCH_TABLES); } @Override