Skip to content

Commit 937b2d3

Browse files
committed
[FIX] some wrong testcases
1. Inserted data is not deleted in some testcases, affecting subsequent testcases 2. The ObTableTest uses an incorrect ObTable handle to insert data, causing OB_NOT_MASTER error Link: https://code.alibaba-inc.com/oceanbase/obkv-table-client-java/codereview/12003917 * [FIX] some wrong testcases - inserted data was not cleanup after cases finish * [FIX] some wrong testcases - inserted data was not cleanup after cases finish
1 parent b220d76 commit 937b2d3

File tree

2 files changed

+91
-53
lines changed

2 files changed

+91
-53
lines changed

src/test/java/com/alipay/oceanbase/rpc/ObTableClientPartitionKeyTest.java

Lines changed: 80 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -84,73 +84,100 @@ public void close() throws Exception {
8484
@Test
8585
public void testInsert() throws Exception {
8686
long timestamp = System.currentTimeMillis();
87-
long affectRow = obTableClient.insert(TEST_TABLE, new Object[] { "partitionKey",
88-
"partition".getBytes(), timestamp }, new String[] { "V" },
89-
new Object[] { "aa".getBytes() });
90-
Assert.assertEquals(1, affectRow);
91-
92-
affectRow = obTableClient.insertOrUpdate(TEST_TABLE,
93-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timestamp },
94-
new String[] { "V" }, new Object[] { "bb".getBytes() });
95-
Assert.assertEquals(1, affectRow);
96-
97-
Map<String, Object> result = obTableClient.get(TEST_TABLE,
98-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timestamp },
99-
new String[] { "K", "Q", "T", "V" });
100-
Assert.assertEquals("partitionKey", new String((byte[]) result.get("K"), "UTF-8"));
101-
Assert.assertEquals("partition", new String((byte[]) result.get("Q"), "UTF-8"));
102-
Assert.assertEquals(timestamp, result.get("T"));
103-
Assert.assertEquals("bb", new String((byte[]) result.get("V"), "UTF-8"));
104-
87+
try {
88+
long affectRow = obTableClient.insert(TEST_TABLE, new Object[] { "partitionKey",
89+
"partition".getBytes(), timestamp }, new String[] { "V" },
90+
new Object[] { "aa".getBytes() });
91+
Assert.assertEquals(1, affectRow);
92+
93+
affectRow = obTableClient.insertOrUpdate(TEST_TABLE,
94+
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timestamp },
95+
new String[] { "V" }, new Object[] { "bb".getBytes() });
96+
Assert.assertEquals(1, affectRow);
97+
98+
Map<String, Object> result = obTableClient.get(TEST_TABLE,
99+
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timestamp },
100+
new String[] { "K", "Q", "T", "V" });
101+
Assert.assertEquals("partitionKey", new String((byte[]) result.get("K"), "UTF-8"));
102+
Assert.assertEquals("partition", new String((byte[]) result.get("Q"), "UTF-8"));
103+
Assert.assertEquals(timestamp, result.get("T"));
104+
Assert.assertEquals("bb", new String((byte[]) result.get("V"), "UTF-8"));
105+
} catch (Exception e) {
106+
e.printStackTrace();
107+
Assert.assertTrue(false);
108+
} finally {
109+
obTableClient.delete(TEST_TABLE, new Object[]{"partitionKey", "partition".getBytes(), timestamp});
110+
}
105111
}
106112

107113
@Test
108114
public void testGet() throws Exception {
109115
long timeStamp = System.currentTimeMillis();
110-
obTableClient.insert(TEST_TABLE,
111-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
112-
new String[] { "V" }, new Object[] { "value".getBytes() });
113-
Map<String, Object> result = obTableClient.get(TEST_TABLE,
114-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
115-
new String[] { "K", "Q", "T", "V" });
116-
Assert.assertEquals("partitionKey", new String((byte[]) result.get("K"), "UTF-8"));
117-
Assert.assertEquals("partition", new String((byte[]) result.get("Q"), "UTF-8"));
118-
Assert.assertEquals(timeStamp, result.get("T"));
119-
Assert.assertEquals("value", new String((byte[]) result.get("V"), "UTF-8"));
116+
try {
117+
obTableClient.insert(TEST_TABLE,
118+
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
119+
new String[] { "V" }, new Object[] { "value".getBytes() });
120+
Map<String, Object> result = obTableClient.get(TEST_TABLE,
121+
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
122+
new String[] { "K", "Q", "T", "V" });
123+
Assert.assertEquals("partitionKey", new String((byte[]) result.get("K"), "UTF-8"));
124+
Assert.assertEquals("partition", new String((byte[]) result.get("Q"), "UTF-8"));
125+
Assert.assertEquals(timeStamp, result.get("T"));
126+
Assert.assertEquals("value", new String((byte[]) result.get("V"), "UTF-8"));
127+
} catch (Exception e) {
128+
e.printStackTrace();
129+
Assert.assertTrue(false);
130+
} finally {
131+
obTableClient.delete(TEST_TABLE, new Object[]{"partitionKey", "partition".getBytes(), timeStamp});
132+
}
120133
}
121134

