aboutsummaryrefslogtreecommitdiffstats
path: root/config/src/test/java/com/yahoo
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2021-09-09 09:29:53 +0200
committerHarald Musum <musum@yahooinc.com>2021-09-09 09:29:53 +0200
commitc8d830e1600da93112ae36e4f464ac9a9a9c8fc5 (patch)
tree8719d0e7231b75de0528e71d4d2406739cab8a2a /config/src/test/java/com/yahoo
parentee747ac8a83f1a7be8862635d4b451d913f51fff (diff)
Use both xxhash64 and md5 for config payload in requests and responses
Chacking of equal config with hasEqualConfig() still uses only md5
Diffstat (limited to 'config/src/test/java/com/yahoo')
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java7
-rw-r--r--config/src/test/java/com/yahoo/vespa/config/RawConfigTest.java52
-rw-r--r--config/src/test/java/com/yahoo/vespa/config/RequestValidationTest.java14
-rw-r--r--config/src/test/java/com/yahoo/vespa/config/protocol/ConfigResponseTest.java21
-rw-r--r--config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestV3Test.java55
5 files changed, 88 insertions, 61 deletions
diff --git a/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java b/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java
index 7bdaeb7d367..919155a3944 100644
--- a/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java
@@ -9,6 +9,7 @@ import com.yahoo.vespa.config.ConfigKey;
import com.yahoo.vespa.config.ConnectionPool;
import com.yahoo.vespa.config.ErrorCode;
import com.yahoo.vespa.config.ErrorType;
+import com.yahoo.vespa.config.PayloadChecksums;
import com.yahoo.vespa.config.TimingValues;
import com.yahoo.vespa.config.protocol.JRTServerConfigRequestV3;
import org.junit.Test;
@@ -139,7 +140,7 @@ public class JRTConfigRequesterTest {
ConfigSubscriber subscriber = new ConfigSubscriber();
final TimingValues timingValues = getTestTimingValues();
JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
- sub.setConfig(1L, false, config(), PayloadChecksum.empty());
+ sub.setConfig(1L, false, config(), PayloadChecksums.empty());
final MockConnection connection = new MockConnection(new ErrorResponseHandler());
JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
@@ -165,7 +166,7 @@ public class JRTConfigRequesterTest {
ConfigSubscriber subscriber = new ConfigSubscriber();
final TimingValues timingValues = getTestTimingValues();
JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
- sub.setConfig(1L, false, config(), PayloadChecksum.empty());
+ sub.setConfig(1L, false, config(), PayloadChecksums.empty());
final MockConnection connection = new MockConnection(new ErrorResponseHandler(com.yahoo.jrt.ErrorCode.TIMEOUT));
JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
@@ -179,7 +180,7 @@ public class JRTConfigRequesterTest {
ConfigSubscriber subscriber = new ConfigSubscriber();
final TimingValues timingValues = getTestTimingValues();
JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
- sub.setConfig(1L, false, config(), PayloadChecksum.empty());
+ sub.setConfig(1L, false, config(), PayloadChecksums.empty());
final MockConnection connection = new MockConnection(new ErrorResponseHandler(ErrorCode.UNKNOWN_DEFINITION));
JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
diff --git a/config/src/test/java/com/yahoo/vespa/config/RawConfigTest.java b/config/src/test/java/com/yahoo/vespa/config/RawConfigTest.java
index e1d11f82eea..96a2d976f51 100644
--- a/config/src/test/java/com/yahoo/vespa/config/RawConfigTest.java
+++ b/config/src/test/java/com/yahoo/vespa/config/RawConfigTest.java
@@ -1,8 +1,9 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config;
import com.yahoo.text.Utf8String;
-import com.yahoo.vespa.config.protocol.*;
+import com.yahoo.vespa.config.protocol.CompressionInfo;
+import com.yahoo.vespa.config.protocol.Payload;
import com.yahoo.vespa.config.protocol.VespaVersion;
import com.yahoo.vespa.config.util.ConfigUtils;
import org.junit.Test;
@@ -11,6 +12,8 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.MD5;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.XXHASH64;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertEquals;
@@ -26,11 +29,11 @@ import static org.junit.Assert.assertThat;
public class RawConfigTest {
private static final ConfigKey<?> key = new ConfigKey<>("foo", "id", "bar");
- private static List<String> defContent = Arrays.asList("version=1", "anInt int");
+ private static final List<String> defContent = Arrays.asList("version=1", "anInt int");
private static final String defMd5 = ConfigUtils.getDefMd5FromRequest("", defContent);
- private static final String configMd5 = "012345";
- private static Payload payload = Payload.from(new Utf8String("anInt 1"), CompressionInfo.uncompressed());
- private static long generation = 1L;
+ private static final PayloadChecksums payloadChecksums = PayloadChecksums.from("012345", "");
+ private static final Payload payload = Payload.from(new Utf8String("anInt 1"), CompressionInfo.uncompressed());
+ private static final long generation = 1L;
@Test
public void basic() {
@@ -47,7 +50,7 @@ public class RawConfigTest {
RawConfig copiedConfig = new RawConfig(config);
assertEquals(config, copiedConfig);
- assertEquals("bar.foo," + defMd5 + ",id,,0,null", config.toString());
+ assertEquals("bar.foo," + defMd5 + ",id,MD5:,XXHASH64:,0,null", config.toString());
assertEquals(Optional.empty(), config.getVespaVersion());
}
@@ -61,14 +64,14 @@ public class RawConfigTest {
assertThat(config.hashCode(), is(not(new RawConfig(key, "a").hashCode()))); // different def md5
// different generation
- config = new RawConfig(key, defMd5, payload, configMd5, generation, false, defContent, Optional.empty());
- RawConfig config2 = new RawConfig(key, defMd5, payload, configMd5, 2L, false, defContent, Optional.empty());
+ config = new RawConfig(key, defMd5, payload, payloadChecksums, generation, false, defContent, Optional.empty());
+ RawConfig config2 = new RawConfig(key, defMd5, payload, payloadChecksums, 2L, false, defContent, Optional.empty());
assertThat(config, is(not(config2)));
assertThat(config.hashCode(), is(not(config2.hashCode())));
// different config md5 and with vespa version
final VespaVersion vespaVersion = VespaVersion.fromString("5.37.38");
- RawConfig config3 = new RawConfig(key, defMd5, payload, "9999", generation, false, defContent, Optional.of(vespaVersion));
+ RawConfig config3 = new RawConfig(key, defMd5, payload, PayloadChecksums.from("9999", ""), generation, false, defContent, Optional.of(vespaVersion));
assertThat(config, is(not(config3)));
assertThat(config.hashCode(), is(not(config3.hashCode())));
// Check that vespa version is set correctly
@@ -82,42 +85,43 @@ public class RawConfigTest {
assertNotEquals(config, key);
// errors
- RawConfig errorConfig1 = new RawConfig(key, defMd5, payload, configMd5, generation, false, 1, defContent, Optional.empty());
+ RawConfig errorConfig1 = new RawConfig(key, defMd5, payload, payloadChecksums, generation, false, 1, defContent, Optional.empty());
assertThat(errorConfig1, is(errorConfig1));
assertThat(config, is(not(errorConfig1)));
assertThat(config.hashCode(), is(not(errorConfig1.hashCode())));
assertThat(errorConfig1, is(errorConfig1));
- RawConfig errorConfig2 = new RawConfig(key, defMd5, payload, configMd5, generation, false, 2, defContent, Optional.empty());
+ RawConfig errorConfig2 = new RawConfig(key, defMd5, payload, payloadChecksums, generation, false, 2, defContent, Optional.empty());
assertThat(errorConfig1, is(not(errorConfig2)));
assertThat(errorConfig1.hashCode(), is(not(errorConfig2.hashCode())));
}
@Test
public void payload() {
- RawConfig config = new RawConfig(key, defMd5, payload, configMd5, generation, false, defContent, Optional.empty());
- assertThat(config.getPayload(), is(payload));
- assertThat(config.getConfigMd5(), is(configMd5));
- assertThat(config.getGeneration(), is(generation));
- assertThat(config.getDefContent(), is(defContent));
+ RawConfig config = new RawConfig(key, defMd5, payload, payloadChecksums, generation, false, defContent, Optional.empty());
+ assertEquals(config.getPayload(), payload);
+ assertEquals(config.getConfigMd5(), payloadChecksums.getForType(MD5).asString());
+ assertEquals(config.getPayloadChecksums().getForType(XXHASH64), payloadChecksums.getForType(XXHASH64));
+ assertEquals(config.getGeneration(), generation);
+ assertEquals(config.getDefContent(), defContent);
}
@Test
public void require_correct_defmd5() {
final String defMd5ForEmptyDefContent = "d41d8cd98f00b204e9800998ecf8427e";
- RawConfig config = new RawConfig(key, null, payload, configMd5, generation, false, defContent, Optional.empty());
+ RawConfig config = new RawConfig(key, null, payload, payloadChecksums, generation, false, defContent, Optional.empty());
assertThat(config.getDefMd5(), is(defMd5));
- config = new RawConfig(key, "", payload, configMd5, generation, false, defContent, Optional.empty());
+ config = new RawConfig(key, "", payload, payloadChecksums, generation, false, defContent, Optional.empty());
assertThat(config.getDefMd5(), is(defMd5));
- config = new RawConfig(key, defMd5, payload, configMd5, generation, false, defContent, Optional.empty());
+ config = new RawConfig(key, defMd5, payload, payloadChecksums, generation, false, defContent, Optional.empty());
assertThat(config.getDefMd5(), is(defMd5));
- config = new RawConfig(key, null, payload, configMd5, generation, false, null, Optional.empty());
+ config = new RawConfig(key, null, payload, payloadChecksums, generation, false, null, Optional.empty());
assertNull(config.getDefMd5());
- config = new RawConfig(key, null, payload, configMd5, generation, false, List.of(""), Optional.empty());
+ config = new RawConfig(key, null, payload, payloadChecksums, generation, false, List.of(""), Optional.empty());
assertThat(config.getDefMd5(), is(defMd5ForEmptyDefContent));
- config = new RawConfig(key, "", payload, configMd5, generation, false, null, Optional.empty());
+ config = new RawConfig(key, "", payload, payloadChecksums, generation, false, null, Optional.empty());
assertThat(config.getDefMd5(), is(""));
- config = new RawConfig(key, "", payload, configMd5, generation, false, List.of(""), Optional.empty());
+ config = new RawConfig(key, "", payload, payloadChecksums, generation, false, List.of(""), Optional.empty());
assertThat(config.getDefMd5(), is(defMd5ForEmptyDefContent));
}
diff --git a/config/src/test/java/com/yahoo/vespa/config/RequestValidationTest.java b/config/src/test/java/com/yahoo/vespa/config/RequestValidationTest.java
index 8c11db15f7c..2b7fd9c350b 100644
--- a/config/src/test/java/com/yahoo/vespa/config/RequestValidationTest.java
+++ b/config/src/test/java/com/yahoo/vespa/config/RequestValidationTest.java
@@ -1,10 +1,11 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config;
-import com.yahoo.config.subscription.impl.PayloadChecksum;
import com.yahoo.vespa.config.protocol.RequestValidation;
import org.junit.Test;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.MD5;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.XXHASH64;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -21,11 +22,12 @@ public class RequestValidationTest {
@Test
public void testVerifyDefMd5() {
- assertTrue(PayloadChecksum.empty().valid());
- assertTrue(new PayloadChecksum("e8f0c01c7c3dcb8d3f62d7ff777fce6b").valid());
- assertTrue(new PayloadChecksum("e8f0c01c7c3dcb8d3f62d7ff777fce6B").valid());
- assertFalse(new PayloadChecksum("aaaaaaaaaaaaaaaaaa").valid());
- assertFalse(new PayloadChecksum("-8f0c01c7c3dcb8d3f62d7ff777fce6b").valid());
+ assertTrue(PayloadChecksum.empty(MD5).valid());
+ assertTrue(new PayloadChecksum("e8f0c01c7c3dcb8d3f62d7ff777fce6b", MD5).valid());
+ assertTrue(new PayloadChecksum("e8f0c01c7c3dcb8d3f62d7ff777fce6B", MD5).valid());
+ assertTrue(new PayloadChecksum("e8f0c01c7c3dcb8d", XXHASH64).valid());
+ assertFalse(new PayloadChecksum("aaaaaaaaaaaaaaaaaa", MD5).valid());
+ assertFalse(new PayloadChecksum("-8f0c01c7c3dcb8d3f62d7ff777fce6b", MD5).valid());
}
@Test
diff --git a/config/src/test/java/com/yahoo/vespa/config/protocol/ConfigResponseTest.java b/config/src/test/java/com/yahoo/vespa/config/protocol/ConfigResponseTest.java
index c53a6b5c73d..f00e95ccea2 100644
--- a/config/src/test/java/com/yahoo/vespa/config/protocol/ConfigResponseTest.java
+++ b/config/src/test/java/com/yahoo/vespa/config/protocol/ConfigResponseTest.java
@@ -1,6 +1,7 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.protocol;
+import com.yahoo.vespa.config.PayloadChecksums;
import com.yahoo.foo.SimpletypesConfig;
import com.yahoo.text.AbstractUtf8Array;
import com.yahoo.text.Utf8Array;
@@ -12,6 +13,8 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.MD5;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.XXHASH64;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -23,14 +26,20 @@ public class ConfigResponseTest {
@Test
public void require_that_slime_response_is_initialized() throws IOException {
ConfigPayload configPayload = ConfigPayload.fromInstance(new SimpletypesConfig(new SimpletypesConfig.Builder()));
- ConfigResponse response = SlimeConfigResponse.fromConfigPayload(configPayload, 3, false, "mymd5");
+ PayloadChecksums payloadChecksums = PayloadChecksums.fromPayload(Payload.from(configPayload));
+ ConfigResponse response =
+ SlimeConfigResponse.fromConfigPayload(configPayload,
+ 3,
+ false,
+ payloadChecksums);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
response.serialize(baos, CompressionType.UNCOMPRESSED);
String payload = baos.toString(StandardCharsets.UTF_8);
assertNotNull(payload);
- assertEquals("{\"boolval\":false,\"doubleval\":0.0,\"enumval\":\"VAL1\",\"intval\":0,\"longval\":0,\"stringval\":\"s\"}", payload.toString());
- assertEquals(response.getGeneration(), 3L);
- assertEquals(response.getConfigMd5(), "mymd5");
+ assertEquals("{\"boolval\":false,\"doubleval\":0.0,\"enumval\":\"VAL1\",\"intval\":0,\"longval\":0,\"stringval\":\"s\"}", payload);
+ assertEquals(3L, response.getGeneration());
+ assertEquals(payloadChecksums.getForType(MD5), response.getPayloadChecksums().getForType(MD5));
+ assertEquals(payloadChecksums.getForType(XXHASH64), response.getPayloadChecksums().getForType(XXHASH64));
baos = new ByteArrayOutputStream();
response.serialize(baos, CompressionType.UNCOMPRESSED);
@@ -42,7 +51,7 @@ public class ConfigResponseTest {
ConfigPayload configPayload = ConfigPayload.fromInstance(new SimpletypesConfig(new SimpletypesConfig.Builder()));
AbstractUtf8Array data = configPayload.toUtf8Array(true);
Utf8Array bytes = new Utf8Array(new LZ4PayloadCompressor().compress(data.wrap()));
- ConfigResponse response = new SlimeConfigResponse(bytes, 3, false, "mymd5", CompressionInfo.create(CompressionType.LZ4, data.getByteLength()));
+ ConfigResponse response = new SlimeConfigResponse(bytes, 3, false, PayloadChecksums.empty(), CompressionInfo.create(CompressionType.LZ4, data.getByteLength()));
ByteArrayOutputStream baos = new ByteArrayOutputStream();
response.serialize(baos, CompressionType.UNCOMPRESSED);
String payload = baos.toString(StandardCharsets.UTF_8);
diff --git a/config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestV3Test.java b/config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestV3Test.java
index d6ce246aa1f..5a3110c9221 100644
--- a/config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestV3Test.java
+++ b/config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestV3Test.java
@@ -8,6 +8,7 @@ import com.yahoo.config.subscription.impl.GenericConfigSubscriber;
import com.yahoo.config.subscription.impl.JRTConfigRequester;
import com.yahoo.config.subscription.impl.JRTConfigSubscription;
import com.yahoo.config.subscription.impl.MockConnection;
+import com.yahoo.vespa.config.PayloadChecksums;
import com.yahoo.foo.SimpletypesConfig;
import com.yahoo.jrt.Request;
import com.yahoo.slime.Inspector;
@@ -27,6 +28,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.MD5;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.XXHASH64;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -53,7 +56,7 @@ public class JRTConfigRequestV3Test {
private final long currentGeneration = 3;
private final long timeout = 5000;
private Trace trace ;
- private final String configMd5 = ConfigUtils.getMd5(createPayload().getData());
+ private final PayloadChecksums payloadChecksums = PayloadChecksums.fromPayload(createPayload());
private JRTClientConfigRequest clientReq;
private JRTServerConfigRequest serverReq;
@@ -79,8 +82,12 @@ public class JRTConfigRequestV3Test {
@Test
public void emptypayload() {
ConfigPayload payload = ConfigPayload.empty();
- SlimeConfigResponse response = SlimeConfigResponse.fromConfigPayload(payload, 0, false, ConfigUtils.getMd5(payload));
- serverReq.addOkResponse(serverReq.payloadFromResponse(response), response.getGeneration(), false, response.getConfigMd5());
+ PayloadChecksums payloadChecksums = PayloadChecksums.fromPayload(Payload.from(payload));
+ SlimeConfigResponse response = SlimeConfigResponse.fromConfigPayload(payload,
+ 0,
+ false,
+ payloadChecksums);
+ serverReq.addOkResponse(serverReq.payloadFromResponse(response), response.getGeneration(), false, payloadChecksums);
assertTrue(clientReq.validateResponse());
assertTrue(clientReq.hasUpdatedGeneration());
assertEquals("{}", clientReq.getNewPayload().withCompression(CompressionType.UNCOMPRESSED).getData().toString());
@@ -97,7 +104,8 @@ public class JRTConfigRequestV3Test {
@Test
public void next_request_when_error_is_correct() {
- serverReq.addOkResponse(createPayload(), 999999, false, "newmd5");
+ Payload payload = createPayload();
+ serverReq.addOkResponse(payload, 999999, false, PayloadChecksums.fromPayload(payload));
serverReq.addErrorResponse(ErrorCode.OUTDATED_CONFIG, "error message");
JRTClientConfigRequest next = clientReq.nextRequest(6);
// Should use config md5 and generation from the request, not the response
@@ -111,7 +119,7 @@ public class JRTConfigRequestV3Test {
Payload payload = createPayload("vale");
String md5 = ConfigUtils.getMd5(payload.getData());
long generation = 4L;
- serverReq.addOkResponse(payload, generation, false, md5);
+ serverReq.addOkResponse(payload, generation, false, PayloadChecksums.fromPayload(payload));
assertTrue(clientReq.validateResponse());
assertThat(clientReq.getNewPayload().withCompression(CompressionType.UNCOMPRESSED).getData().toString(), is(payload.getData().toString()));
assertThat(clientReq.getNewGeneration(), is(4L));
@@ -137,7 +145,7 @@ public class JRTConfigRequestV3Test {
@Test
public void generation_only_is_updated() {
Payload payload = createPayload();
- serverReq.addOkResponse(payload, 4L, false, ConfigUtils.getMd5(payload.getData()));
+ serverReq.addOkResponse(payload, 4L, false, PayloadChecksums.fromPayload(payload));
boolean value = clientReq.validateResponse();
assertTrue(clientReq.errorMessage(), value);
assertFalse(clientReq.hasUpdatedConfig());
@@ -147,7 +155,7 @@ public class JRTConfigRequestV3Test {
@Test
public void nothing_is_updated() {
Payload payload = createPayload();
- serverReq.addOkResponse(payload, currentGeneration, false, configMd5);
+ serverReq.addOkResponse(payload, currentGeneration, false, payloadChecksums);
assertTrue(clientReq.validateResponse());
assertFalse(clientReq.hasUpdatedConfig());
assertFalse(clientReq.hasUpdatedGeneration());
@@ -158,7 +166,7 @@ public class JRTConfigRequestV3Test {
Payload payload = Payload.from(ConfigPayload.empty());
clientReq = createReq(payload);
serverReq = createReq(clientReq.getRequest());
- serverReq.addOkResponse(payload, currentGeneration, false, ConfigUtils.getMd5(payload.getData()));
+ serverReq.addOkResponse(payload, currentGeneration, false, PayloadChecksums.fromPayload(payload));
boolean val = clientReq.validateResponse();
assertTrue(clientReq.errorMessage(), val);
assertFalse(clientReq.hasUpdatedConfig());
@@ -195,7 +203,7 @@ public class JRTConfigRequestV3Test {
@Override
public void createResponse() {
JRTServerConfigRequest serverRequest = createReq(request);
- serverRequest.addOkResponse(createPayload(), currentGeneration, false, configMd5);
+ serverRequest.addOkResponse(createPayload(), currentGeneration, false, payloadChecksums);
}
});
@@ -206,8 +214,10 @@ public class JRTConfigRequestV3Test {
assertTrue(sub.nextConfig(120_0000));
sub.close();
JRTClientConfigRequest nextReq = createReq(sub, Trace.createNew());
- assertThat(nextReq.getRequestConfigMd5(), is(sub.getConfigState().getChecksum().asString()));
- assertThat(nextReq.getRequestGeneration(), is(currentGeneration));
+ assertEquals(nextReq.getRequestConfigMd5(), sub.getConfigState().getChecksums().getForType(MD5).asString());
+ assertEquals(nextReq.getRequestConfigChecksums().getForType(MD5).asString(), sub.getConfigState().getChecksums().getForType(MD5).asString());
+ assertEquals(nextReq.getRequestConfigChecksums().getForType(XXHASH64).asString(), sub.getConfigState().getChecksums().getForType(XXHASH64).asString());
+ assertEquals(nextReq.getRequestGeneration(), currentGeneration);
}
@Test
@@ -225,12 +235,12 @@ public class JRTConfigRequestV3Test {
@Test
public void parameters_are_validated() {
assertTrue(serverReq.validateParameters());
- assertValidationFail(createReq("35#$#!$@#", defNamespace, hostname, configId, configMd5, currentGeneration, timeout, trace));
- assertValidationFail(createReq(defName, "abcd.o#$*(!&$", hostname, configId, configMd5, currentGeneration, timeout, trace));
- assertValidationFail(createReq(defName, defNamespace, hostname, configId, "34", currentGeneration, timeout, trace));
- assertValidationFail(createReq(defName, defNamespace, hostname, configId, configMd5, -34, timeout, trace));
- assertValidationFail(createReq(defName, defNamespace, hostname, configId, configMd5, currentGeneration, -23, trace));
- assertValidationFail(createReq(defName, defNamespace, "", configId, configMd5, currentGeneration, timeout, trace));
+ assertValidationFail(createReq("35#$#!$@#", defNamespace, hostname, configId, payloadChecksums, currentGeneration, timeout, trace));
+ assertValidationFail(createReq(defName, "abcd.o#$*(!&$", hostname, configId, payloadChecksums, currentGeneration, timeout, trace));
+ assertValidationFail(createReq(defName, defNamespace, hostname, configId, PayloadChecksums.from("abcd", "1234"), currentGeneration, timeout, trace));
+ assertValidationFail(createReq(defName, defNamespace, hostname, configId, payloadChecksums, -34, timeout, trace));
+ assertValidationFail(createReq(defName, defNamespace, hostname, configId, payloadChecksums, currentGeneration, -23, trace));
+ assertValidationFail(createReq(defName, defNamespace, "", configId, payloadChecksums, currentGeneration, timeout, trace));
}
private void assertValidationFail(JRTClientConfigRequest req) {
@@ -248,12 +258,12 @@ public class JRTConfigRequestV3Test {
}
private JRTClientConfigRequest createReq(String defName, String defNamespace,
- String hostname, String configId, String configMd5,
+ String hostname, String configId, PayloadChecksums payloadChecksums,
long currentGeneration, long timeout, Trace trace) {
return JRTClientConfigRequestV3.createWithParams(ConfigKey.createFull(defName, configId, defNamespace),
DefContent.fromList(List.of(configDefinition)),
hostname,
- configMd5,
+ payloadChecksums,
currentGeneration,
timeout,
trace,
@@ -276,13 +286,13 @@ public class JRTConfigRequestV3Test {
private JRTClientConfigRequest createReq() {
trace = Trace.createNew(3, new ManualClock());
trace.trace(1, "hei");
- return createReq(defName, defNamespace, hostname, configId, configMd5, currentGeneration, timeout, trace);
+ return createReq(defName, defNamespace, hostname, configId, payloadChecksums, currentGeneration, timeout, trace);
}
private JRTClientConfigRequest createReq(Payload payload) {
trace = Trace.createNew(3, new ManualClock());
trace.trace(1, "hei");
- return createReq(defName, defNamespace, hostname, configId, ConfigUtils.getMd5(payload.getData()), currentGeneration, timeout, trace);
+ return createReq(defName, defNamespace, hostname, configId, PayloadChecksums.fromPayload(payload), currentGeneration, timeout, trace);
}
private void request_is_parsed_base() {
@@ -294,7 +304,8 @@ public class JRTConfigRequestV3Test {
assertThat(serverReq.getDefContent().asStringArray(), is(configDefinition));
assertFalse(serverReq.noCache());
assertTrue(serverReq.getRequestTrace().toString().contains("hi"));
- assertThat(serverReq.getRequestConfigMd5(), is(configMd5));
+ assertThat(serverReq.getRequestConfigChecksums().getForType(MD5), is(payloadChecksums.getForType(MD5)));
+ assertThat(serverReq.getRequestConfigChecksums().getForType(XXHASH64), is(payloadChecksums.getForType(XXHASH64)));
assertThat(serverReq.getRequestGeneration(), is(currentGeneration));
}