Add atomic clear unit test

This commit is contained in:
Lukas Joswiak 2021-08-19 11:40:43 -07:00
parent 4107c35538
commit 078e614595
1 changed files with 29 additions and 0 deletions

View File

@ -541,6 +541,30 @@ Future<Void> testClear(UnitTestParameters params) {
return Void();
}
ACTOR template <class Env>
Future<Void> testAtomicClear(UnitTestParameters params) {
state Env env(params.getDataDir(), "class-A", {}, TestKnobType::ATOMIC);
wait(env.setup(ConfigClassSet({ "class-A"_sr })));
state bool restarted = false;
try {
wait(set(env, "class-A"_sr, int64_t{ 1 }));
} catch (Error& e) {
ASSERT(e.code() == error_code_knob_restart_required);
restarted = true;
}
ASSERT(restarted);
restarted = false;
try {
wait(clear(env, "class-A"_sr));
} catch (Error& e) {
ASSERT(e.code() == error_code_knob_restart_required);
restarted = true;
}
ASSERT(restarted);
wait(check(env, Optional<int64_t>{}));
return Void();
}
ACTOR template <class Env>
Future<Void> testGlobalSet(UnitTestParameters params) {
state Env env(params.getDataDir(), "class-A");
@ -654,6 +678,11 @@ TEST_CASE("/fdbserver/ConfigDB/LocalConfiguration/Clear") {
return Void();
}
TEST_CASE("/fdbserver/ConfigDB/LocalConfiguration/AtomicClear") {
wait(testAtomicClear<LocalConfigEnvironment>(params));
return Void();
}
TEST_CASE("/fdbserver/ConfigDB/LocalConfiguration/GlobalSet") {
wait(testGlobalSet<LocalConfigEnvironment>(params));
return Void();