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;
     }
 }