From 070724f19c9e0ea9a2fdfa84eced2d6ff3e4f51f Mon Sep 17 00:00:00 2001 From: Jan Simon Date: Wed, 28 May 2025 21:24:21 +0200 Subject: [PATCH 1/2] test: use the same measurement in test --- src/test/java/com/influxdb/v3/client/ITQueryWrite.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/test/java/com/influxdb/v3/client/ITQueryWrite.java b/src/test/java/com/influxdb/v3/client/ITQueryWrite.java index 91b6e9bd..0e1dbc74 100644 --- a/src/test/java/com/influxdb/v3/client/ITQueryWrite.java +++ b/src/test/java/com/influxdb/v3/client/ITQueryWrite.java @@ -236,9 +236,7 @@ void pointValues() { @Test public void handleFlightRuntimeException() throws IOException { Instant now = Instant.now(); - String measurement = String.format( - "/%d/test/com/influxdb/v3/client/ITQueryWrite/handleFlightRuntimeException", now.toEpochMilli() - ); + String measurement = "/influxdb3-java/test/handleFlightRuntimeException"; client = getInstance(); From 07edbe5c1d52de24d4bab23bfcc869985ed3a085 Mon Sep 17 00:00:00 2001 From: Jan Simon Date: Wed, 28 May 2025 22:13:33 +0200 Subject: [PATCH 2/2] fix: always generate the same tags --- .../com/influxdb/v3/client/ITQueryWrite.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/test/java/com/influxdb/v3/client/ITQueryWrite.java b/src/test/java/com/influxdb/v3/client/ITQueryWrite.java index 0e1dbc74..ef9474d0 100644 --- a/src/test/java/com/influxdb/v3/client/ITQueryWrite.java +++ b/src/test/java/com/influxdb/v3/client/ITQueryWrite.java @@ -28,11 +28,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.stream.Collectors; import java.util.stream.Stream; import org.apache.arrow.flight.CallStatus; import org.apache.arrow.flight.FlightRuntimeException; +import org.apache.arrow.flight.FlightStatusCode; import org.apache.arrow.vector.VectorSchemaRoot; import org.assertj.core.api.Assertions; import org.jetbrains.annotations.NotNull; @@ -236,14 +238,15 @@ void pointValues() { @Test public void handleFlightRuntimeException() throws IOException { Instant now = Instant.now(); - String measurement = "/influxdb3-java/test/handleFlightRuntimeException"; + String measurement = "/influxdb3-java/test/ITQueryWrite/handleFlightRuntimeException"; client = getInstance(); int extraTagLength = 512; Map extraTags = new HashMap(); + Random seededRandom = new Random(1); // use seeded random to generate always the same tags for (int i = 0; i < 22; i++) { - extraTags.put(makeLengthyTag(extraTagLength, 64, (byte) '/'), "extra-tag-" + i); + extraTags.put(makeLengthyTag(extraTagLength, 64, (byte) '/', seededRandom), "extra-tag-" + i); } Point p = Point.measurement(measurement) @@ -273,17 +276,21 @@ public void handleFlightRuntimeException() throws IOException { }); } catch (FlightRuntimeException fre) { Assertions.assertThat(fre.getMessage()).doesNotContain("http2 exception"); - Assertions.assertThat(fre.status().code()).isNotEqualTo(CallStatus.INTERNAL.code()); - Assertions.assertThat(fre.status().code()). + FlightStatusCode statusCode = fre.status().code(); + Assertions.assertThat(statusCode).isNotEqualTo(CallStatus.INTERNAL.code()); + Assertions.assertThat(statusCode). as(String.format("Flight runtime exception was UNAVAILABLE. " + "Target test case was not fully tested. " + "Check limits of test account and target database %s.", System.getenv("TESTING_INFLUXDB_DATABASE"))) .isNotEqualTo(CallStatus.UNAVAILABLE.code()); - Assertions.assertThat(fre.status().code()). + Assertions.assertThat(statusCode). as("Flight runtime exception was UNAUTHENTICATED. " + "Target test case was not fully tested. Check test account token.") .isNotEqualTo(CallStatus.UNAUTHENTICATED.code()); + Assertions.assertThat(statusCode). + as("Flight runtime exception was not INVALID_ARGUMENT but: " + statusCode.toString()) + .isEqualTo(CallStatus.INVALID_ARGUMENT.code()); return; } catch (Exception e) { Assertions.fail(String.format("FlightRuntimeException should have been thrown. " @@ -302,16 +309,17 @@ private static InfluxDBClient getInstance() { System.getenv("TESTING_INFLUXDB_DATABASE")); } - private String makeLengthyTag(final int length, final int maxPartLength, final byte separator) { + private String makeLengthyTag(final int length, final int maxPartLength, final byte separator, + final Random random) { final String legalVals = "0123456789abcdefghijklmnopqrstuvwxyz"; byte[] bytes = new byte[length]; int nextPartAddress = 0; for (int i = 0; i < length; i++) { if (i == nextPartAddress) { bytes[i] = separator; - nextPartAddress = i + (int) (Math.random() * (maxPartLength - 3)); + nextPartAddress = i + (int) (random.nextDouble() * (maxPartLength - 3)); } else { - bytes[i] = legalVals.getBytes()[(int) (Math.random() * legalVals.length())]; + bytes[i] = legalVals.getBytes()[(int) (random.nextDouble() * legalVals.length())]; } } return new String(bytes);