Skip to content

Commit e85ad01

Browse files
committed
Even stronger testing
1 parent e428728 commit e85ad01

File tree

1 file changed

+76
-7
lines changed

1 file changed

+76
-7
lines changed

server/src/test/java/org/elasticsearch/action/admin/cluster/settings/SettingsUpdaterTests.java

+76-7
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,19 @@ public void testUpdateWithUnknownAndSettings() {
205205
final Settings.Builder existingPersistentSettings = Settings.builder();
206206
final Settings.Builder existingTransientSettings = Settings.builder();
207207

208+
for (final Setting<String> dynamicSetting : dynamicSettings) {
209+
switch (randomIntBetween(0, 2)) {
210+
case 0:
211+
existingPersistentSettings.put(dynamicSetting.getKey(), "existing_value");
212+
break;
213+
case 1:
214+
existingTransientSettings.put(dynamicSetting.getKey(), "existing_value");
215+
break;
216+
case 2:
217+
break;
218+
}
219+
}
220+
208221
for (final Setting<String> invalidSetting : invalidSettings) {
209222
if (randomBoolean()) {
210223
existingPersistentSettings.put(invalidSetting.getKey(), "value");
@@ -242,16 +255,31 @@ public void testUpdateWithUnknownAndSettings() {
242255
final Settings.Builder persistentToApply = Settings.builder();
243256
final Settings.Builder transientToApply = Settings.builder();
244257
for (final Setting<String> dynamicSetting : dynamicSettings) {
258+
switch (randomIntBetween(0, 2)) {
259+
case 0:
260+
persistentToApply.put(dynamicSetting.getKey(), "new_value");
261+
break;
262+
case 1:
263+
transientToApply.put(dynamicSetting.getKey(), "new_value");
264+
break;
265+
case 2:
266+
break;
267+
}
268+
}
269+
270+
if (transientToApply.keys().isEmpty() && persistentToApply.keys().isEmpty()) {
271+
// force a settings update otherwise our assertions below will fail
245272
if (randomBoolean()) {
246-
persistentToApply.put(dynamicSetting.getKey(), "value");
273+
persistentToApply.put(dynamicSettings.get(0).getKey(), "new_value");
247274
} else {
248-
transientToApply.put(dynamicSetting.getKey(), "value");
275+
transientToApply.put(dynamicSettings.get(0).getKey(), "new_value");
249276
}
250277
}
278+
251279
final ClusterState clusterStateAfterUpdate =
252280
settingsUpdater.updateSettings(clusterState, transientToApply.build(), persistentToApply.build(), logger);
253281

254-
// the invalid settings should be archived
282+
// the invalid settings should be archived and not present in non-archived form
255283
for (final Setting<String> invalidSetting : invalidSettings) {
256284
if (existingPersistentSettings.keys().contains(invalidSetting.getKey())) {
257285
assertThat(
@@ -262,9 +290,15 @@ public void testUpdateWithUnknownAndSettings() {
262290
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
263291
hasItem(ARCHIVED_SETTINGS_PREFIX + invalidSetting.getKey()));
264292
}
293+
assertThat(
294+
clusterStateAfterUpdate.metaData().persistentSettings().keySet(),
295+
not(hasItem(invalidSetting.getKey())));
296+
assertThat(
297+
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
298+
not(hasItem(invalidSetting.getKey())));
265299
}
266300

267-
// the unknown settings should be archived
301+
// the unknown settings should be archived and not present in non-archived form
268302
for (final Setting<String> unknownSetting : unknownSettings) {
269303
if (existingPersistentSettings.keys().contains(unknownSetting.getKey())) {
270304
assertThat(
@@ -275,14 +309,37 @@ public void testUpdateWithUnknownAndSettings() {
275309
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
276310
hasItem(ARCHIVED_SETTINGS_PREFIX + unknownSetting.getKey()));
277311
}
312+
assertThat(
313+
clusterStateAfterUpdate.metaData().persistentSettings().keySet(),
314+
not(hasItem(unknownSetting.getKey())));
315+
assertThat(
316+
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
317+
not(hasItem(unknownSetting.getKey())));
278318
}
279319

280320
// the dynamic settings should be applied
281321
for (final Setting<String> dynamicSetting : dynamicSettings) {
282322
if (persistentToApply.keys().contains(dynamicSetting.getKey())) {
283323
assertThat(clusterStateAfterUpdate.metaData().persistentSettings().keySet(), hasItem(dynamicSetting.getKey()));
284-
} else {
324+
assertThat(clusterStateAfterUpdate.metaData().persistentSettings().get(dynamicSetting.getKey()), equalTo("new_value"));
325+
} else if (transientToApply.keys().contains(dynamicSetting.getKey())) {
285326
assertThat(clusterStateAfterUpdate.metaData().transientSettings().keySet(), hasItem(dynamicSetting.getKey()));
327+
assertThat(clusterStateAfterUpdate.metaData().transientSettings().get(dynamicSetting.getKey()), equalTo("new_value"));
328+
} else {
329+
if (existingPersistentSettings.keys().contains(dynamicSetting.getKey())) {
330+
assertThat(clusterStateAfterUpdate.metaData().persistentSettings().keySet(), hasItem(dynamicSetting.getKey()));
331+
assertThat(
332+
clusterStateAfterUpdate.metaData().persistentSettings().get(dynamicSetting.getKey()),
333+
equalTo("existing_value"));
334+
} else if (existingTransientSettings.keys().contains(dynamicSetting.getKey())) {
335+
assertThat(clusterStateAfterUpdate.metaData().transientSettings().keySet(), hasItem(dynamicSetting.getKey()));
336+
assertThat(
337+
clusterStateAfterUpdate.metaData().transientSettings().get(dynamicSetting.getKey()),
338+
equalTo("existing_value"));
339+
} else {
340+
assertThat(clusterStateAfterUpdate.metaData().persistentSettings().keySet(), not(hasItem(dynamicSetting.getKey())));
341+
assertThat(clusterStateAfterUpdate.metaData().transientSettings().keySet(), not(hasItem(dynamicSetting.getKey())));
342+
}
286343
}
287344
}
288345
}
@@ -377,7 +434,7 @@ public void testRemovingArchivedSettingsDoesNotRemoveNonArchivedInvalidOrUnknown
377434
}
378435
}
379436

380-
// the invalid settings should be archived
437+
// the invalid settings should be archived and not present in non-archived form
381438
for (final Setting<String> invalidSetting : invalidSettings) {
382439
if (existingPersistentSettings.keys().contains(invalidSetting.getKey())) {
383440
assertThat(
@@ -388,9 +445,15 @@ public void testRemovingArchivedSettingsDoesNotRemoveNonArchivedInvalidOrUnknown
388445
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
389446
hasItem(ARCHIVED_SETTINGS_PREFIX + invalidSetting.getKey()));
390447
}
448+
assertThat(
449+
clusterStateAfterUpdate.metaData().persistentSettings().keySet(),
450+
not(hasItem(invalidSetting.getKey())));
451+
assertThat(
452+
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
453+
not(hasItem(invalidSetting.getKey())));
391454
}
392455

393-
// the unknown settings should be archived
456+
// the unknown settings should be archived and not present in non-archived form
394457
for (final Setting<String> unknownSetting : unknownSettings) {
395458
if (existingPersistentSettings.keys().contains(unknownSetting.getKey())) {
396459
assertThat(
@@ -401,6 +464,12 @@ public void testRemovingArchivedSettingsDoesNotRemoveNonArchivedInvalidOrUnknown
401464
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
402465
hasItem(ARCHIVED_SETTINGS_PREFIX + unknownSetting.getKey()));
403466
}
467+
assertThat(
468+
clusterStateAfterUpdate.metaData().persistentSettings().keySet(),
469+
not(hasItem(unknownSetting.getKey())));
470+
assertThat(
471+
clusterStateAfterUpdate.metaData().transientSettings().keySet(),
472+
not(hasItem(unknownSetting.getKey())));
404473
}
405474
}
406475

0 commit comments

Comments
 (0)