Add compile time switch NO_MULTIREGION_TEST. (#11931)
* Add compile time switch NO_MULTIREGION_TEST. When set, simulation tests will not create configurations with more than one region. Tests requiring multiple regions are ignored. * While the RUN_IGNORED_TESTS setting allows running tests that have been marked as ignored, this should not apply to multiregion tests. Multiregion tests must be completely disabled if the NO_MULTIREGION setting is enabled. --------- Co-authored-by: Dan Lambright <hlambright@apple.com>
This commit is contained in:
parent
ff22876247
commit
fee87e03b2
|
|
@ -125,6 +125,15 @@ set(FDB_FUTURE_VERSION "7.5.0")
|
|||
set(FDB_PREV_RELEASE_VERSION "7.3.41")
|
||||
set(FDB_PREV2_RELEASE_VERSION "7.1.33")
|
||||
|
||||
set(MULTIREGION_TEST TRUE)
|
||||
option(NO_MULTIREGION_TEST "Disable multiregion simulation tests" OFF)
|
||||
|
||||
if (NO_MULTIREGION_TEST)
|
||||
set(MULTIREGION_TEST FALSE)
|
||||
add_definitions(-DNO_MULTIREGION_TEST)
|
||||
message(STATUS "NO_MULTIREGION_TEST is ON")
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
# Flow
|
||||
################################################################################
|
||||
|
|
|
|||
|
|
@ -1675,12 +1675,18 @@ void SimulationConfig::setSpecificConfig(const TestConfig& testConfig) {
|
|||
// Sets generateFearless and number of dataCenters based on testConfig details
|
||||
// The number of datacenters may be overwritten in setRegions
|
||||
void SimulationConfig::setDatacenters(const TestConfig& testConfig) {
|
||||
generateFearless =
|
||||
testConfig.simpleConfig ? false : (testConfig.minimumRegions > 1 || deterministicRandom()->random01() < 0.5);
|
||||
if (testConfig.generateFearless.present()) {
|
||||
// overwrite whatever decision we made before
|
||||
generateFearless = testConfig.generateFearless.get();
|
||||
|
||||
#ifdef NO_MULTIREGION_TEST
|
||||
if (testConfig.minimumRegions > 1 || (testConfig.generateFearless.present() && testConfig.generateFearless.get())) {
|
||||
throw internal_error_msg("Test requires multi-region while the flag is turned off in the build process");
|
||||
}
|
||||
generateFearless = false;
|
||||
#else
|
||||
generateFearless =
|
||||
testConfig.generateFearless.present()
|
||||
? testConfig.generateFearless.get()
|
||||
: (!testConfig.simpleConfig && (testConfig.minimumRegions > 1 || deterministicRandom()->random01() < 0.5));
|
||||
#endif
|
||||
datacenters =
|
||||
testConfig.simpleConfig
|
||||
? 1
|
||||
|
|
@ -2346,10 +2352,12 @@ void SimulationConfig::generateNormalConfig(const TestConfig& testConfig) {
|
|||
setEncryptionAtRestMode(testConfig);
|
||||
setStorageEngine(testConfig);
|
||||
setReplicationType(testConfig);
|
||||
#if (!NO_MULTIREGION_TEST)
|
||||
if (!testConfig.singleRegion &&
|
||||
(generateFearless || (datacenters == 2 && deterministicRandom()->random01() < 0.5))) {
|
||||
setRegions(testConfig);
|
||||
}
|
||||
#endif
|
||||
setMachineCount(testConfig);
|
||||
setCoordinators(testConfig);
|
||||
|
||||
|
|
|
|||
|
|
@ -41,9 +41,21 @@ if(WITH_PYTHON)
|
|||
|
||||
configure_file(${PROJECT_SOURCE_DIR}/tests/CTestCustom.ctest.cmake ${PROJECT_BINARY_DIR}/CTestCustom.ctest @ONLY)
|
||||
|
||||
set(MULTIREGION_IGNORE_PATTERNS "")
|
||||
|
||||
if (NO_MULTIREGION_TEST)
|
||||
list(APPEND MULTIREGION_IGNORE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/fast/ValidateStorage\\.toml$")
|
||||
list(APPEND MULTIREGION_IGNORE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/rare/DcLag\\.toml$")
|
||||
list(APPEND MULTIREGION_IGNORE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/rare/ClogRemoteTLog\\.toml$")
|
||||
list(APPEND MULTIREGION_IGNORE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/rare/FailoverWithSSLag\\.toml$")
|
||||
list(APPEND MULTIREGION_IGNORE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/fast/KillRegionCycle\\.toml$")
|
||||
list(APPEND MULTIREGION_IGNORE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/slow/GcGenerations\\.toml$")
|
||||
list(APPEND MULTIREGION_IGNORE_PATTERNS "${CMAKE_CURRENT_SOURCE_DIR}/slow/DiskFailureCycle\\.toml$")
|
||||
endif()
|
||||
|
||||
configure_testing(TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
ERROR_ON_ADDITIONAL_FILES
|
||||
IGNORE_PATTERNS ".*/CMakeLists.txt" ".*/requirements.txt")
|
||||
ERROR_ON_ADDITIONAL_FILES
|
||||
IGNORE_PATTERNS ".*/CMakeLists.txt" ".*/requirements.txt" ${MULTIREGION_IGNORE_PATTERNS})
|
||||
|
||||
add_fdb_test(TEST_FILES AsyncFileCorrectness.txt UNIT IGNORE)
|
||||
add_fdb_test(TEST_FILES AsyncFileMix.txt UNIT IGNORE)
|
||||
|
|
@ -182,7 +194,6 @@ if(WITH_PYTHON)
|
|||
add_fdb_test(TEST_FILES fast/IncrementTest.toml)
|
||||
add_fdb_test(TEST_FILES fast/InventoryTestAlmostReadOnly.toml)
|
||||
add_fdb_test(TEST_FILES fast/InventoryTestSomeWrites.toml)
|
||||
add_fdb_test(TEST_FILES fast/KillRegionCycle.toml)
|
||||
add_fdb_test(TEST_FILES fast/LocalRatekeeper.toml)
|
||||
add_fdb_test(TEST_FILES fast/LongStackWriteDuringRead.toml)
|
||||
add_fdb_test(TEST_FILES fast/LowLatency.toml)
|
||||
|
|
@ -233,8 +244,20 @@ if(WITH_PYTHON)
|
|||
add_fdb_test(TEST_FILES fast/WriteDuringReadClean.toml)
|
||||
add_fdb_test(TEST_FILES noSim/RandomUnitTests.toml IGNORE)
|
||||
|
||||
if (MULTIREGION_TEST)
|
||||
# ValidateStorage depends on WITH_ROCKSDB
|
||||
add_fdb_test(TEST_FILES slow/DiskFailureCycle.toml)
|
||||
add_fdb_test(TEST_FILES rare/FailoverWithSSLag.toml)
|
||||
add_fdb_test(TEST_FILES rare/DcLag.toml)
|
||||
add_fdb_test(TEST_FILES slow/GcGenerations.toml)
|
||||
add_fdb_test(TEST_FILES fast/KillRegionCycle.toml)
|
||||
add_fdb_test(TEST_FILES rare/ClogRemoteTLog.toml)
|
||||
endif()
|
||||
|
||||
if(WITH_ROCKSDB)
|
||||
add_fdb_test(TEST_FILES fast/ValidateStorage.toml)
|
||||
if(MULTIREGION_TEST)
|
||||
add_fdb_test(TEST_FILES fast/ValidateStorage.toml)
|
||||
endif()
|
||||
add_fdb_test(TEST_FILES noSim/KeyValueStoreRocksDBTest.toml UNIT)
|
||||
add_fdb_test(TEST_FILES noSim/ShardedRocksDBTest.toml UNIT)
|
||||
add_fdb_test(TEST_FILES noSim/ShardedRocksDBCheckpointTest.toml UNIT)
|
||||
|
|
@ -277,7 +300,6 @@ if(WITH_PYTHON)
|
|||
add_fdb_test(TEST_FILES rare/BlobGranuleVerifyLargeClean.toml IGNORE)
|
||||
add_fdb_test(TEST_FILES rare/CheckRelocation.toml)
|
||||
add_fdb_test(TEST_FILES rare/ClogTlog.toml)
|
||||
add_fdb_test(TEST_FILES rare/ClogRemoteTLog.toml)
|
||||
add_fdb_test(TEST_FILES rare/ClogUnclog.toml)
|
||||
add_fdb_test(TEST_FILES rare/CloggedCycleWithKills.toml)
|
||||
add_fdb_test(TEST_FILES rare/ConfigDBUnitTest.toml)
|
||||
|
|
@ -287,9 +309,7 @@ if(WITH_PYTHON)
|
|||
add_fdb_test(TEST_FILES rare/CycleWithKills.toml)
|
||||
add_fdb_test(TEST_FILES rare/CycleWithDeadHall.toml)
|
||||
add_fdb_test(TEST_FILES rare/DataDistributionMetrics.toml)
|
||||
add_fdb_test(TEST_FILES rare/DcLag.toml)
|
||||
add_fdb_test(TEST_FILES rare/ExpectStableThroughput.toml)
|
||||
add_fdb_test(TEST_FILES rare/FailoverWithSSLag.toml)
|
||||
add_fdb_test(TEST_FILES rare/HighContentionPrefixAllocator.toml)
|
||||
add_fdb_test(TEST_FILES rare/InventoryTestHeavyWrites.toml)
|
||||
add_fdb_test(TEST_FILES rare/LargeApiCorrectness.toml)
|
||||
|
|
@ -466,10 +486,8 @@ if(WITH_PYTHON)
|
|||
add_fdb_test(TEST_FILES slow/DDBalanceAndRemove.toml)
|
||||
add_fdb_test(TEST_FILES slow/DDBalanceAndRemoveStatus.toml)
|
||||
add_fdb_test(TEST_FILES slow/DifferentClustersSameRV.toml)
|
||||
add_fdb_test(TEST_FILES slow/DiskFailureCycle.toml)
|
||||
add_fdb_test(TEST_FILES slow/ExcludeIncludeStorageServers.toml)
|
||||
add_fdb_test(TEST_FILES slow/FastTriggeredWatches.toml)
|
||||
add_fdb_test(TEST_FILES slow/GcGenerations.toml)
|
||||
add_fdb_test(TEST_FILES slow/LongRunning.toml LONG_RUNNING)
|
||||
add_fdb_test(TEST_FILES slow/LowLatencyWithFailures.toml)
|
||||
add_fdb_test(TEST_FILES slow/MoveKeysClean.toml)
|
||||
|
|
|
|||
Loading…
Reference in New Issue