You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by lu...@apache.org on 2022/12/24 12:04:24 UTC
[skywalking-banyandb-java-client] branch add-test-in updated: add test in
This is an automated email from the ASF dual-hosted git repository.
lujiajing pushed a commit to branch add-test-in
in repository https://gitbox.apache.org/repos/asf/skywalking-banyandb-java-client.git
The following commit(s) were added to refs/heads/add-test-in by this push:
new db03f2a add test in
db03f2a is described below
commit db03f2a74f6c947dcb7d7275871951ed084f293d
Author: Megrez Lu <lu...@gmail.com>
AuthorDate: Sat Dec 24 20:04:15 2022 +0800
add test in
---
.../banyandb/v1/client/AbstractWrite.java | 12 +++++
.../banyandb/v1/client/BanyanDBClientTestCI.java | 4 +-
.../v1/client/ITBanyanDBStreamQueryTests.java | 57 ++++++++++++++++------
3 files changed, 57 insertions(+), 16 deletions(-)
diff --git a/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java b/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java
index 6ad76ca..1882185 100644
--- a/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java
+++ b/src/main/java/org/apache/skywalking/banyandb/v1/client/AbstractWrite.java
@@ -18,8 +18,11 @@
package org.apache.skywalking.banyandb.v1.client;
+import com.google.common.annotations.VisibleForTesting;
import com.google.protobuf.Timestamp;
+
import java.util.Optional;
+
import lombok.Getter;
import org.apache.skywalking.banyandb.common.v1.BanyandbCommon;
import org.apache.skywalking.banyandb.model.v1.BanyandbModel;
@@ -77,6 +80,15 @@ public abstract class AbstractWrite<P extends com.google.protobuf.GeneratedMessa
return this;
}
+ @VisibleForTesting
+ <T extends Serializable<BanyandbModel.TagValue>> T getTag(String tagName) throws BanyanDBException {
+ final Optional<MetadataCache.TagInfo> tagInfo = this.entityMetadata.findTagInfo(tagName);
+ if (!tagInfo.isPresent()) {
+ throw InvalidReferenceException.fromInvalidTag(tagName);
+ }
+ return (T) this.tags[tagInfo.get().getOffset()];
+ }
+
P build() {
if (timestamp <= 0) {
throw new IllegalArgumentException("timestamp is invalid.");
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
index ea7004a..27834ad 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/BanyanDBClientTestCI.java
@@ -30,7 +30,7 @@ import java.io.IOException;
public class BanyanDBClientTestCI {
private static final String REGISTRY = "ghcr.io";
private static final String IMAGE_NAME = "apache/skywalking-banyandb";
- private static final String TAG = "a558725fb909e136694aeb2d879dd6a3ae13b6fc";
+ private static final String TAG = "e14acadedd4fe475e4ca7b35d5f40288a632b1fb";
private static final String IMAGE = REGISTRY + "/" + IMAGE_NAME + ":" + TAG;
@@ -43,7 +43,7 @@ public class BanyanDBClientTestCI {
"--measure-root-path", "/tmp/banyand-measure-data")
.withExposedPorts(BANYANDB_PORT)
.waitingFor(
- Wait.forLogMessage(".*Listening to\\*\\*\\*\\* addr::17912 module:LIAISON-GRPC\\n", 1)
+ Wait.forLogMessage(".*\"Start liaison http server\".*", 1)
);
protected BanyanDBClient client;
diff --git a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
index 7619bd8..15b7181 100644
--- a/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
+++ b/src/test/java/org/apache/skywalking/banyandb/v1/client/ITBanyanDBStreamQueryTests.java
@@ -33,6 +33,9 @@ import org.junit.Test;
import java.io.IOException;
import java.time.Instant;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
@@ -88,10 +91,46 @@ public class ITBanyanDBStreamQueryTests extends BanyanDBClientTestCI {
}
@Test
- public void testStreamQuery_TraceID() throws BanyanDBException, ExecutionException, InterruptedException, TimeoutException {
+ public void testStreamQuery_Str_Eq() throws BanyanDBException, ExecutionException, InterruptedException, TimeoutException {
+ StreamWrite streamWrite = writeStream();
+ long latency = ((Value.LongTagValue) streamWrite.getTag("duration")).getValue();
+ String traceId = ((Value.StringTagValue) streamWrite.getTag("trace_id")).getValue();
+ StreamQuery query = new StreamQuery("default", "sw", ImmutableSet.of("state", "duration", "trace_id", "data_binary"));
+ query.and(PairQueryCondition.StringQueryCondition.eq("trace_id", traceId));
+
+ await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+ StreamQueryResponse resp = client.query(query);
+ Assert.assertNotNull(resp);
+ Assert.assertEquals(1, resp.size());
+ Assert.assertEquals(latency, (Number) resp.getElements().get(0).getTagValue("duration"));
+ Assert.assertEquals(traceId, resp.getElements().get(0).getTagValue("trace_id"));
+ });
+ }
+
+ @Test
+ public void testStreamQuery_Str_In() throws BanyanDBException, ExecutionException, InterruptedException, TimeoutException {
+ int size = 2;
+ List<String> traceIDs = new ArrayList<>(size);
+ for (int i = 0; i < size; i++) {
+ StreamWrite streamWrite = writeStream();
+ String segmentID = ((Value.StringTagValue) streamWrite.getTag("trace_id")).getValue();
+ traceIDs.add(segmentID);
+ }
+
+ StreamQuery query = new StreamQuery("default", "sw", ImmutableSet.of("state", "duration", "trace_id", "data_binary"));
+ query.and(PairQueryCondition.StringArrayQueryCondition.in("trace_id", traceIDs));
+
+ await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
+ StreamQueryResponse resp = client.query(query);
+ Assert.assertNotNull(resp);
+ Assert.assertEquals(2, resp.size());
+ });
+ }
+
+ private StreamWrite writeStream() throws ExecutionException, InterruptedException, TimeoutException, BanyanDBException {
// try to write a trace
- String segmentId = "1231.dfd.123123ssf";
- String traceId = "trace_id-xxfff.111323";
+ String segmentId = UUID.randomUUID().toString();
+ String traceId = "trace_id-" + UUID.randomUUID();
String serviceId = "webapp_id";
String serviceInstanceId = "10.0.0.1_id";
String endpointId = "home_id";
@@ -128,16 +167,6 @@ public class ITBanyanDBStreamQueryTests extends BanyanDBClientTestCI {
return null;
});
f.get(10, TimeUnit.SECONDS);
-
- StreamQuery query = new StreamQuery("default", "sw", ImmutableSet.of("state", "duration", "trace_id", "data_binary"));
- query.and(PairQueryCondition.StringQueryCondition.eq("trace_id", traceId));
-
- await().atMost(10, TimeUnit.SECONDS).untilAsserted(() -> {
- StreamQueryResponse resp = client.query(query);
- Assert.assertNotNull(resp);
- Assert.assertEquals(resp.size(), 1);
- Assert.assertEquals(latency, (Number) resp.getElements().get(0).getTagValue("duration"));
- Assert.assertEquals(traceId, resp.getElements().get(0).getTagValue("trace_id"));
- });
+ return streamWrite;
}
}