Add versionepoch fdbcli tests

Also removes the old targetversion fdbcli tests, as this command has
been removed (at least for now).
This commit is contained in:
Lukas Joswiak 2022-04-28 11:11:23 -04:00
parent 475b157310
commit 18f80256b0
1 changed files with 24 additions and 38 deletions

View File

@ -280,43 +280,31 @@ def suspend(logger):
assert get_value_from_status_json(False, 'client', 'database_status', 'available')
def extract_version_epoch(cli_output):
return int(cli_output.split("\n")[-1].split(" ")[-1])
@enable_logging()
def targetversion(logger):
version1 = run_fdbcli_command('targetversion getepoch')
def versionepoch(logger):
version1 = run_fdbcli_command('versionepoch')
assert version1 == "Version epoch is unset"
version2 = int(run_fdbcli_command('getversion'))
logger.debug("read version: {}".format(version2))
assert version2 >= 0
# set the version epoch to the default value
logger.debug("setting version epoch to default")
run_fdbcli_command('targetversion add 0')
# get the version epoch
versionepoch1 = extract_version_epoch(run_fdbcli_command('targetversion getepoch'))
logger.debug("version epoch: {}".format(versionepoch1))
# make sure the version increased
version3 = int(run_fdbcli_command('getversion'))
logger.debug("read version: {}".format(version3))
assert version3 >= version2
# slightly increase the version epoch
versionepoch2 = extract_version_epoch(run_fdbcli_command("targetversion setepoch {}".format(versionepoch1 + 1000000)))
logger.debug("version epoch: {}".format(versionepoch2))
assert versionepoch2 == versionepoch1 + 1000000
# slightly decrease the version epoch
versionepoch3 = extract_version_epoch(run_fdbcli_command("targetversion add {}".format(-1000000)))
logger.debug("version epoch: {}".format(versionepoch3))
assert versionepoch3 == versionepoch2 - 1000000 == versionepoch1
# the versions should still be increasing
version4 = int(run_fdbcli_command('getversion'))
logger.debug("read version: {}".format(version4))
assert version4 >= version3
# clear the version epoch and make sure it is now unset
run_fdbcli_command("targetversion clearepoch")
version5 = run_fdbcli_command('targetversion getepoch')
assert version5 == "Version epoch is unset"
version2 = run_fdbcli_command('versionepoch get')
assert version2 == "Version epoch is unset"
version3 = run_fdbcli_command('versionepoch commit')
assert version3 == "Must set the version epoch before committing it (see `versionepoch enable`)"
version4 = run_fdbcli_command('versionepoch enable')
assert version4 == "Version epoch enabled. Run `versionepoch commit` to irreversibly jump to the target version"
version5 = run_fdbcli_command('versionepoch get')
assert version5 == "Current version epoch is 0"
version6 = run_fdbcli_command('versionepoch set 10')
assert version6 == "Version epoch enabled. Run `versionepoch commit` to irreversibly jump to the target version"
version7 = run_fdbcli_command('versionepoch get')
assert version7 == "Current version epoch is 10"
run_fdbcli_command('versionepoch disable')
version8 = run_fdbcli_command('versionepoch get')
assert version8 == "Version epoch is unset"
version9 = run_fdbcli_command('versionepoch enable')
assert version9 == "Version epoch enabled. Run `versionepoch commit` to irreversibly jump to the target version"
version10 = run_fdbcli_command('versionepoch get')
assert version10 == "Current version epoch is 0"
version11 = run_fdbcli_command('versionepoch commit')
assert version11.startswith("Current read version is ")
def get_value_from_status_json(retry, *args):
@ -747,9 +735,7 @@ if __name__ == '__main__':
throttle()
triggerddteaminfolog()
tenants()
# TODO: similar to advanceversion, this seems to cause some issues, so disable for now
# This must go last, otherwise the version advancement can mess with the other tests
# targetversion()
versionepoch()
else:
assert args.process_number > 1, "Process number should be positive"
coordinators()