This is an automated email from the ASF dual-hosted git repository.
domgarguilo pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push:
new b5237ac40a Use unique table names in ShellIT (#5958)
b5237ac40a is described below
commit b5237ac40acb5095e33a48edaad401c6533f484f
Author: Dom G. <[email protected]>
AuthorDate: Thu Oct 16 13:45:39 2025 -0400
Use unique table names in ShellIT (#5958)
* replace hardcoded, possibly duplicate table names in ShellIT with unique
table names
---
.../org/apache/accumulo/test/shell/ShellIT.java | 165 ++++++++++++---------
1 file changed, 93 insertions(+), 72 deletions(-)
diff --git a/test/src/main/java/org/apache/accumulo/test/shell/ShellIT.java
b/test/src/main/java/org/apache/accumulo/test/shell/ShellIT.java
index d8fc412d90..bea0a69623 100644
--- a/test/src/main/java/org/apache/accumulo/test/shell/ShellIT.java
+++ b/test/src/main/java/org/apache/accumulo/test/shell/ShellIT.java
@@ -222,22 +222,26 @@ public class ShellIT extends SharedMiniClusterBase {
@Test
public void addGetSplitsTest() throws IOException {
+ String table = getUniqueNames(1)[0];
Shell.log.debug("Starting addGetSplits test ----------------------------");
exec("addsplits arg", false, "java.lang.IllegalStateException: Not in a
table context");
- exec("createtable test", true);
+ exec("createtable " + table, true);
exec("addsplits 1 \\x80", true);
exec("getsplits", true, "1\n\\x80");
exec("getsplits -m 1", true, "1");
exec("getsplits -b64", true, "MQ==\ngA==");
- exec("deletetable test -f", true, "Table: [test] has been deleted");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
public void insertDeleteScanTest() throws IOException {
+ String[] tables = getUniqueNames(2);
+ String table1 = tables[0];
+ String table2 = tables[1];
Shell.log.debug("Starting insertDeleteScan test ------------------------");
exec("insert r f q v", false, "java.lang.IllegalStateException: Not in a
table context");
exec("delete r f q", false, "java.lang.IllegalStateException: Not in a
table context");
- exec("createtable test", true);
+ exec("createtable " + table1, true);
exec("insert r f q v", true);
exec("scan", true, "r f:q []\tv");
exec("delete r f q", true);
@@ -254,49 +258,54 @@ public class ShellIT extends SharedMiniClusterBase {
exec("scan -e \\x8f", true, "\\x90 \\xA0:\\xB0 []\t\\xC0", false);
exec("delete \\x90 \\xa0 \\xb0", true);
exec("scan", true, "\\x90 \\xA0:\\xB0 []\t\\xC0", false);
- exec("deletetable test -f", true, "Table: [test] has been deleted");
+ exec("deletetable " + table1 + " -f", true, "Table: [" + table1 + "] has
been deleted");
// Add tests to verify use of --table parameter
- exec("createtable test2", true);
+ exec("createtable " + table2, true);
exec("notable", true);
exec("insert r f q v", false, "java.lang.IllegalStateException: Not in a
table context");
- exec("insert r1 f1 q1 v1 -t test2", true);
- exec("insert r2 f2 q2 v2 --table test2", true);
+ exec("insert r1 f1 q1 v1 -t " + table2, true);
+ exec("insert r2 f2 q2 v2 --table " + table2, true);
exec("delete r1 f1 q1 -t", false,
"org.apache.commons.cli.MissingArgumentException: Missing argument for
option:");
exec("delete r1 f1 q1 -t test3", false,
"org.apache.accumulo.core.client.TableNotFoundException:");
- exec("scan -t test2", true, "r1 f1:q1 []\tv1\nr2 f2:q2 []\tv2");
- exec("delete r1 f1 q1 -t test2", true);
- exec("scan -t test2", true, "r1 f1:q1 []\tv1", false);
- exec("scan -t test2", true, "r2 f2:q2 []\tv2", true);
- exec("delete r2 f2 q2 --table test2", true);
- exec("scan -t test2", true, "r1 f1:q1 []\tv1", false);
- exec("scan -t test2", true, "r2 f2:q2 []\tv2", false);
- exec("deletetable test2 -f", true, "Table: [test2] has been deleted");
+ exec("scan -t " + table2, true, "r1 f1:q1 []\tv1\nr2 f2:q2 []\tv2");
+ exec("delete r1 f1 q1 -t " + table2, true);
+ exec("scan -t " + table2, true, "r1 f1:q1 []\tv1", false);
+ exec("scan -t " + table2, true, "r2 f2:q2 []\tv2", true);
+ exec("delete r2 f2 q2 --table " + table2, true);
+ exec("scan -t " + table2, true, "r1 f1:q1 []\tv1", false);
+ exec("scan -t " + table2, true, "r2 f2:q2 []\tv2", false);
+ exec("deletetable " + table2 + " -f", true, "Table: [" + table2 + "] has
been deleted");
}
@Test
public void insertIntoSpecifiedTableTest() throws IOException {
+ String[] tables = getUniqueNames(3);
+ String table1 = tables[0];
+ String table2 = tables[1];
+ String table3 = tables[2];
Shell.log.debug("Starting insertIntoSpecifiedTableTest -----------------");
// create two tables for insertion tests
- exec("createtable tab1", true);
- exec("createtable tab2", true);
- // insert data into tab2 while in tab2 context
- exec("insert row1 f q tab2", true);
+ exec("createtable " + table1, true);
+ exec("createtable " + table2, true);
+ // insert data into table2 while in table2 context
+ exec("insert row1 f q " + table2, true);
// insert another with the table and t argument to verify also works
- exec("insert row2 f q tab2 --table tab2", true);
- exec("insert row3 f q tab2 -t tab2", true);
+ exec("insert row2 f q " + table2 + " --table " + table2, true);
+ exec("insert row3 f q " + table2 + " -t " + table2, true);
// leave all table contexts
exec("notable", true);
// without option cannot insert when not in a table context, also cannot
add to a table
// using 'accumulo shell -e "insert ...." fron command line due to no
table context being set.
- exec("insert row1 f q tab1", false, "java.lang.IllegalStateException: Not
in a table context");
- // but using option can insert to a table with tablename option without
being in a table context
- exec("insert row1 f q tab1 --table tab1", true);
- exec("insert row4 f q tab2 -t tab2", true);
- exec("table tab2", true);
+ exec("insert row1 f q " + table1, false,
+ "java.lang.IllegalStateException: Not in a table context");
+ // but using option can insert to a table with tablename option while out
of context
+ exec("insert row1 f q " + table1 + " --table " + table1, true);
+ exec("insert row4 f q " + table2 + " -t " + table2, true);
+ exec("table " + table2, true);
// can also insert into another table even if a different table context
- exec("insert row2 f q tab1 -t tab1", true);
+ exec("insert row2 f q " + table1 + " -t " + table1, true);
exec("notable", true);
// must supply a tablename if option is used
exec("insert row5 f q tab5 --table", false,
@@ -304,30 +313,31 @@ public class ShellIT extends SharedMiniClusterBase {
exec("insert row5 f q tab5 --t", false,
"org.apache.commons.cli.AmbiguousOptionException: Ambiguous option:
'--t'");
// verify expected data is in both tables
- exec("scan -t tab1", true, "row1 f:q []\ttab1\nrow2 f:q []\ttab1");
- exec("scan -t tab2", true,
- "row1 f:q []\ttab2\nrow2 f:q []\ttab2\nrow3 f:q []\ttab2\nrow4 f:q
[]\ttab2");
+ exec("scan -t " + table1, true, "row1 f:q []\t" + table1 + "\nrow2 f:q
[]\t" + table1);
+ exec("scan -t " + table2, true, "row1 f:q []\t" + table2 + "\nrow2 f:q
[]\t" + table2
+ + "\nrow3 f:q []\t" + table2 + "\nrow4 f:q []\t" + table2);
// check that if in table context, inserting into a non-existent table
does not change context
- exec("createtable tab3", true);
- exec("table tab3", true);
- exec("insert row1 f1 q1 tab3", true);
- exec("insert row2 f2 q2 tab3 --table idontexist", false,
+ exec("createtable " + table3, true);
+ exec("table " + table3, true);
+ exec("insert row1 f1 q1 " + table3, true);
+ exec("insert row2 f2 q2 " + table3 + " --table idontexist", false,
"org.apache.accumulo.core.client.TableNotFoundException:");
- exec("insert row2 f2 q2 tab3 -t idontexist", false,
+ exec("insert row2 f2 q2 " + table3 + " -t idontexist", false,
"org.apache.accumulo.core.client.TableNotFoundException:");
- exec("insert row3 f3 q3 tab3", true); // should be able to insert w/o
changing tables
- // verify expected data is in tab3
- exec("scan", true, "row1 f1:q1 []\ttab3\nrow3 f3:q3 []\ttab3");
+ exec("insert row3 f3 q3 " + table3, true); // should be able to insert w/o
changing tables
+ // verify expected data is in table3
+ exec("scan", true, "row1 f1:q1 []\t" + table3 + "\nrow3 f3:q3 []\t" +
table3);
// cleanup
- exec("deletetable tab1 -f", true, "Table: [tab1] has been deleted");
- exec("deletetable tab2 -f", true, "Table: [tab2] has been deleted");
- exec("deletetable tab3 -f", true, "Table: [tab3] has been deleted");
+ exec("deletetable " + table1 + " -f", true, "Table: [" + table1 + "] has
been deleted");
+ exec("deletetable " + table2 + " -f", true, "Table: [" + table2 + "] has
been deleted");
+ exec("deletetable " + table3 + " -f", true, "Table: [" + table3 + "] has
been deleted");
}
@Test
public void deleteManyTest() throws IOException {
+ String table = getUniqueNames(1)[0];
exec("deletemany", false, "java.lang.IllegalStateException: Not in a table
context");
- exec("createtable test", true);
+ exec("createtable " + table, true);
exec("deletemany", true, "\n");
exec("insert 0 0 0 0 -ts 0");
@@ -352,7 +362,7 @@ public class ShellIT extends SharedMiniClusterBase {
true, "[DELETED] 2 2:2 [] 2");
exec("setauths -c ", true);
- exec("deletetable test -f", true, "Table: [test] has been deleted");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
@@ -383,46 +393,51 @@ public class ShellIT extends SharedMiniClusterBase {
@Test
public void duContextTest() throws Exception {
Shell.log.debug("Starting du context test --------------------------");
- exec("createtable t", true);
- exec("du", true, "0 [t]");
- exec("deletetable t -f", true, "Table: [t] has been deleted");
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table, true);
+ exec("du", true, "0 [" + table + "]");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
public void duTest() throws IOException {
Shell.log.debug("Starting DU test --------------------------");
- exec("createtable t", true);
- exec("du t", true, "0 [t]");
- exec("deletetable t -f", true, "Table: [t] has been deleted");
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table, true);
+ exec("du " + table, true, "0 [" + table + "]");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
public void duPatternTest() throws IOException {
Shell.log.debug("Starting DU with pattern test
--------------------------");
- exec("createtable t", true);
- exec("createtable tt", true);
- exec("du -p t.*", true, "0 [t, tt]");
- exec("deletetable t -f", true, "Table: [t] has been deleted");
- exec("deletetable tt -f", true, "Table: [tt] has been deleted");
+ String tableBase = getUniqueNames(1)[0];
+ String table1 = tableBase + "_1";
+ String table2 = tableBase + "_2";
+ exec("createtable " + table1, true);
+ exec("createtable " + table2, true);
+ exec("du -p " + tableBase + ".*", true, "0 [" + table1 + ", " + table2 +
"]");
+ exec("deletetable " + table1 + " -f", true, "Table: [" + table1 + "] has
been deleted");
+ exec("deletetable " + table2 + " -f", true, "Table: [" + table2 + "] has
been deleted");
}
@Test
public void scanTimestampTest() throws IOException {
- String name = getUniqueNames(1)[0];
+ String table = getUniqueNames(1)[0];
Shell.log.debug("Starting scanTimestamp test ------------------------");
- exec("createtable " + name, true);
+ exec("createtable " + table, true);
exec("insert r f q v -ts 0", true);
exec("scan -st", true, "r f:q [] 0\tv");
exec("scan -st -f 0", true, " : [] 0\t");
exec("deletemany -f", true);
- exec("deletetable " + name + " -f", true, "Table: [" + name + "] has been
deleted");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
public void scanFewTest() throws IOException {
Shell.log.debug("Starting scanFew test ------------------------");
- String name = getUniqueNames(1)[0];
- exec("createtable " + name, true);
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table, true);
// historically, showing few did not pertain to ColVis or Timestamp
exec("insert 1 123 123456 -l '12345678' -ts 123456789 1234567890", true);
exec("setauths -s 12345678", true);
@@ -435,13 +450,14 @@ public class ShellIT extends SharedMiniClusterBase {
exec("scan -st -f 5 -fm
org.apache.accumulo.core.util.format.BinaryFormatter", true,
expectedFew);
exec("setauths -c", true);
- exec("deletetable " + name + " -f", true, "Table: [" + name + "] has been
deleted");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
public void scanDateStringFormatterTest() throws IOException {
Shell.log.debug("Starting scan dateStringFormatter test
--------------------------");
- exec("createtable t", true);
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table, true);
exec("insert r f q v -ts 0", true);
@SuppressWarnings("deprecation")
DateFormat dateFormat =
@@ -456,14 +472,15 @@ public class ShellIT extends SharedMiniClusterBase {
expected);
exec("scan -fm org.apache.accumulo.core.util.format.DateStringFormatter",
true,
expectedNoTimestamp);
- exec("deletetable t -f", true, "Table: [t] has been deleted");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
public void grepTest() throws IOException {
Shell.log.debug("Starting grep test --------------------------");
exec("grep", false, "java.lang.IllegalStateException: Not in a table
context");
- exec("createtable t", true);
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table, true);
exec("setauths -s vis", true);
exec("insert r f q v -ts 0 -l vis", true);
@@ -478,12 +495,12 @@ public class ShellIT extends SharedMiniClusterBase {
exec("grep r -st", true, expectedTimestamp);
exec("grep r -st -f 1", true, expectedTimestamp);
exec("setauths -c", true);
- exec("deletetable t -f", true, "Table: [t] has been deleted");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
@Test
void configPropertyTest() throws IOException {
- final String table = "testtable";
+ final String table = getUniqueNames(1)[0];
final String filterProperty = "config -t " + table + " -f ";
final String setProperty = "config -t " + table + " -s ";
List<String> expectedStrings = new ArrayList<>();
@@ -533,7 +550,7 @@ public class ShellIT extends SharedMiniClusterBase {
void configTest() throws IOException {
Shell.log.debug("Starting config property type test
-------------------------");
- String testTable = "test";
+ String testTable = getUniqueNames(1)[0];
exec("createtable " + testTable, true);
for (Property property : Property.values()) {
@@ -673,14 +690,15 @@ public class ShellIT extends SharedMiniClusterBase {
writer.println("table.custom.test1=true");
writer.println("table.custom.test2=false");
writer.close();
- exec("createtable test --propFile " + file.getAbsolutePath()
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table + " --propFile " + file.getAbsolutePath()
+ " -prop table.custom.test3=optional", true);
- assertTrue(shell.getAccumuloClient().tableOperations().exists("test"));
+ assertTrue(shell.getAccumuloClient().tableOperations().exists(table));
Map<String,String> tableIds =
shell.getAccumuloClient().tableOperations().tableIdMap();
TableConfiguration tableConf =
-
getCluster().getServerContext().getTableConfiguration(TableId.of(tableIds.get("test")));
+
getCluster().getServerContext().getTableConfiguration(TableId.of(tableIds.get(table)));
assertEquals("true", tableConf.get("table.custom.test1"));
assertEquals("false", tableConf.get("table.custom.test2"));
assertEquals("optional", tableConf.get("table.custom.test3"));
@@ -699,7 +717,8 @@ public class ShellIT extends SharedMiniClusterBase {
@Test
public void setIterTest() throws IOException {
Shell.log.debug("Starting setiter test --------------------------");
- exec("createtable t", true);
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table, true);
String cmdJustClass = "setiter -class VersioningIterator -p 1";
exec(cmdJustClass, false, "java.lang.IllegalArgumentException", false);
@@ -724,7 +743,7 @@ public class ShellIT extends SharedMiniClusterBase {
// TODO can't verify this as config -t fails, functionality verified in
ShellServerIT
- exec("deletetable t -f", true, "Table: [t] has been deleted");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
// This test addresses a bug (#2356) where if a table with a tableId of
character length 1
@@ -803,7 +822,8 @@ public class ShellIT extends SharedMiniClusterBase {
@Test
public void testMaxSplitsOption() throws Exception {
Shell.log.debug("Starting testMaxSplits test ------------------");
- exec("createtable maxtab", true);
+ String table = getUniqueNames(1)[0];
+ exec("createtable " + table, true);
exec("addsplits 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s
t", true);
exec("getsplits -m 31", true,
"0\n1\n2\n3\n4\n5\n6\n7\n8\n9\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\n");
@@ -820,5 +840,6 @@ public class ShellIT extends SharedMiniClusterBase {
// are returned.
exec("getsplits -m 0", true,
"0\n1\n2\n3\n4\n5\n6\n7\n8\n9\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\n");
+ exec("deletetable " + table + " -f", true, "Table: [" + table + "] has
been deleted");
}
}