summaryrefslogtreecommitdiffstats
path: root/config/src/test
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-02-23 09:43:04 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2018-03-05 12:29:45 +0000
commit251243a8b326149c6f96ce32bd94d8375ce0ce44 (patch)
tree5a177113043757d6847f37579cc18fab7fdeef31 /config/src/test
parent4483a401ae03ccad8b581585aecd0c45cdea0d36 (diff)
Revert "Revert "Balder/remove config race""
Diffstat (limited to 'config/src/test')
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java41
-rw-r--r--config/src/test/java/com/yahoo/config/subscription/impl/JRTConfigRequesterTest.java9
-rw-r--r--config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestBase.java2
3 files changed, 35 insertions, 17 deletions
diff --git a/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java b/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
index 3862cfc9069..8fdd9d5e3b3 100644
--- a/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
+++ b/config/src/test/java/com/yahoo/config/subscription/impl/FileConfigSubscriptionTest.java
@@ -18,6 +18,8 @@ import java.nio.file.Files;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@@ -48,11 +50,11 @@ public class FileConfigSubscriptionTest {
subscriber,
TEST_TYPES_FILE);
assertTrue(sub.nextConfig(1000));
- assertThat(sub.config.intval(), is(23));
+ assertThat(sub.getConfigState().getConfig().intval(), is(23));
Thread.sleep(1000);
writeConfig("intval", "33");
assertTrue(sub.nextConfig(1000));
- assertThat(sub.config.intval(), is(33));
+ assertThat(sub.getConfigState().getConfig().intval(), is(33));
}
@Test
@@ -64,18 +66,37 @@ public class FileConfigSubscriptionTest {
subscriber,
TEST_TYPES_FILE);
assertTrue(sub.nextConfig(1000));
- assertThat(sub.config.intval(), is(23));
+ assertThat(sub.getConfigState().getConfig().intval(), is(23));
writeConfig("intval", "33");
sub.reload(1);
assertTrue(sub.nextConfig(1000));
- assertThat(sub.config.intval(), is(33));
- assertTrue(sub.isConfigChanged());
- assertTrue(sub.isGenerationChanged());
+ ConfigSubscription.ConfigState<SimpletypesConfig> configState = sub.getConfigState();
+ assertThat(configState.getConfig().intval(), is(33));
+ assertTrue(configState.isConfigChanged());
+ assertTrue(configState.isGenerationChanged());
+
+ assertTrue(sub.isConfigChangedAndReset(7L));
+ assertSame(configState, sub.getConfigState());
+ assertTrue(configState.isConfigChanged());
+ assertTrue(configState.isGenerationChanged());
+ assertTrue(sub.isConfigChangedAndReset(1L));
+ assertNotSame(configState, sub.getConfigState());
+ configState = sub.getConfigState();
+ assertFalse(configState.isConfigChanged());
+ assertFalse(configState.isGenerationChanged());
+
sub.reload(2);
assertTrue(sub.nextConfig(1000));
- assertThat(sub.config.intval(), is(33));
- assertFalse(sub.isConfigChanged());
- assertTrue(sub.isGenerationChanged());
+ configState = sub.getConfigState();
+ assertThat(configState.getConfig().intval(), is(33));
+ assertFalse(configState.isConfigChanged());
+ assertTrue(configState.isGenerationChanged());
+
+ assertFalse(sub.isConfigChangedAndReset(2L));
+ assertNotSame(configState, sub.getConfigState());
+ configState = sub.getConfigState();
+ assertFalse(configState.isConfigChanged());
+ assertFalse(configState.isGenerationChanged());
}
@Test
@@ -86,7 +107,7 @@ public class FileConfigSubscriptionTest {
ConfigSubscriber subscriber = new ConfigSubscriber();
ConfigSubscription<TestReferenceConfig> sub = ConfigSubscription.get(key, subscriber, new DirSource(new File(cfgDir)), new TimingValues());
assertTrue(sub.nextConfig(1000));
- assertThat(sub.config.configId(), is(cfgId));
+ assertThat(sub.getConfigState().getConfig().configId(), is(cfgId));
}
@Test(expected = IllegalArgumentException.class)
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 402c3b9b23f..1ad66cbaf58 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
@@ -181,8 +181,7 @@ public class JRTConfigRequesterTest {
ConfigSubscriber subscriber = new ConfigSubscriber();
final TimingValues timingValues = getTestTimingValues();
JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
- sub.setConfig(config());
- sub.setGeneration(1L);
+ sub.setConfig(1L, config());
final MockConnection connection = new MockConnection(new ErrorResponseHandler());
JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
@@ -210,8 +209,7 @@ public class JRTConfigRequesterTest {
ConfigSubscriber subscriber = new ConfigSubscriber();
final TimingValues timingValues = getTestTimingValues();
JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
- sub.setConfig(config());
- sub.setGeneration(1L);
+ sub.setConfig(1L, config());
final MockConnection connection = new MockConnection(new ErrorResponseHandler(com.yahoo.jrt.ErrorCode.TIMEOUT));
JRTConfigRequester requester = new JRTConfigRequester(connection, timingValues);
@@ -226,8 +224,7 @@ public class JRTConfigRequesterTest {
ConfigSubscriber subscriber = new ConfigSubscriber();
final TimingValues timingValues = getTestTimingValues();
JRTConfigSubscription<SimpletypesConfig> sub = createSubscription(subscriber, timingValues);
- sub.setConfig(config());
- sub.setGeneration(1L);
+ sub.setConfig(1L, config());
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/protocol/JRTConfigRequestBase.java b/config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestBase.java
index 7fa205fef15..1f5274b832b 100644
--- a/config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestBase.java
+++ b/config/src/test/java/com/yahoo/vespa/config/protocol/JRTConfigRequestBase.java
@@ -249,7 +249,7 @@ public abstract class JRTConfigRequestBase {
assertTrue(sub.nextConfig(120_0000));
sub.close();
JRTClientConfigRequest nextReq = createReq(sub, Trace.createNew());
- SimpletypesConfig config = sub.getConfig();
+ SimpletypesConfig config = sub.getConfigState().getConfig();
assertThat(nextReq.getRequestConfigMd5(), is(config.getConfigMd5()));
assertThat(nextReq.getRequestGeneration(), is(currentGeneration));
System.setProperty("VESPA_CONFIG_PROTOCOL_VERSION", "");