This is an automated email from the ASF dual-hosted git repository.
ferenc-csaky pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-kudu.git
The following commit(s) were added to refs/heads/main by this push:
new e569fa7 [FLINK-37690] Fix Kudu test table create/cleanup
e569fa7 is described below
commit e569fa7b973783a600782d78723a79dfa656201d
Author: Ferenc Csaky <[email protected]>
AuthorDate: Tue Jun 23 13:32:57 2026 +0200
[FLINK-37690] Fix Kudu test table create/cleanup
---
.../connector/kudu/connector/KuduTestBase.java | 9 +++++
.../kudu/format/KuduRowDataInputFormatTest.java | 34 +++++++++++--------
.../kudu/format/KuduRowInputFormatTest.java | 34 +++++++++++--------
.../connector/kudu/table/KuduDynamicSinkTest.java | 25 ++++++++------
.../kudu/table/KuduDynamicSourceTest.java | 38 ++++++++++++----------
.../kudu/table/KuduRowDataLookupFunctionTest.java | 11 ++++---
.../kudu/table/KuduTableSourceITCase.java | 11 ++++---
7 files changed, 96 insertions(+), 66 deletions(-)
diff --git
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/connector/KuduTestBase.java
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/connector/KuduTestBase.java
index 2b00efb..72150b2 100644
---
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/connector/KuduTestBase.java
+++
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/connector/KuduTestBase.java
@@ -58,6 +58,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.UUID;
import java.util.stream.Collectors;
import static org.junit.Assert.assertFalse;
@@ -178,6 +179,14 @@ public class KuduTestBase {
return tableInfo;
}
+ protected static KuduTableInfo uniqueBooksTableInfo(boolean
createIfNotExist) {
+ return booksTableInfo(uniqueTableName("books"), createIfNotExist);
+ }
+
+ private static String uniqueTableName(String prefix) {
+ return prefix + "_" + UUID.randomUUID().toString().replace("-", "");
+ }
+
public static List<Tuple5<Integer, String, String, Double, Integer>>
booksDataTuple() {
return Arrays.stream(booksTableData)
.map(
diff --git
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowDataInputFormatTest.java
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowDataInputFormatTest.java
index 8c4f648..21d3e58 100644
---
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowDataInputFormatTest.java
+++
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowDataInputFormatTest.java
@@ -38,7 +38,7 @@ class KuduRowDataInputFormatTest extends KuduTestBase {
@Test
void testInvalidKuduMaster() {
- KuduTableInfo tableInfo = booksTableInfo("books", false);
+ KuduTableInfo tableInfo = uniqueBooksTableInfo(false);
Assertions.assertThrows(
NullPointerException.class,
() -> new KuduRowDataInputFormat(null, new
RowResultRowDataConverter(), tableInfo));
@@ -58,28 +58,34 @@ class KuduRowDataInputFormatTest extends KuduTestBase {
@Test
void testInputFormat() throws Exception {
- KuduTableInfo tableInfo = booksTableInfo("books", true);
- setUpDatabase(tableInfo);
+ KuduTableInfo tableInfo = uniqueBooksTableInfo(true);
+ try {
+ setUpDatabase(tableInfo);
- List<RowData> rows = readRowDatas(tableInfo);
- Assertions.assertEquals(5, rows.size());
+ List<RowData> rows = readRowDatas(tableInfo);
+ Assertions.assertEquals(5, rows.size());
- cleanDatabase(tableInfo);
+ } finally {
+ cleanDatabase(tableInfo);
+ }
}
@Test
void testInputFormatWithProjection() throws Exception {
- KuduTableInfo tableInfo = booksTableInfo("books", true);
- setUpDatabase(tableInfo);
+ KuduTableInfo tableInfo = uniqueBooksTableInfo(true);
+ try {
+ setUpDatabase(tableInfo);
- List<RowData> rows = readRowDatas(tableInfo, "title", "id");
- Assertions.assertEquals(5, rows.size());
+ List<RowData> rows = readRowDatas(tableInfo, "title", "id");
+ Assertions.assertEquals(5, rows.size());
- for (RowData row : rows) {
- Assertions.assertEquals(2, row.getArity());
- }
+ for (RowData row : rows) {
+ Assertions.assertEquals(2, row.getArity());
+ }
- cleanDatabase(tableInfo);
+ } finally {
+ cleanDatabase(tableInfo);
+ }
}
private List<RowData> readRowDatas(KuduTableInfo tableInfo, String...
fieldProjection)
diff --git
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowInputFormatTest.java
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowInputFormatTest.java
index c5a9f46..50f4cfe 100644
---
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowInputFormatTest.java
+++
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/format/KuduRowInputFormatTest.java
@@ -35,7 +35,7 @@ class KuduRowInputFormatTest extends KuduTestBase {
@Test
void testInvalidKuduMaster() {
- KuduTableInfo tableInfo = booksTableInfo("books", false);
+ KuduTableInfo tableInfo = uniqueBooksTableInfo(false);
Assertions.assertThrows(
NullPointerException.class,
() -> new KuduRowInputFormat(null, new
RowResultRowConverter(), tableInfo));
@@ -53,28 +53,34 @@ class KuduRowInputFormatTest extends KuduTestBase {
@Test
void testInputFormat() throws Exception {
- KuduTableInfo tableInfo = booksTableInfo("books", true);
- setUpDatabase(tableInfo);
+ KuduTableInfo tableInfo = uniqueBooksTableInfo(true);
+ try {
+ setUpDatabase(tableInfo);
- List<Row> rows = readRows(tableInfo);
- Assertions.assertEquals(5, rows.size());
+ List<Row> rows = readRows(tableInfo);
+ Assertions.assertEquals(5, rows.size());
- cleanDatabase(tableInfo);
+ } finally {
+ cleanDatabase(tableInfo);
+ }
}
@Test
void testInputFormatWithProjection() throws Exception {
- KuduTableInfo tableInfo = booksTableInfo("books", true);
- setUpDatabase(tableInfo);
+ KuduTableInfo tableInfo = uniqueBooksTableInfo(true);
+ try {
+ setUpDatabase(tableInfo);
- List<Row> rows = readRows(tableInfo, "title", "id");
- Assertions.assertEquals(5, rows.size());
+ List<Row> rows = readRows(tableInfo, "title", "id");
+ Assertions.assertEquals(5, rows.size());
- for (Row row : rows) {
- Assertions.assertEquals(2, row.getArity());
- }
+ for (Row row : rows) {
+ Assertions.assertEquals(2, row.getArity());
+ }
- cleanDatabase(tableInfo);
+ } finally {
+ cleanDatabase(tableInfo);
+ }
}
private List<Row> readRows(KuduTableInfo tableInfo, String...
fieldProjection)
diff --git
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSinkTest.java
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSinkTest.java
index 7020519..8382887 100644
---
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSinkTest.java
+++
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSinkTest.java
@@ -33,13 +33,13 @@ import static
org.junit.jupiter.api.Assertions.assertNotNull;
/** Unit Tests for {@link
org.apache.flink.connector.kudu.table.KuduDynamicTableSink}. */
public class KuduDynamicSinkTest extends KuduTestBase {
- public static final String INPUT_TABLE = "books";
- public static StreamExecutionEnvironment env;
- public static TableEnvironment tEnv;
+ private StreamExecutionEnvironment env;
+ private TableEnvironment tEnv;
+ private KuduTableInfo tableInfo;
@BeforeEach
public void init() {
- KuduTableInfo tableInfo = booksTableInfo(INPUT_TABLE, true);
+ tableInfo = uniqueBooksTableInfo(true);
setUpDatabase(tableInfo);
env = StreamExecutionEnvironment.getExecutionEnvironment();
tEnv = StreamTableEnvironment.create(env);
@@ -47,15 +47,17 @@ public class KuduDynamicSinkTest extends KuduTestBase {
@AfterEach
public void clean() {
- KuduTableInfo tableInfo = booksTableInfo(INPUT_TABLE, true);
- cleanDatabase(tableInfo);
+ if (tableInfo != null) {
+ cleanDatabase(tableInfo);
+ tableInfo = null;
+ }
}
@Test
public void testKuduSink() {
String createSql =
"CREATE TABLE "
- + INPUT_TABLE
+ + tableInfo.getName()
+ "("
+ "id int PRIMARY KEY NOT ENFORCED,"
+ "title string,"
@@ -68,7 +70,7 @@ public class KuduDynamicSinkTest extends KuduTestBase {
+ 123245
+ "',"
+ " 'table-name'='"
- + INPUT_TABLE
+ + tableInfo.getName()
+ "','sink.max-buffer-size'='1024"
+ "','sink.flush-interval'='1000ms"
+ "','sink.operation-timeout'='500ms"
@@ -77,9 +79,12 @@ public class KuduDynamicSinkTest extends KuduTestBase {
+ ")";
tEnv.executeSql(createSql);
tEnv.executeSql(
- "insert into " + INPUT_TABLE + " values(1006,'test
title','test author',10.1,10)");
+ "insert into "
+ + tableInfo.getName()
+ + " values(1006,'test title','test author',10.1,10)");
CloseableIterator<Row> collected =
- tEnv.executeSql("select * from " + INPUT_TABLE + " where id
=1006").collect();
+ tEnv.executeSql("select * from " + tableInfo.getName() + "
where id =1006")
+ .collect();
assertNotNull(collected);
}
}
diff --git
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSourceTest.java
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSourceTest.java
index d7fbfef..19e1025 100644
---
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSourceTest.java
+++
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduDynamicSourceTest.java
@@ -39,13 +39,13 @@ import static
org.junit.jupiter.api.Assertions.assertNotNull;
/** Unit Tests for {@link
org.apache.flink.connector.kudu.table.KuduDynamicTableSource}. */
public class KuduDynamicSourceTest extends KuduTestBase {
- public static final String INPUT_TABLE = "books";
- public static StreamExecutionEnvironment env;
- public static TableEnvironment tEnv;
+ private StreamExecutionEnvironment env;
+ private TableEnvironment tEnv;
+ private KuduTableInfo tableInfo;
@BeforeEach
public void init() {
- KuduTableInfo tableInfo = booksTableInfo(INPUT_TABLE, true);
+ tableInfo = uniqueBooksTableInfo(true);
setUpDatabase(tableInfo);
env = StreamExecutionEnvironment.getExecutionEnvironment();
tEnv = StreamTableEnvironment.create(env);
@@ -53,8 +53,10 @@ public class KuduDynamicSourceTest extends KuduTestBase {
@AfterEach
public void clean() {
- KuduTableInfo tableInfo = booksTableInfo(INPUT_TABLE, true);
- cleanDatabase(tableInfo);
+ if (tableInfo != null) {
+ cleanDatabase(tableInfo);
+ tableInfo = null;
+ }
}
@Test
@@ -62,7 +64,7 @@ public class KuduDynamicSourceTest extends KuduTestBase {
// "id", "title", "author", "price", "quantity"
tEnv.executeSql(
"CREATE TABLE "
- + INPUT_TABLE
+ + tableInfo.getName()
+ "("
+ "id int PRIMARY KEY NOT ENFORCED,"
+ "title string,"
@@ -75,12 +77,12 @@ public class KuduDynamicSourceTest extends KuduTestBase {
+ getMasterAddress()
+ "',"
+ " 'table-name'='"
- + INPUT_TABLE
+ + tableInfo.getName()
+ "',"
+ "'scan.row-size'='10'"
+ ")");
- Iterator<Row> collected = tEnv.executeSql("SELECT * FROM " +
INPUT_TABLE).collect();
+ Iterator<Row> collected = tEnv.executeSql("SELECT * FROM " +
tableInfo.getName()).collect();
assertNotNull(collected);
}
@@ -88,7 +90,7 @@ public class KuduDynamicSourceTest extends KuduTestBase {
public void testProject() throws Exception {
tEnv.executeSql(
"CREATE TABLE "
- + INPUT_TABLE
+ + tableInfo.getName()
+ "("
+ "id int PRIMARY KEY NOT ENFORCED,"
+ "title string,"
@@ -101,13 +103,13 @@ public class KuduDynamicSourceTest extends KuduTestBase {
+ getMasterAddress()
+ "',"
+ " 'table-name'='"
- + INPUT_TABLE
+ + tableInfo.getName()
+ "',"
+ "'scan.row-size'='10'"
+ ")");
Iterator<Row> collected =
- tEnv.executeSql("SELECT id,title,author FROM " +
INPUT_TABLE).collect();
+ tEnv.executeSql("SELECT id,title,author FROM " +
tableInfo.getName()).collect();
assertNotNull(collected);
List<String> result =
CollectionUtil.iteratorToList(collected).stream()
@@ -130,7 +132,7 @@ public class KuduDynamicSourceTest extends KuduTestBase {
public void testLimit() throws Exception {
tEnv.executeSql(
"CREATE TABLE "
- + INPUT_TABLE
+ + tableInfo.getName()
+ "("
+ "id int PRIMARY KEY NOT ENFORCED,"
+ "title string,"
@@ -143,13 +145,13 @@ public class KuduDynamicSourceTest extends KuduTestBase {
+ getMasterAddress()
+ "',"
+ " 'table-name'='"
- + INPUT_TABLE
+ + tableInfo.getName()
+ "',"
+ "'scan.row-size'='10'"
+ ")");
Iterator<Row> collected =
- tEnv.executeSql("SELECT * FROM " + INPUT_TABLE + " LIMIT
1").collect();
+ tEnv.executeSql("SELECT * FROM " + tableInfo.getName() + "
LIMIT 1").collect();
List<String> result =
CollectionUtil.iteratorToList(collected).stream()
.map(Row::toString)
@@ -162,7 +164,7 @@ public class KuduDynamicSourceTest extends KuduTestBase {
public void testLookupJoin() {
tEnv.executeSql(
"CREATE TABLE "
- + INPUT_TABLE
+ + tableInfo.getName()
+ "("
+ "id int PRIMARY KEY NOT ENFORCED,"
+ "title string,"
@@ -175,7 +177,7 @@ public class KuduDynamicSourceTest extends KuduTestBase {
+ getMasterAddress()
+ "',"
+ " 'table-name'='"
- + INPUT_TABLE
+ + tableInfo.getName()
+ "',"
+ "'scan.row-size'='10'"
+ ")");
@@ -201,7 +203,7 @@ public class KuduDynamicSourceTest extends KuduTestBase {
tEnv.executeSql(
"SELECT d.id, isbn, title FROM datagen as d"
+ " JOIN "
- + INPUT_TABLE
+ + tableInfo.getName()
+ " FOR SYSTEM_TIME AS OF d.proctime
AS k"
+ " ON d.id=k.id"
+ " WHERE k.title='Java for dummies'")
diff --git
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduRowDataLookupFunctionTest.java
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduRowDataLookupFunctionTest.java
index c93391c..50e942a 100644
---
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduRowDataLookupFunctionTest.java
+++
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduRowDataLookupFunctionTest.java
@@ -37,19 +37,20 @@ import static
org.junit.jupiter.api.Assertions.assertNotNull;
/** Unit Tests for {@link KuduRowDataLookupFunction}. */
public class KuduRowDataLookupFunctionTest extends KuduTestBase {
- public static final String INPUT_TABLE = "books";
- public static KuduTableInfo tableInfo;
+ private KuduTableInfo tableInfo;
@BeforeEach
public void init() {
- tableInfo = booksTableInfo(INPUT_TABLE, true);
+ tableInfo = uniqueBooksTableInfo(true);
setUpDatabase(tableInfo);
}
@AfterEach
public void clean() {
- KuduTableInfo tableInfo = booksTableInfo(INPUT_TABLE, true);
- cleanDatabase(tableInfo);
+ if (tableInfo != null) {
+ cleanDatabase(tableInfo);
+ tableInfo = null;
+ }
}
@Test
diff --git
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduTableSourceITCase.java
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduTableSourceITCase.java
index 87c8828..c0758f4 100644
---
a/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduTableSourceITCase.java
+++
b/flink-connector-kudu/src/test/java/org/apache/flink/connector/kudu/table/KuduTableSourceITCase.java
@@ -42,7 +42,7 @@ public class KuduTableSourceITCase extends KuduTestBase {
@BeforeEach
void init() {
- tableInfo = booksTableInfo("books", true);
+ tableInfo = uniqueBooksTableInfo(true);
setUpDatabase(tableInfo);
tableEnv = KuduTableTestUtils.createTableEnvInBatchMode();
catalog = new KuduCatalog(getMasterAddress());
@@ -61,13 +61,13 @@ public class KuduTableSourceITCase extends KuduTestBase {
@Test
void testFullBatchScan() throws Exception {
CloseableIterator<Row> it =
- tableEnv.executeSql("select * from books order by
id").collect();
+ tableEnv.executeSql("select * from " + tableInfo.getName() + "
order by id")
+ .collect();
List<Row> results = new ArrayList<>();
it.forEachRemaining(results::add);
assertEquals(5, results.size());
assertEquals(
"+I[1001, Java for dummies, Tan Ah Teck, 11.11, 11]",
results.get(0).toString());
- tableEnv.executeSql("DROP TABLE books");
}
@Test
@@ -75,13 +75,14 @@ public class KuduTableSourceITCase extends KuduTestBase {
// (price > 30 and price < 40)
CloseableIterator<Row> it =
tableEnv.executeSql(
- "SELECT title FROM books WHERE id IN (1003,
1004) and "
+ "SELECT title FROM "
+ + tableInfo.getName()
+ + " WHERE id IN (1003, 1004) and "
+ "quantity < 40")
.collect();
List<Row> results = new ArrayList<>();
it.forEachRemaining(results::add);
assertEquals(1, results.size());
assertEquals("+I[More Java for more dummies]",
results.get(0).toString());
- tableEnv.executeSql("DROP TABLE books");
}
}