122135
@Test
123136
public void testUpdate() throws Exception {
124137
long timeStamp = System.currentTimeMillis();
125-
obTableClient.insert(TEST_TABLE,
126-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
127-
new String[] { "V" }, new Object[] { "value".getBytes() });
128-
long affectedRow = obTableClient.update(TEST_TABLE,
129-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
130-
new String[] { "V" }, new Object[] { "value1".getBytes() });
131-
Assert.assertEquals(1, affectedRow);
132-
Map<String, Object> result = obTableClient.get(TEST_TABLE,
133-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
134-
new String[] { "K", "Q", "T", "V" });
135-
Assert.assertEquals(timeStamp, result.get("T"));
136-
Assert.assertEquals("value1", new String((byte[]) result.get("V"), "UTF-8"));
137-
}
138+
try {
139+
obTableClient.insert(TEST_TABLE,
140+
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
141+
new String[] { "V" }, new Object[] { "value".getBytes() });
142+
long affectedRow = obTableClient.update(TEST_TABLE,
143+
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
144+
new String[] { "V" }, new Object[] { "value1".getBytes() });
145+
Assert.assertEquals(1, affectedRow);
146+
Map<String, Object> result = obTableClient.get(TEST_TABLE,
147+
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
148+
new String[] { "K", "Q", "T", "V" });
149+
Assert.assertEquals(timeStamp, result.get("T"));
150+
Assert.assertEquals("value1", new String((byte[]) result.get("V"), "UTF-8"));
151+
} catch (Exception e) {
152+
e.printStackTrace();
153+
Assert.assertTrue(false);
154+
} finally {
155+
obTableClient.delete(TEST_TABLE, new Object[]{"partitionKey", "partition".getBytes(), timeStamp});
156+
}
157+
}
138158

139159
@Test
140160
public void testReplace() throws Exception {
141161
long timeStamp = System.currentTimeMillis();
142-
obTableClient.insert(TEST_TABLE,
143-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
144-
new String[] { "V" }, new Object[] { "value".getBytes() });
145-
long affectedRow = obTableClient.replace(TEST_TABLE,
146-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
147-
new String[] { "V" }, new Object[] { "value1".getBytes() });
148-
Assert.assertEquals(2, affectedRow);
149-
Map<String, Object> result = obTableClient.get(TEST_TABLE,
150-
new Object[] { "partitionKey".getBytes(), "partition".getBytes(), timeStamp },
151-
new String[] { "K", "Q", "T", "V" });
152-
Assert.assertEquals(timeStamp, result.get("T"));
153-
Assert.assertEquals("value1", new String((byte[]) result.get("V"), "UTF-8"));
162+
try {
163+
obTableClient.insert(TEST_TABLE,
164+
new Object[]{"partitionKey".getBytes(), "partition".getBytes(), timeStamp},
165+
new String[]{"V"}, new Object[]{"value".getBytes()});
166+
long affectedRow = obTableClient.replace(TEST_TABLE,
167+
new Object[]{"partitionKey".getBytes(), "partition".getBytes(), timeStamp},
168+
new String[]{"V"}, new Object[]{"value1".getBytes()});
169+
Assert.assertEquals(2, affectedRow);
170+
Map<String, Object> result = obTableClient.get(TEST_TABLE,
171+
new Object[]{"partitionKey".getBytes(), "partition".getBytes(), timeStamp},
172+
new String[]{"K", "Q", "T", "V"});
173+
Assert.assertEquals(timeStamp, result.get("T"));
174+
Assert.assertEquals("value1", new String((byte[]) result.get("V"), "UTF-8"));
175+
} catch (Exception e) {
176+
e.printStackTrace();
177+
Assert.assertTrue(false);
178+
} finally {
179+
obTableClient.delete(TEST_TABLE, new Object[]{"partitionKey", "partition".getBytes(), timeStamp});
180+
}
154181
}
155182

156183
@Test

src/test/java/com/alipay/oceanbase/rpc/bolt/ObTableClientTestBase.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ public void test_blob_all() throws Exception {
115115
PRIMARY KEY (`c1`)
116116
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10
117117
* */
118+
119+
// NOTE: Use the default test_varchar_table ObTable to insert data for test_blob_table will causes OB_NOT_MASTER error
120+
// when their partition leader is not in the same observer
121+
if (client instanceof ObTable) {
122+
return;
123+
}
118124
try {
119125
test_blob_insert();
120126
long start = System.currentTimeMillis();
@@ -146,6 +152,11 @@ public void test_longblob_all() throws Exception {
146152
PRIMARY KEY (`c1`)
147153
) DEFAULT CHARSET = utf8mb4 COMPRESSION = 'lz4_1.0' REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE TABLET_SIZE = 134217728 PCTFREE = 10
148154
* */
155+
// NOTE: Use the default test_varchar_table ObTable to insert data for test_blob_table will causes OB_NOT_MASTER error
156+
// when their partition leader is not in the same observer
157+
if (client instanceof ObTable) {
158+
return;
159+
}
149160
try {
150161
test_longblob_insert();
151162
long start = System.currentTimeMillis();

0 commit comments

Comments
 (0)