You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ni...@apache.org on 2020/01/29 10:46:42 UTC
[ignite] branch master updated: IGNITE-12583:
JdbcThinBulkLoadAbstractSelfTest parametrization (#7319)
This is an automated email from the ASF dual-hosted git repository.
nizhikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 21fab11 IGNITE-12583: JdbcThinBulkLoadAbstractSelfTest parametrization (#7319)
21fab11 is described below
commit 21fab1199887393d5c77e41f70acdd6c83ca61c8
Author: Vladsz83 <vl...@gmail.com>
AuthorDate: Wed Jan 29 13:46:28 2020 +0300
IGNITE-12583: JdbcThinBulkLoadAbstractSelfTest parametrization (#7319)
---
.../jdbc/suite/IgniteJdbcDriverTestSuite.java | 14 +---
...cThinBulkLoadAtomicPartitionedNearSelfTest.java | 39 ----------
.../JdbcThinBulkLoadAtomicPartitionedSelfTest.java | 39 ----------
.../JdbcThinBulkLoadAtomicReplicatedSelfTest.java | 39 ----------
...SelfTest.java => JdbcThinBulkLoadSelfTest.java} | 84 +++++++++++++---------
...lkLoadTransactionalPartitionedNearSelfTest.java | 39 ----------
...inBulkLoadTransactionalPartitionedSelfTest.java | 39 ----------
...hinBulkLoadTransactionalReplicatedSelfTest.java | 39 ----------
8 files changed, 52 insertions(+), 280 deletions(-)
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/suite/IgniteJdbcDriverTestSuite.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/suite/IgniteJdbcDriverTestSuite.java
index 97c7897..88d2c25 100644
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/suite/IgniteJdbcDriverTestSuite.java
+++ b/modules/clients/src/test/java/org/apache/ignite/jdbc/suite/IgniteJdbcDriverTestSuite.java
@@ -39,12 +39,7 @@ import org.apache.ignite.jdbc.JdbcThinMetadataSqlMatchTest;
import org.apache.ignite.jdbc.thin.JdbcThinAuthenticateConnectionSelfTest;
import org.apache.ignite.jdbc.thin.JdbcThinAutoCloseServerCursorTest;
import org.apache.ignite.jdbc.thin.JdbcThinBatchSelfTest;
-import org.apache.ignite.jdbc.thin.JdbcThinBulkLoadAtomicPartitionedNearSelfTest;
-import org.apache.ignite.jdbc.thin.JdbcThinBulkLoadAtomicPartitionedSelfTest;
-import org.apache.ignite.jdbc.thin.JdbcThinBulkLoadAtomicReplicatedSelfTest;
-import org.apache.ignite.jdbc.thin.JdbcThinBulkLoadTransactionalPartitionedNearSelfTest;
-import org.apache.ignite.jdbc.thin.JdbcThinBulkLoadTransactionalPartitionedSelfTest;
-import org.apache.ignite.jdbc.thin.JdbcThinBulkLoadTransactionalReplicatedSelfTest;
+import org.apache.ignite.jdbc.thin.JdbcThinBulkLoadSelfTest;
import org.apache.ignite.jdbc.thin.JdbcThinComplexDmlDdlCustomSchemaSelfTest;
import org.apache.ignite.jdbc.thin.JdbcThinComplexDmlDdlSelfTest;
import org.apache.ignite.jdbc.thin.JdbcThinComplexDmlDdlSkipReducerOnUpdateSelfTest;
@@ -202,12 +197,7 @@ import org.junit.runners.Suite;
JdbcThinMultiStatementSelfTest.class,
// New thin JDBC driver, DML tests
- JdbcThinBulkLoadAtomicPartitionedNearSelfTest.class,
- JdbcThinBulkLoadAtomicPartitionedSelfTest.class,
- JdbcThinBulkLoadAtomicReplicatedSelfTest.class,
- JdbcThinBulkLoadTransactionalPartitionedNearSelfTest.class,
- JdbcThinBulkLoadTransactionalPartitionedSelfTest.class,
- JdbcThinBulkLoadTransactionalReplicatedSelfTest.class,
+ JdbcThinBulkLoadSelfTest.class,
// New thin JDBC driver, full SQL tests
JdbcThinComplexDmlDdlSelfTest.class,
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicPartitionedNearSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicPartitionedNearSelfTest.java
deleted file mode 100644
index 887b1d9..0000000
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicPartitionedNearSelfTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.ignite.jdbc.thin;
-
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheMode;
-
-/** A {@link JdbcThinBulkLoadAbstractSelfTest} for partitioned atomic near-cache mode. */
-public class JdbcThinBulkLoadAtomicPartitionedNearSelfTest extends JdbcThinBulkLoadAbstractSelfTest {
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return CacheMode.PARTITIONED;
- }
-
- /** {@inheritDoc} */
- @Override protected CacheAtomicityMode atomicityMode() {
- return CacheAtomicityMode.ATOMIC;
- }
-
- /** {@inheritDoc} */
- @Override protected boolean nearCache() {
- return true;
- }
-}
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicPartitionedSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicPartitionedSelfTest.java
deleted file mode 100644
index 5581333..0000000
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicPartitionedSelfTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.ignite.jdbc.thin;
-
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheMode;
-
-/** A {@link JdbcThinBulkLoadAbstractSelfTest} for partitioned atomic mode. */
-public class JdbcThinBulkLoadAtomicPartitionedSelfTest extends JdbcThinBulkLoadAbstractSelfTest {
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return CacheMode.PARTITIONED;
- }
-
- /** {@inheritDoc} */
- @Override protected CacheAtomicityMode atomicityMode() {
- return CacheAtomicityMode.ATOMIC;
- }
-
- /** {@inheritDoc} */
- @Override protected boolean nearCache() {
- return false;
- }
-}
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicReplicatedSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicReplicatedSelfTest.java
deleted file mode 100644
index c3d69af..0000000
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAtomicReplicatedSelfTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.ignite.jdbc.thin;
-
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheMode;
-
-/** A {@link JdbcThinBulkLoadAbstractSelfTest} for replicated atomic near-cache mode. */
-public class JdbcThinBulkLoadAtomicReplicatedSelfTest extends JdbcThinBulkLoadAbstractSelfTest {
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return CacheMode.REPLICATED;
- }
-
- /** {@inheritDoc} */
- @Override protected CacheAtomicityMode atomicityMode() {
- return CacheAtomicityMode.ATOMIC;
- }
-
- /** {@inheritDoc} */
- @Override protected boolean nearCache() {
- return false;
- }
-}
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAbstractSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadSelfTest.java
similarity index 94%
rename from modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAbstractSelfTest.java
rename to modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadSelfTest.java
index f209826..7bacabc 100644
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadAbstractSelfTest.java
+++ b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadSelfTest.java
@@ -43,22 +43,29 @@ import org.apache.ignite.internal.processors.query.QueryUtils;
import org.apache.ignite.lang.IgniteClosure;
import org.apache.ignite.testframework.GridTestUtils;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import java.util.Arrays;
import static org.apache.ignite.cache.CacheMode.PARTITIONED;
import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
import static org.apache.ignite.internal.util.IgniteUtils.resolveIgnitePath;
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
+import static org.apache.ignite.cache.CacheAtomicityMode.ATOMIC;
+import static org.apache.ignite.cache.CacheAtomicityMode.TRANSACTIONAL;
/**
* COPY statement tests.
*/
-public abstract class JdbcThinBulkLoadAbstractSelfTest extends JdbcThinAbstractDmlStatementSelfTest {
- /** Subdirectory with CSV files */
+@RunWith(Parameterized.class)
+public class JdbcThinBulkLoadSelfTest extends JdbcThinAbstractDmlStatementSelfTest {
+ /** Subdirectory with CSV files. */
private static final String CSV_FILE_SUBDIR = "/modules/clients/src/test/resources/";
/** Default table name. */
private static final String TBL_NAME = "Person";
- /** A CSV file with zero records */
+ /** A CSV file with zero records. */
private static final String BULKLOAD_EMPTY_CSV_FILE =
Objects.requireNonNull(resolveIgnitePath(CSV_FILE_SUBDIR + "bulkload0.csv"))
.getAbsolutePath();
@@ -89,6 +96,31 @@ public abstract class JdbcThinBulkLoadAbstractSelfTest extends JdbcThinAbstractD
/** JDBC statement. */
private Statement stmt;
+ /** Parametrized run param : cacheMode. */
+ @Parameterized.Parameter(0)
+ public CacheMode cacheMode;
+
+ /** Parametrized run param : atomicity. */
+ @Parameterized.Parameter(1)
+ public CacheAtomicityMode atomicityMode;
+
+ /** Parametrized run param : near mode. */
+ @Parameterized.Parameter(2)
+ public Boolean isNear;
+
+ /** Test run configurations: Cache mode, atomicity type, is near. */
+ @Parameterized.Parameters
+ public static Collection<Object[]> runConfig() {
+ return Arrays.asList(new Object[][] {
+ {PARTITIONED, ATOMIC, true},
+ {PARTITIONED, ATOMIC, false},
+ {PARTITIONED, TRANSACTIONAL, true},
+ {PARTITIONED, TRANSACTIONAL, false},
+ {REPLICATED, ATOMIC, false},
+ {REPLICATED, TRANSACTIONAL, false},
+ });
+ }
+
/** {@inheritDoc} */
@Override protected CacheConfiguration cacheConfig() {
return cacheConfigWithIndexedTypes();
@@ -104,14 +136,14 @@ public abstract class JdbcThinBulkLoadAbstractSelfTest extends JdbcThinAbstractD
private CacheConfiguration cacheConfigWithIndexedTypes() {
CacheConfiguration<?,?> cache = defaultCacheConfiguration();
- cache.setCacheMode(cacheMode());
- cache.setAtomicityMode(atomicityMode());
+ cache.setCacheMode(cacheMode);
+ cache.setAtomicityMode(atomicityMode);
cache.setWriteSynchronizationMode(FULL_SYNC);
- if (cacheMode() == PARTITIONED)
+ if (cacheMode == PARTITIONED)
cache.setBackups(1);
- if (nearCache())
+ if (isNear)
cache.setNearConfiguration(new NearCacheConfiguration());
cache.setIndexedTypes(
@@ -149,27 +181,6 @@ public abstract class JdbcThinBulkLoadAbstractSelfTest extends JdbcThinAbstractD
return cache;
}
- /**
- * Returns true if we are testing near cache.
- *
- * @return true if we are testing near cache.
- */
- protected abstract boolean nearCache();
-
- /**
- * Returns cache atomicity mode we are testing.
- *
- * @return The cache atomicity mode we are testing.
- */
- protected abstract CacheAtomicityMode atomicityMode();
-
- /**
- * Returns cache mode we are testing.
- *
- * @return The cache mode we are testing.
- */
- protected abstract CacheMode cacheMode();
-
/** {@inheritDoc} */
@Override protected void beforeTest() throws Exception {
super.beforeTest();
@@ -573,14 +584,19 @@ public abstract class JdbcThinBulkLoadAbstractSelfTest extends JdbcThinAbstractD
execute(conn, "create table " + tblName +
" (id int primary key, age int, firstName varchar(30), lastName varchar(30))");
- int updatesCnt = stmt.executeUpdate(
- "copy from '" + BULKLOAD_TWO_LINES_CSV_FILE + "' into " + tblName +
- "(_key, age, firstName, lastName)" +
- " format csv");
+ try {
+ int updatesCnt = stmt.executeUpdate(
+ "copy from '" + BULKLOAD_TWO_LINES_CSV_FILE + "' into " + tblName +
+ "(_key, age, firstName, lastName)" +
+ " format csv");
- assertEquals(2, updatesCnt);
+ assertEquals(2, updatesCnt);
- checkCacheContents(tblName, true, 2);
+ checkCacheContents(tblName, true, 2);
+ }
+ finally {
+ execute(conn, "drop table " + tblName);
+ }
}
/**
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalPartitionedNearSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalPartitionedNearSelfTest.java
deleted file mode 100644
index 9336dd1..0000000
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalPartitionedNearSelfTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.ignite.jdbc.thin;
-
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheMode;
-
-/** A {@link JdbcThinBulkLoadAbstractSelfTest} for partitioned transactional near-cache mode. */
-public class JdbcThinBulkLoadTransactionalPartitionedNearSelfTest extends JdbcThinBulkLoadAbstractSelfTest {
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return CacheMode.PARTITIONED;
- }
-
- /** {@inheritDoc} */
- @Override protected CacheAtomicityMode atomicityMode() {
- return CacheAtomicityMode.TRANSACTIONAL;
- }
-
- /** {@inheritDoc} */
- @Override protected boolean nearCache() {
- return true;
- }
-}
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalPartitionedSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalPartitionedSelfTest.java
deleted file mode 100644
index d1dea2a..0000000
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalPartitionedSelfTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.ignite.jdbc.thin;
-
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheMode;
-
-/** A {@link JdbcThinBulkLoadAbstractSelfTest} for partitioned transactional mode. */
-public class JdbcThinBulkLoadTransactionalPartitionedSelfTest extends JdbcThinBulkLoadAbstractSelfTest {
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return CacheMode.PARTITIONED;
- }
-
- /** {@inheritDoc} */
- @Override protected CacheAtomicityMode atomicityMode() {
- return CacheAtomicityMode.TRANSACTIONAL;
- }
-
- /** {@inheritDoc} */
- @Override protected boolean nearCache() {
- return false;
- }
-}
diff --git a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalReplicatedSelfTest.java b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalReplicatedSelfTest.java
deleted file mode 100644
index 1c377fa..0000000
--- a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinBulkLoadTransactionalReplicatedSelfTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.ignite.jdbc.thin;
-
-import org.apache.ignite.cache.CacheAtomicityMode;
-import org.apache.ignite.cache.CacheMode;
-
-/** A {@link JdbcThinBulkLoadAbstractSelfTest} for replicated transactional mode. */
-public class JdbcThinBulkLoadTransactionalReplicatedSelfTest extends JdbcThinBulkLoadAbstractSelfTest {
- /** {@inheritDoc} */
- @Override protected CacheMode cacheMode() {
- return CacheMode.REPLICATED;
- }
-
- /** {@inheritDoc} */
- @Override protected CacheAtomicityMode atomicityMode() {
- return CacheAtomicityMode.TRANSACTIONAL;
- }
-
- /** {@inheritDoc} */
- @Override protected boolean nearCache() {
- return false;
- }
-}