From 9fd22546eaffa6f290efe41a423308d2b4dce652 Mon Sep 17 00:00:00 2001
From: Lukas Joswiak <lukas.joswiak@snowflake.com>
Date: Mon, 12 Sep 2022 22:58:00 -0700
Subject: [PATCH] Add workload to test coordinator changes with dynamic knobs

---
 tests/CMakeLists.txt                          |  5 ++--
 tests/fast/ConfigIncrement.toml               |  3 +-
 .../ConfigIncrementChangeCoordinators.toml    | 28 +++++++++++++++++++
 tests/fast/ConfigIncrementWithKills.toml      |  2 +-
 4 files changed, 33 insertions(+), 5 deletions(-)
 create mode 100644 tests/fast/ConfigIncrementChangeCoordinators.toml

diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 12e532c7c6..d4aeaed61c 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -139,6 +139,9 @@ if(WITH_PYTHON)
   add_fdb_test(TEST_FILES fast/CloggedSideband.toml)
   add_fdb_test(TEST_FILES fast/CompressionUtilsUnit.toml)
   add_fdb_test(TEST_FILES fast/ConfigureLocked.toml)
+  add_fdb_test(TEST_FILES fast/ConfigIncrement.toml)
+  add_fdb_test(TEST_FILES fast/ConfigIncrementChangeCoordinators.toml)
+  add_fdb_test(TEST_FILES fast/ConfigIncrementWithKills.toml)
   add_fdb_test(TEST_FILES fast/ConstrainedRandomSelector.toml)
   add_fdb_test(TEST_FILES fast/CycleAndLock.toml)
   add_fdb_test(TEST_FILES fast/CycleTest.toml)
@@ -211,8 +214,6 @@ if(WITH_PYTHON)
   add_fdb_test(TEST_FILES rare/ClogUnclog.toml)
   add_fdb_test(TEST_FILES rare/CloggedCycleWithKills.toml)
   add_fdb_test(TEST_FILES rare/ConfigDBUnitTest.toml)
-  add_fdb_test(TEST_FILES rare/ConfigIncrement.toml)
-  add_fdb_test(TEST_FILES rare/ConfigIncrementWithKills.toml)
   add_fdb_test(TEST_FILES rare/ConflictRangeCheck.toml)
   add_fdb_test(TEST_FILES rare/ConflictRangeRYOWCheck.toml)
   add_fdb_test(TEST_FILES rare/CycleRollbackClogged.toml)
diff --git a/tests/fast/ConfigIncrement.toml b/tests/fast/ConfigIncrement.toml
index 5c3c032fb8..2684e90df9 100644
--- a/tests/fast/ConfigIncrement.toml
+++ b/tests/fast/ConfigIncrement.toml
@@ -9,7 +9,7 @@ testTitle = 'ConfigIncrement'
   incrementActors = 2
   incrementsPerActor = 10
   meanSleepWithinTransactions = 0.01
-  meanSleepBetweenTransactions = 10
+  meanSleepBetweenTransactions = 0.1
 
   [[test.workload]]
   testName = 'Attrition'
@@ -22,4 +22,3 @@ testTitle = 'ConfigIncrement'
   testName = 'ChangeConfig'
   maxDelayBeforeChange = 120.0
   coordinators = 'auto'
-  coordinatorChanges = 2
diff --git a/tests/fast/ConfigIncrementChangeCoordinators.toml b/tests/fast/ConfigIncrementChangeCoordinators.toml
new file mode 100644
index 0000000000..caf5f10309
--- /dev/null
+++ b/tests/fast/ConfigIncrementChangeCoordinators.toml
@@ -0,0 +1,28 @@
+# Similar to the ConfigIncrement workload, but with a larger amount of time
+# between transactions to allow a coordinator change to take place in between
+# transactions.
+[configuration]
+configDB = 'paxos'
+
+[[test]]
+testTitle = 'ConfigIncrementChangeCoordinators'
+
+  [[test.workload]]
+  testName = 'ConfigIncrement'
+  incrementActors = 2
+  incrementsPerActor = 10
+  meanSleepWithinTransactions = 0.01
+  meanSleepBetweenTransactions = 10
+
+  [[test.workload]]
+  testName = 'Attrition'
+  machinesToKill = 10
+  machinesToLeave = 3
+  reboot = true
+  testDuration = 10.0
+
+  [[test.workload]]
+  testName = 'ChangeConfig'
+  maxDelayBeforeChange = 120.0
+  coordinators = 'auto'
+  coordinatorChanges = 2
diff --git a/tests/fast/ConfigIncrementWithKills.toml b/tests/fast/ConfigIncrementWithKills.toml
index 5a8aff82de..ea2b6b4a70 100644
--- a/tests/fast/ConfigIncrementWithKills.toml
+++ b/tests/fast/ConfigIncrementWithKills.toml
@@ -2,7 +2,7 @@
 configDB = 'paxos'
 
 [[test]]
-testTitle = 'ConfigIncrement'
+testTitle = 'ConfigIncrementWithKills'
 
   [[test.workload]]
   testName = 'ConfigIncrement'