From 2826d63aee04911aa64b677200450495251b8c1b Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Tue, 19 Nov 2024 09:06:30 -0500 Subject: [PATCH 1/3] test: add test to ensure that feature flags are sent during a ping and warm rpc Change-Id: I7d8ac74eae66d34de453b0cd799f45474d6ff0f7 --- .../v2/stub/EnhancedBigtableStubTest.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java index 67ac3f24d9..eca401adcd 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java @@ -86,6 +86,7 @@ import com.google.cloud.bigtable.data.v2.models.sql.Statement; import com.google.cloud.bigtable.data.v2.stub.sql.ExecuteQueryCallable; import com.google.cloud.bigtable.data.v2.stub.sql.SqlServerStream; +import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Queues; import com.google.common.io.BaseEncoding; @@ -291,6 +292,26 @@ public void testFeatureFlags() throws InterruptedException, IOException, Executi assertThat(featureFlags.getLastScannedRowResponses()).isTrue(); } + @Test + public void testPingAndWarmFeatureFlags() + throws InterruptedException, IOException, ExecutionException { + EnhancedBigtableStubSettings settings = + defaultSettings.toBuilder().setRefreshingChannel(true).build(); + try (EnhancedBigtableStub ignored = EnhancedBigtableStub.create(settings)) { + Preconditions.checkState( + !fakeDataService.pingRequests.isEmpty(), "Ping request was not sent during setup"); + Metadata metadata = metadataInterceptor.headers.take(); + + String encodedFeatureFlags = + metadata.get(Key.of("bigtable-features", Metadata.ASCII_STRING_MARSHALLER)); + FeatureFlags featureFlags = + FeatureFlags.parseFrom(BaseEncoding.base64Url().decode(encodedFeatureFlags)); + + assertThat(featureFlags.getReverseScans()).isTrue(); + assertThat(featureFlags.getLastScannedRowResponses()).isTrue(); + } + } + @Test public void testCheckAndMutateRequestResponseConversion() throws ExecutionException, InterruptedException { From 66032b9267af1d2cfbaa08c2190023a0b13fcd62 Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Tue, 19 Nov 2024 20:55:37 -0500 Subject: [PATCH 2/3] add test for a few more feature flags Change-Id: Ib68d515513fcdfee1df1c2f3435a1e9c64e0c8fc --- .../cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java index eca401adcd..50fc9c802a 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java @@ -309,6 +309,9 @@ public void testPingAndWarmFeatureFlags() assertThat(featureFlags.getReverseScans()).isTrue(); assertThat(featureFlags.getLastScannedRowResponses()).isTrue(); + assertThat(featureFlags.getRoutingCookie()).isTrue(); + assertThat(featureFlags.getRetryInfo()).isTrue(); + assertThat(featureFlags.getClientSideMetricsEnabled()).isTrue(); } } From ae990479db46c686c97bc23e098ed77cc05c760c Mon Sep 17 00:00:00 2001 From: Igor Bernstein Date: Tue, 3 Dec 2024 14:17:23 -0500 Subject: [PATCH 3/3] csm is disabled in tests Change-Id: I2f215d40df99f6e0a834c3416ded35d4b2a44d97 --- .../cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java index 50fc9c802a..d8d22edcd1 100644 --- a/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java +++ b/google-cloud-bigtable/src/test/java/com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStubTest.java @@ -311,7 +311,6 @@ public void testPingAndWarmFeatureFlags() assertThat(featureFlags.getLastScannedRowResponses()).isTrue(); assertThat(featureFlags.getRoutingCookie()).isTrue(); assertThat(featureFlags.getRetryInfo()).isTrue(); - assertThat(featureFlags.getClientSideMetricsEnabled()).isTrue(); } }