Merge branch 'release-6.2' into atn34/configure-locked

This commit is contained in:
Andrew Noyes 2020-02-11 13:51:41 -08:00 committed by GitHub
commit 86089fdc1b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 284 additions and 249 deletions

View File

@ -187,7 +187,9 @@ if(NOT WIN32)
else()
add_subdirectory(fdbservice)
endif()
add_subdirectory(bindings)
if(WITH_PYTHON)
add_subdirectory(bindings)
endif()
add_subdirectory(fdbbackup)
add_subdirectory(tests)
if(WITH_DOCUMENTATION)
@ -205,13 +207,13 @@ endif()
# process compile commands for IDE
################################################################################
if (CMAKE_EXPORT_COMPILE_COMMANDS)
if (CMAKE_EXPORT_COMPILE_COMMANDS AND WITH_PYTHON)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/compile_commands.json
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/build/gen_compile_db.py
ARGS -b ${CMAKE_CURRENT_BINARY_DIR} -s ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_CURRENT_SOURCE_DIR}/compile_commands.json ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/build/gen_compile_db.py ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json
COMMENT "Build compile commands for IDE"
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/compile_commands.json
COMMAND $<TARGET_FILE:Python::Interpreter> ${CMAKE_CURRENT_SOURCE_DIR}/build/gen_compile_db.py
ARGS -b ${CMAKE_CURRENT_BINARY_DIR} -s ${CMAKE_CURRENT_SOURCE_DIR} -o ${CMAKE_CURRENT_SOURCE_DIR}/compile_commands.json ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/build/gen_compile_db.py ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json
COMMENT "Build compile commands for IDE"
)
add_custom_target(processed_compile_commands ALL DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/compile_commands.json ${CMAKE_CURRENT_BINARY_DIR}/compile_commands.json)
endif()

View File

@ -85,7 +85,11 @@ if(WIN32)
# see: https://docs.microsoft.com/en-us/windows/desktop/WinProg/using-the-windows-headers
# this sets the windows target version to Windows Server 2003
set(WINDOWS_TARGET 0x0502)
add_compile_options(/W3 /EHsc /bigobj $<$<CONFIG:Release>:/Zi> /MP /FC)
if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
# TODO: This doesn't seem to be good style, but I couldn't find a better way so far
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
add_compile_options(/W0 /EHsc /bigobj $<$<CONFIG:Release>:/Zi> /MP /FC /Gm-)
add_compile_definitions(_WIN32_WINNT=${WINDOWS_TARGET} WINVER=${WINDOWS_TARGET} NTDDI_VERSION=0x05020000 BOOST_ALL_NO_LIB)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd")

View File

@ -33,7 +33,7 @@ endif()
################################################################################
set(WITH_JAVA OFF)
find_package(JNI 1.8 REQUIRED)
find_package(JNI 1.8)
find_package(Java 1.8 COMPONENTS Development)
if(JNI_FOUND AND Java_FOUND AND Java_Development_FOUND)
set(WITH_JAVA ON)
@ -51,7 +51,7 @@ find_package(Python COMPONENTS Interpreter)
if(Python_Interpreter_FOUND)
set(WITH_PYTHON ON)
else()
message(FATAL_ERROR "Could not found a suitable python interpreter")
#message(FATAL_ERROR "Could not found a suitable python interpreter")
set(WITH_PYTHON OFF)
endif()
@ -102,6 +102,8 @@ function(print_components)
message(STATUS "Build Ruby bindings: ${WITH_RUBY}")
message(STATUS "Build Python sdist (make package): ${WITH_PYTHON}")
message(STATUS "Build Documentation (make html): ${WITH_DOCUMENTATION}")
message(STATUS "Build Bindings (depends on Python): ${WITH_PYTHON}")
message(STATUS "Configure CTest (depends on Python): ${WITH_PYTHON}")
message(STATUS "=========================================")
endfunction()

View File

@ -185,12 +185,12 @@ function(add_flow_target)
if(WIN32)
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${generated}"
COMMAND $<TARGET_FILE:actorcompiler> "${CMAKE_CURRENT_SOURCE_DIR}/${src}" "${CMAKE_CURRENT_BINARY_DIR}/${generated}" ${actor_compiler_flags}
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}" actorcompiler
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}"
COMMENT "Compile actor: ${src}")
else()
add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${generated}"
COMMAND ${MONO_EXECUTABLE} ${actor_exe} "${CMAKE_CURRENT_SOURCE_DIR}/${src}" "${CMAKE_CURRENT_BINARY_DIR}/${generated}" ${actor_compiler_flags} > /dev/null
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}" actorcompiler
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/${src}"
COMMENT "Compile actor: ${src}")
endif()
else()
@ -220,15 +220,18 @@ function(add_flow_target)
get_filename_component(dname ${CMAKE_CURRENT_SOURCE_DIR} NAME)
string(REGEX REPLACE "\\..*" "" fname ${src})
string(REPLACE / _ fname ${fname})
set_source_files_properties(${src} PROPERTIES COMPILE_DEFINITIONS FNAME=${dname}_${fname})
#set_source_files_properties(${src} PROPERTIES COMPILE_DEFINITIONS FNAME=${dname}_${fname})
endforeach()
set_property(TARGET ${AFT_NAME} PROPERTY SOURCE_FILES ${AFT_SRCS})
set_property(TARGET ${AFT_NAME} PROPERTY COVERAGE_FILTERS ${AFT_SRCS})
add_custom_target(${AFT_NAME}_actors DEPENDS ${generated_files})
add_dependencies(${AFT_NAME}_actors actorcompiler)
add_dependencies(${AFT_NAME} ${AFT_NAME}_actors)
assert_no_version_h(${AFT_NAME}_actors)
if(NOT WIN32)
assert_no_version_h(${AFT_NAME}_actors)
endif()
generate_coverage_xml(${AFT_NAME})
if(strip_target)
strip_debug_symbols(${AFT_NAME})

View File

@ -269,6 +269,18 @@ Using the table name as the subspace, we could implement the common row-oriented
cols[c] = v
return cols
Versionstamps
-------------
A common data model is to index your data with a sequencing prefix to allow log scans or tails of recent data. This index requires a unique, monotonically increasing value, like an AUTO_INCREMENT PRIMARY KEY in SQL. This could be implemented at the client level by reading the value for conflict checks before every increment. A better solution is the versionstamp, which can be generated at commit-time with no read conflict ranges, providing a unique sequence ID in a single conflict-free write.
Versioning commits provides FoundationDB with MVCC guarantees and transactional integrity. Versionstamps write the transaction's commit version as a value to an arbitrary key as part of the same transaction, allowing the client to leverage the version's unique and serial properties. Because the versionstamp is generated at commit-time, the versionstamped key cannot be read in the same transaction that it is written, and the versionstamp's value will be unknown until the transaction is committed. After the transaction is committed, the versionstamp can be obtained.
The versionstamp guarantees uniqueness and monotonically increasing values for the entire lifetime of a single FDB cluster. This is even true if the cluster is restored from a backup, as a restored cluster will begin at a higher version than when the backup was taken. Special care must be taken when moving data between two FoundationDB clusters containing versionstamps, as the differing cluster versions might break the monotonicity.
There are two concepts of versionstamp depending on your context. At the fdb_c client level, or any binding outside of the Tuple layer, the 'versionstamp' is 10 bytes: the transaction's commit version (8 bytes) and transaction batch order (2 bytes). The user can manually add 2 additional bytes to provide application level ordering. The tuple layer provides a useful api for getting and setting both the 10 byte system version and the 2 byte user version. In the context of the Tuple layer, the 'versionstamp' is all 12 bytes. For examples on how to use the versionstamp in the python binding, see the :doc:`api-python` documentation.
.. _data-modeling-entity-relationship:
Entity-relationship models

View File

@ -2,6 +2,15 @@
Release Notes
#############
6.2.16
======
Fixes
-----
* Storage servers could fail to advance their version correctly in response to empty commits. `(PR #2617) <https://github.com/apple/foundationdb/pull/2617>`_.
* The ``TR_FLAG_DISABLE_MACHINE_TEAM_REMOVER``, ``TR_FLAG_REMOVE_MT_WITH_MOST_TEAMS``, ``TR_FLAG_DISABLE_SERVER_TEAM_REMOVER``, and ``BUGGIFY_ALL_COORDINATION`` knobs could not be set at runtime. `(PR #2661) <https://github.com/apple/foundationdb/pull/2661>`_.
6.2.15
======

View File

@ -158,7 +158,7 @@ description is not currently required but encouraged.
defaultFor="500"/>
<Option name="transaction_retry_limit" code="501"
paramType="Int" paramDescription="number of times to retry"
description="Set a timeout in milliseconds which, when elapsed, will cause a transaction automatically to be cancelled. This sets the ``retry_limit`` option of each transaction created by this database. See the transaction option description for more information."
description="Set a maximum number of retries after which additional calls to ``onError`` will throw the most recently seen error code. This sets the ``retry_limit`` option of each transaction created by this database. See the transaction option description for more information."
defaultFor="501"/>
<Option name="transaction_max_retry_delay" code="502"
paramType="Int" paramDescription="value in milliseconds of maximum delay"
@ -217,7 +217,7 @@ description is not currently required but encouraged.
<Option name="debug_transaction_identifier" code="403" paramType="String" paramDescription="String identifier to be used when tracing or profiling this transaction. The identifier must not exceed 100 characters."
description="Sets a client provided identifier for the transaction that will be used in scenarios like tracing or profiling. Client trace logging or transaction profiling must be separately enabled." />
<Option name="log_transaction" code="404"
description="Enables tracing for this transaction and logs results to the client trace logs. The DEBUG_TRANSACTION_IDENTIFIER option must be set before using this option, and client trace logging must be enabled and to get log output." />
description="Enables tracing for this transaction and logs results to the client trace logs. The DEBUG_TRANSACTION_IDENTIFIER option must be set before using this option, and client trace logging must be enabled to get log output." />
<Option name="transaction_logging_max_field_length" code="405" paramType="Int" paramDescription="Maximum length of escaped key and value fields."
description="Sets the maximum escaped length of key and value fields to be logged to the trace file via the LOG_TRANSACTION option, after which the field will be truncated. A negative value disables truncation." />
<Option name="timeout" code="500"
@ -240,7 +240,7 @@ description is not currently required but encouraged.
<Option name="snapshot_ryw_disable" code="601"
description="Snapshot read operations will not see the results of writes done in the same transaction. This was the default behavior prior to API version 300." />
<Option name="lock_aware" code="700"
description="The transaction can read and write to locked databases, and is resposible for checking that it took the lock."/>
description="The transaction can read and write to locked databases, and is responsible for checking that it took the lock."/>
<Option name="used_during_commit_protection_disable" code="701"
description="By default, operations that are performed on a transaction while it is being committed will not only fail themselves, but they will attempt to fail other in-flight operations (such as the commit) as well. This behavior is intended to help developers discover situations where operations could be unintentionally executed after the transaction has been reset. Setting this option removes that protection, causing only the offending operation to fail."/>
<Option name="read_lock_aware" code="702"

View File

@ -2690,16 +2690,16 @@ ACTOR Future<Void> serverTeamRemover(DDTeamCollection* self) {
TraceEvent("ServerTeamRemover", self->distributorId)
.detail("ServerTeamToRemove", st->getServerIDsStr())
.detail("NumProcessTeamsOnTheServerTeam", maxNumProcessTeams)
.detail("CurrentServerTeamNumber", self->teams.size())
.detail("DesiredTeam", desiredServerTeams);
.detail("CurrentServerTeams", self->teams.size())
.detail("DesiredServerTeams", desiredServerTeams);
numServerTeamRemoved++;
} else {
if (numServerTeamRemoved > 0) {
// Only trace the information when we remove a machine team
TraceEvent("ServerTeamRemoverDone", self->distributorId)
.detail("CurrentServerTeamNumber", self->teams.size())
.detail("DesiredServerTeam", desiredServerTeams)
.detail("CurrentServerTeams", self->teams.size())
.detail("DesiredServerTeams", desiredServerTeams)
.detail("NumServerTeamRemoved", numServerTeamRemoved);
self->traceTeamCollectionInfo();
numServerTeamRemoved = 0; //Reset the counter to avoid keep printing the message

View File

@ -90,8 +90,8 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs, bool isSimula
// Data distribution queue
init( HEALTH_POLL_TIME, 1.0 );
init( BEST_TEAM_STUCK_DELAY, 1.0 );
init(BG_REBALANCE_POLLING_INTERVAL, 10.0);
init(BG_REBALANCE_SWITCH_CHECK_INTERVAL, 5.0); if (randomize && BUGGIFY) BG_REBALANCE_SWITCH_CHECK_INTERVAL = 1.0;
init( BG_REBALANCE_POLLING_INTERVAL, 10.0 );
init( BG_REBALANCE_SWITCH_CHECK_INTERVAL, 5.0 ); if (randomize && BUGGIFY) BG_REBALANCE_SWITCH_CHECK_INTERVAL = 1.0;
init( DD_QUEUE_LOGGING_INTERVAL, 5.0 );
init( RELOCATION_PARALLELISM_PER_SOURCE_SERVER, 2 ); if( randomize && BUGGIFY ) RELOCATION_PARALLELISM_PER_SOURCE_SERVER = 1;
init( DD_QUEUE_MAX_KEY_SERVERS, 100 ); if( randomize && BUGGIFY ) DD_QUEUE_MAX_KEY_SERVERS = 1;
@ -205,16 +205,16 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs, bool isSimula
init( DD_CHECK_INVALID_LOCALITY_DELAY, 60 ); if( randomize && BUGGIFY ) DD_CHECK_INVALID_LOCALITY_DELAY = 1 + deterministicRandom()->random01() * 600;
// TeamRemover
TR_FLAG_DISABLE_MACHINE_TEAM_REMOVER = false; if( randomize && BUGGIFY ) TR_FLAG_DISABLE_MACHINE_TEAM_REMOVER = deterministicRandom()->random01() < 0.1 ? true : false; // false by default. disable the consistency check when it's true
init( TR_FLAG_DISABLE_MACHINE_TEAM_REMOVER, false ); if( randomize && BUGGIFY ) TR_FLAG_DISABLE_MACHINE_TEAM_REMOVER = deterministicRandom()->random01() < 0.1 ? true : false; // false by default. disable the consistency check when it's true
init( TR_REMOVE_MACHINE_TEAM_DELAY, 60.0 ); if( randomize && BUGGIFY ) TR_REMOVE_MACHINE_TEAM_DELAY = deterministicRandom()->random01() * 60.0;
TR_FLAG_REMOVE_MT_WITH_MOST_TEAMS = true; if( randomize && BUGGIFY ) TR_FLAG_REMOVE_MT_WITH_MOST_TEAMS = deterministicRandom()->random01() < 0.1 ? true : false;
TR_FLAG_DISABLE_SERVER_TEAM_REMOVER = false; if( randomize && BUGGIFY ) TR_FLAG_DISABLE_SERVER_TEAM_REMOVER = deterministicRandom()->random01() < 0.1 ? true : false; // false by default. disable the consistency check when it's true
init( TR_FLAG_REMOVE_MT_WITH_MOST_TEAMS, true ); if( randomize && BUGGIFY ) TR_FLAG_REMOVE_MT_WITH_MOST_TEAMS = deterministicRandom()->random01() < 0.1 ? true : false;
init( TR_FLAG_DISABLE_SERVER_TEAM_REMOVER, false ); if( randomize && BUGGIFY ) TR_FLAG_DISABLE_SERVER_TEAM_REMOVER = deterministicRandom()->random01() < 0.1 ? true : false; // false by default. disable the consistency check when it's true
init( TR_REMOVE_SERVER_TEAM_DELAY, 60.0 ); if( randomize && BUGGIFY ) TR_REMOVE_SERVER_TEAM_DELAY = deterministicRandom()->random01() * 60.0;
init( TR_REMOVE_SERVER_TEAM_EXTRA_DELAY, 5.0 ); if( randomize && BUGGIFY ) TR_REMOVE_SERVER_TEAM_EXTRA_DELAY = deterministicRandom()->random01() * 10.0;
// Redwood Storage Engine
init( PREFIX_TREE_IMMEDIATE_KEY_SIZE_LIMIT, 30 );
init( PREFIX_TREE_IMMEDIATE_KEY_SIZE_MIN, 0 );
init( PREFIX_TREE_IMMEDIATE_KEY_SIZE_MIN, 0 );
// KeyValueStore SQLITE
init( CLEAR_BUFFER_SIZE, 20000 );
@ -370,11 +370,11 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs, bool isSimula
init( CLIENT_REGISTER_INTERVAL, 600.0 );
init( INCOMPATIBLE_PEERS_LOGGING_INTERVAL, 600 ); if( randomize && BUGGIFY ) INCOMPATIBLE_PEERS_LOGGING_INTERVAL = 60.0;
init( EXPECTED_MASTER_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_TLOG_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_LOG_ROUTER_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_PROXY_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_RESOLVER_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_MASTER_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_TLOG_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_LOG_ROUTER_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_PROXY_FITNESS, ProcessClass::UnsetFit );
init( EXPECTED_RESOLVER_FITNESS, ProcessClass::UnsetFit );
init( RECRUITMENT_TIMEOUT, 600 ); if( randomize && BUGGIFY ) RECRUITMENT_TIMEOUT = deterministicRandom()->coinflip() ? 60.0 : 1.0;
init( POLICY_RATING_TESTS, 200 ); if( randomize && BUGGIFY ) POLICY_RATING_TESTS = 20;
@ -395,7 +395,7 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs, bool isSimula
init( MIN_REBOOT_TIME, 4.0 ); if( longReboots ) MIN_REBOOT_TIME = 10.0;
init( MAX_REBOOT_TIME, 5.0 ); if( longReboots ) MAX_REBOOT_TIME = 20.0;
init( LOG_DIRECTORY, "."); // Will be set to the command line flag.
init(SERVER_MEM_LIMIT, 8LL << 30);
init( SERVER_MEM_LIMIT, 8LL << 30 );
//Ratekeeper
bool slowRatekeeper = randomize && BUGGIFY;
@ -498,7 +498,7 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs, bool isSimula
// Buggification
init( BUGGIFIED_EVENTUAL_CONSISTENCY, 1.0 );
BUGGIFY_ALL_COORDINATION = false; if( randomize && BUGGIFY ) BUGGIFY_ALL_COORDINATION = true;
init( BUGGIFY_ALL_COORDINATION, false ); if( randomize && BUGGIFY ) BUGGIFY_ALL_COORDINATION = true;
// Status
init( STATUS_MIN_TIME_BETWEEN_REQUESTS, 0.0 );
@ -516,7 +516,7 @@ ServerKnobs::ServerKnobs(bool randomize, ClientKnobs* clientKnobs, bool isSimula
// Timekeeper
init( TIME_KEEPER_DELAY, 10 );
init( TIME_KEEPER_MAX_ENTRIES, 3600 * 24 * 30 * 6); if( randomize && BUGGIFY ) { TIME_KEEPER_MAX_ENTRIES = 2; }
init( TIME_KEEPER_MAX_ENTRIES, 3600 * 24 * 30 * 6 ); if( randomize && BUGGIFY ) { TIME_KEEPER_MAX_ENTRIES = 2; }
// clang-format on

View File

@ -2768,9 +2768,9 @@ ACTOR Future<Void> update( StorageServer* data, bool* pReceivedUpdate )
if(ver != invalidVersion) {
data->lastVersionWithData = ver;
} else {
ver = cloneCursor2->version().version - 1;
}
}
ver = cloneCursor2->version().version - 1;
if(injectedChanges) data->lastVersionWithData = ver;
data->updateEagerReads = NULL;

View File

@ -244,7 +244,7 @@ public:
try {
if (error) {
// Log the error...
TraceEvent(SevWarn, errContext, errID).suppressFor(1.0).detail("Message", error.value());
TraceEvent(SevWarn, errContext, errID).suppressFor(1.0).detail("ErrorCode", error.value()).detail("Message", error.message());
p.sendError( connection_failed() );
} else
p.send( Void() );
@ -416,15 +416,15 @@ private:
boost::system::error_code error;
socket.close(error);
if (error)
TraceEvent(SevWarn, "N2_CloseError", id).suppressFor(1.0).detail("Message", error.value());
TraceEvent(SevWarn, "N2_CloseError", id).suppressFor(1.0).detail("ErrorCode", error.value()).detail("Message", error.message());
}
void onReadError( const boost::system::error_code& error ) {
TraceEvent(SevWarn, "N2_ReadError", id).suppressFor(1.0).detail("Message", error.value());
TraceEvent(SevWarn, "N2_ReadError", id).suppressFor(1.0).detail("ErrorCode", error.value()).detail("Message", error.message());
closeSocket();
}
void onWriteError( const boost::system::error_code& error ) {
TraceEvent(SevWarn, "N2_WriteError", id).suppressFor(1.0).detail("Message", error.value());
TraceEvent(SevWarn, "N2_WriteError", id).suppressFor(1.0).detail("ErrorCode", error.value()).detail("Message", error.message());
closeSocket();
}
};

View File

@ -10,212 +10,215 @@ set(TEST_LOG_FORMAT "xml" CACHE STRING "Format for test trace files (xml, json)"
# for the restart test we optimally want to use the last stable fdbserver
# to test upgrades
if(WITH_PYTHON)
find_program(OLD_FDBSERVER_BINARY
fdbserver
HINTS /usr/sbin /usr/libexec /usr/local/sbin /usr/local/libexec)
if(OLD_FDBSERVER_BINARY)
message(STATUS "Use old fdb at ${OLD_FDBSERVER_BINARY}")
else()
set(fdbserver_location ${CMAKE_BINARY_DIR}/bin/fdbserver)
set(OLD_FDBSERVER_BINARY ${fdbserver_location} CACHE FILEPATH "Old fdbserver binary" FORCE)
message(WARNING "\
No old fdbserver binary found - using ${fdbserver_location} \
It is recommended to install the current stable version from https://www.foundationdb.org/download/ \
Or provide a path to another fdbserver")
endif()
find_program(OLD_FDBSERVER_BINARY
fdbserver
HINTS /usr/sbin /usr/libexec /usr/local/sbin /usr/local/libexec)
if(OLD_FDBSERVER_BINARY)
message(STATUS "Use old fdb at ${OLD_FDBSERVER_BINARY}")
set(TestRunner "${PROJECT_SOURCE_DIR}/tests/TestRunner/TestRunner.py")
configure_file(${PROJECT_SOURCE_DIR}/tests/CTestCustom.ctest ${PROJECT_BINARY_DIR}/CTestCustom.ctest @ONLY)
configure_testing(TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
ERROR_ON_ADDITIONAL_FILES
IGNORE_PATTERNS ".*/CMakeLists.txt")
add_fdb_test(TEST_FILES AsyncFileCorrectness.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileMix.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileRead.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileReadRandom.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileWrite.txt UNIT IGNORE)
add_fdb_test(TEST_FILES BackupContainers.txt IGNORE)
add_fdb_test(TEST_FILES BandwidthThrottle.txt IGNORE)
add_fdb_test(TEST_FILES BigInsert.txt IGNORE)
add_fdb_test(TEST_FILES BlobStore.txt IGNORE)
add_fdb_test(TEST_FILES ConsistencyCheck.txt IGNORE)
add_fdb_test(TEST_FILES DDMetricsExclude.txt IGNORE)
add_fdb_test(TEST_FILES DiskDurability.txt IGNORE)
add_fdb_test(TEST_FILES FileSystem.txt IGNORE)
add_fdb_test(TEST_FILES Happy.txt IGNORE)
add_fdb_test(TEST_FILES Mako.txt IGNORE)
add_fdb_test(TEST_FILES IncrementalDelete.txt IGNORE)
add_fdb_test(TEST_FILES KVStoreMemTest.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreReadMostly.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreTest.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreTestRead.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreTestWrite.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreValueSize.txt UNIT IGNORE)
add_fdb_test(TEST_FILES LayerStatusMerge.txt IGNORE)
add_fdb_test(TEST_FILES PureNetwork.txt IGNORE)
add_fdb_test(TEST_FILES RRW2500.txt IGNORE)
add_fdb_test(TEST_FILES RandomRead.txt IGNORE)
add_fdb_test(TEST_FILES RandomReadWrite.txt IGNORE)
add_fdb_test(TEST_FILES ReadAbsent.txt IGNORE)
add_fdb_test(TEST_FILES ReadHalfAbsent.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectnessUnits.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectnessBTree.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectnessPager.txt IGNORE)
add_fdb_test(TEST_FILES fast/RedwoodCorrectnessBTree.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectness.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodPerfTests.txt IGNORE)
if (NOT USE_UBSAN) # TODO re-enable in UBSAN after https://github.com/apple/foundationdb/issues/2410 is resolved
add_fdb_test(TEST_FILES SimpleExternalTest.txt)
else()
add_fdb_test(TEST_FILES SimpleExternalTest.txt IGNORE)
endif()
add_fdb_test(TEST_FILES SlowTask.txt IGNORE)
add_fdb_test(TEST_FILES SpecificUnitTest.txt IGNORE)
add_fdb_test(TEST_FILES StreamingWrite.txt IGNORE)
add_fdb_test(TEST_FILES ThreadSafety.txt IGNORE)
add_fdb_test(TEST_FILES Throttling.txt IGNORE)
add_fdb_test(TEST_FILES TraceEventMetrics.txt IGNORE)
add_fdb_test(TEST_FILES default.txt IGNORE)
add_fdb_test(TEST_FILES errors.txt IGNORE)
add_fdb_test(TEST_FILES fail.txt IGNORE)
add_fdb_test(TEST_FILES killall.txt IGNORE)
add_fdb_test(TEST_FILES latency.txt IGNORE)
add_fdb_test(TEST_FILES performance-fs.txt IGNORE)
add_fdb_test(TEST_FILES performance.txt IGNORE)
add_fdb_test(TEST_FILES ping.TXT IGNORE)
add_fdb_test(TEST_FILES pingServers.TXT IGNORE)
add_fdb_test(TEST_FILES pt.TXT IGNORE)
add_fdb_test(TEST_FILES randomSelector.txt IGNORE)
add_fdb_test(TEST_FILES selectorCorrectness.txt IGNORE)
add_fdb_test(TEST_FILES fast/AtomicBackupCorrectness.txt)
add_fdb_test(TEST_FILES fast/AtomicBackupToDBCorrectness.txt)
add_fdb_test(TEST_FILES fast/AtomicOps.txt)
add_fdb_test(TEST_FILES fast/AtomicOpsApiCorrectness.txt)
add_fdb_test(TEST_FILES fast/BackupCorrectness.txt)
add_fdb_test(TEST_FILES fast/BackupCorrectnessClean.txt)
add_fdb_test(TEST_FILES fast/BackupToDBCorrectness.txt)
add_fdb_test(TEST_FILES fast/BackupToDBCorrectnessClean.txt)
add_fdb_test(TEST_FILES fast/CloggedSideband.txt)
add_fdb_test(TEST_FILES fast/ConfigureLocked.txt)
add_fdb_test(TEST_FILES fast/ConstrainedRandomSelector.txt)
add_fdb_test(TEST_FILES fast/CycleAndLock.txt)
add_fdb_test(TEST_FILES fast/CycleTest.txt)
add_fdb_test(TEST_FILES fast/FuzzApiCorrectness.txt)
add_fdb_test(TEST_FILES fast/FuzzApiCorrectnessClean.txt)
add_fdb_test(TEST_FILES fast/IncrementTest.txt)
add_fdb_test(TEST_FILES fast/InventoryTestAlmostReadOnly.txt)
add_fdb_test(TEST_FILES fast/InventoryTestSomeWrites.txt)
add_fdb_test(TEST_FILES fast/KillRegionCycle.txt)
add_fdb_test(TEST_FILES fast/LocalRatekeeper.txt)
add_fdb_test(TEST_FILES fast/LongStackWriteDuringRead.txt)
add_fdb_test(TEST_FILES fast/LowLatency.txt)
add_fdb_test(TEST_FILES fast/MemoryLifetime.txt)
add_fdb_test(TEST_FILES fast/MoveKeysCycle.txt)
add_fdb_test(TEST_FILES fast/RandomSelector.txt)
add_fdb_test(TEST_FILES fast/RandomUnitTests.txt)
add_fdb_test(TEST_FILES fast/SelectorCorrectness.txt)
add_fdb_test(TEST_FILES fast/Sideband.txt)
add_fdb_test(TEST_FILES fast/SidebandWithStatus.txt)
add_fdb_test(TEST_FILES fast/SwizzledRollbackSideband.txt)
add_fdb_test(TEST_FILES fast/SystemRebootTestCycle.txt)
add_fdb_test(TEST_FILES fast/TaskBucketCorrectness.txt)
add_fdb_test(TEST_FILES fast/TimeKeeperCorrectness.txt)
add_fdb_test(TEST_FILES fast/TxnStateStoreCycleTest.txt)
add_fdb_test(TEST_FILES fast/Unreadable.txt)
add_fdb_test(TEST_FILES fast/VersionStamp.txt)
add_fdb_test(TEST_FILES fast/Watches.txt)
add_fdb_test(TEST_FILES fast/WriteDuringRead.txt)
add_fdb_test(TEST_FILES fast/WriteDuringReadClean.txt)
add_fdb_test(TEST_FILES rare/CheckRelocation.txt)
add_fdb_test(TEST_FILES rare/ClogUnclog.txt)
add_fdb_test(TEST_FILES rare/CloggedCycleWithKills.txt)
add_fdb_test(TEST_FILES rare/ConflictRangeCheck.txt)
add_fdb_test(TEST_FILES rare/ConflictRangeRYOWCheck.txt)
add_fdb_test(TEST_FILES rare/CycleRollbackClogged.txt)
add_fdb_test(TEST_FILES rare/CycleWithKills.txt)
add_fdb_test(TEST_FILES rare/FuzzTest.txt)
add_fdb_test(TEST_FILES rare/InventoryTestHeavyWrites.txt)
add_fdb_test(TEST_FILES rare/LargeApiCorrectness.txt)
add_fdb_test(TEST_FILES rare/LargeApiCorrectnessStatus.txt)
add_fdb_test(TEST_FILES rare/RYWDisable.txt)
add_fdb_test(TEST_FILES rare/RandomReadWriteTest.txt)
add_fdb_test(TEST_FILES rare/SwizzledLargeApiCorrectness.txt)
add_fdb_test(TEST_FILES rare/RedwoodCorrectnessBTree.txt)
add_fdb_test(
TEST_FILES restarting/ConfigureTestRestart-1.txt
restarting/ConfigureTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/CycleTestRestart-1.txt
restarting/CycleTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/StorefrontTestRestart-1.txt
restarting/StorefrontTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapTestAttrition-1.txt
restarting/from_6.2.0/SnapTestAttrition-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapTestSimpleRestart-1.txt
restarting/from_6.2.0/SnapTestSimpleRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapTestRestart-1.txt
restarting/from_6.2.0/SnapTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapCycleRestart-1.txt
restarting/from_6.2.0/SnapCycleRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_5.1.7/DrUpgradeRestart-1.txt
restarting/from_5.1.7/DrUpgradeRestart-2.txt IGNORE)
add_fdb_test(
TEST_FILES restarting/from_5.2.0/ClientTransactionProfilingCorrectness-1.txt
restarting/from_5.2.0/ClientTransactionProfilingCorrectness-2.txt IGNORE)
add_fdb_test(TEST_FILES slow/ApiCorrectness.txt)
add_fdb_test(TEST_FILES slow/ApiCorrectnessAtomicRestore.txt)
add_fdb_test(TEST_FILES slow/ApiCorrectnessSwitchover.txt)
add_fdb_test(TEST_FILES slow/ClogWithRollbacks.txt)
add_fdb_test(TEST_FILES slow/CloggedCycleTest.txt)
add_fdb_test(TEST_FILES slow/CloggedStorefront.txt)
add_fdb_test(TEST_FILES slow/CommitBug.txt)
add_fdb_test(TEST_FILES slow/ConfigureTest.txt)
add_fdb_test(TEST_FILES slow/CycleRollbackPlain.txt)
add_fdb_test(TEST_FILES slow/DDBalanceAndRemove.txt)
add_fdb_test(TEST_FILES slow/DDBalanceAndRemoveStatus.txt)
add_fdb_test(TEST_FILES slow/DifferentClustersSameRV.txt)
add_fdb_test(TEST_FILES slow/FastTriggeredWatches.txt)
add_fdb_test(TEST_FILES slow/LowLatencyWithFailures.txt)
add_fdb_test(TEST_FILES slow/MoveKeysClean.txt)
add_fdb_test(TEST_FILES slow/MoveKeysSideband.txt)
add_fdb_test(TEST_FILES slow/RyowCorrectness.txt)
add_fdb_test(TEST_FILES slow/Serializability.txt)
add_fdb_test(TEST_FILES slow/SharedBackupCorrectness.txt)
add_fdb_test(TEST_FILES slow/SharedBackupToDBCorrectness.txt)
add_fdb_test(TEST_FILES slow/StorefrontTest.txt)
add_fdb_test(TEST_FILES slow/SwizzledApiCorrectness.txt)
add_fdb_test(TEST_FILES slow/SwizzledCycleTest.txt)
add_fdb_test(TEST_FILES slow/SwizzledDdBalance.txt)
add_fdb_test(TEST_FILES slow/SwizzledRollbackTimeLapse.txt)
add_fdb_test(TEST_FILES slow/SwizzledRollbackTimeLapseIncrement.txt)
add_fdb_test(TEST_FILES slow/VersionStampBackupToDB.txt)
add_fdb_test(TEST_FILES slow/VersionStampSwitchover.txt)
add_fdb_test(TEST_FILES slow/WriteDuringReadAtomicRestore.txt)
add_fdb_test(TEST_FILES slow/WriteDuringReadSwitchover.txt)
add_fdb_test(TEST_FILES slow/ddbalance.txt)
# Note that status tests are not deterministic.
add_fdb_test(TEST_FILES status/invalid_proc_addresses.txt)
add_fdb_test(TEST_FILES status/local_6_machine_no_replicas_remain.txt)
add_fdb_test(TEST_FILES status/separate_1_of_3_coordinators_remain.txt)
add_fdb_test(TEST_FILES status/separate_2_of_3_coordinators_remain.txt)
add_fdb_test(TEST_FILES status/separate_cannot_write_cluster_file.txt)
add_fdb_test(TEST_FILES status/separate_idle.txt)
add_fdb_test(TEST_FILES status/separate_initializing.txt)
add_fdb_test(TEST_FILES status/separate_no_coordinators.txt)
add_fdb_test(TEST_FILES status/separate_no_database.txt)
add_fdb_test(TEST_FILES status/separate_no_servers.txt)
add_fdb_test(TEST_FILES status/separate_not_enough_servers.txt)
add_fdb_test(TEST_FILES status/single_process_too_many_config_params.txt)
verify_testing()
else()
set(fdbserver_location ${CMAKE_BINARY_DIR}/bin/fdbserver)
set(OLD_FDBSERVER_BINARY ${fdbserver_location} CACHE FILEPATH "Old fdbserver binary" FORCE)
message(WARNING "\
No old fdbserver binary found - using ${fdbserver_location} \
It is recommended to install the current stable version from https://www.foundationdb.org/download/ \
Or provide a path to another fdbserver")
endif()
set(TestRunner "${PROJECT_SOURCE_DIR}/tests/TestRunner/TestRunner.py")
configure_file(${PROJECT_SOURCE_DIR}/tests/CTestCustom.ctest ${PROJECT_BINARY_DIR}/CTestCustom.ctest @ONLY)
configure_testing(TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
ERROR_ON_ADDITIONAL_FILES
IGNORE_PATTERNS ".*/CMakeLists.txt")
add_fdb_test(TEST_FILES AsyncFileCorrectness.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileMix.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileRead.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileReadRandom.txt UNIT IGNORE)
add_fdb_test(TEST_FILES AsyncFileWrite.txt UNIT IGNORE)
add_fdb_test(TEST_FILES BackupContainers.txt IGNORE)
add_fdb_test(TEST_FILES BandwidthThrottle.txt IGNORE)
add_fdb_test(TEST_FILES BigInsert.txt IGNORE)
add_fdb_test(TEST_FILES BlobStore.txt IGNORE)
add_fdb_test(TEST_FILES ConsistencyCheck.txt IGNORE)
add_fdb_test(TEST_FILES DDMetricsExclude.txt IGNORE)
add_fdb_test(TEST_FILES DiskDurability.txt IGNORE)
add_fdb_test(TEST_FILES FileSystem.txt IGNORE)
add_fdb_test(TEST_FILES Happy.txt IGNORE)
add_fdb_test(TEST_FILES Mako.txt IGNORE)
add_fdb_test(TEST_FILES IncrementalDelete.txt IGNORE)
add_fdb_test(TEST_FILES KVStoreMemTest.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreReadMostly.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreTest.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreTestRead.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreTestWrite.txt UNIT IGNORE)
add_fdb_test(TEST_FILES KVStoreValueSize.txt UNIT IGNORE)
add_fdb_test(TEST_FILES LayerStatusMerge.txt IGNORE)
add_fdb_test(TEST_FILES PureNetwork.txt IGNORE)
add_fdb_test(TEST_FILES RRW2500.txt IGNORE)
add_fdb_test(TEST_FILES RandomRead.txt IGNORE)
add_fdb_test(TEST_FILES RandomReadWrite.txt IGNORE)
add_fdb_test(TEST_FILES ReadAbsent.txt IGNORE)
add_fdb_test(TEST_FILES ReadHalfAbsent.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectnessUnits.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectnessBTree.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectnessPager.txt IGNORE)
add_fdb_test(TEST_FILES fast/RedwoodCorrectnessBTree.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodCorrectness.txt IGNORE)
add_fdb_test(TEST_FILES RedwoodPerfTests.txt IGNORE)
if (NOT USE_UBSAN) # TODO re-enable in UBSAN after https://github.com/apple/foundationdb/issues/2410 is resolved
add_fdb_test(TEST_FILES SimpleExternalTest.txt)
else()
add_fdb_test(TEST_FILES SimpleExternalTest.txt IGNORE)
endif()
add_fdb_test(TEST_FILES SlowTask.txt IGNORE)
add_fdb_test(TEST_FILES SpecificUnitTest.txt IGNORE)
add_fdb_test(TEST_FILES StreamingWrite.txt IGNORE)
add_fdb_test(TEST_FILES ThreadSafety.txt IGNORE)
add_fdb_test(TEST_FILES Throttling.txt IGNORE)
add_fdb_test(TEST_FILES TraceEventMetrics.txt IGNORE)
add_fdb_test(TEST_FILES default.txt IGNORE)
add_fdb_test(TEST_FILES errors.txt IGNORE)
add_fdb_test(TEST_FILES fail.txt IGNORE)
add_fdb_test(TEST_FILES killall.txt IGNORE)
add_fdb_test(TEST_FILES latency.txt IGNORE)
add_fdb_test(TEST_FILES performance-fs.txt IGNORE)
add_fdb_test(TEST_FILES performance.txt IGNORE)
add_fdb_test(TEST_FILES ping.TXT IGNORE)
add_fdb_test(TEST_FILES pingServers.TXT IGNORE)
add_fdb_test(TEST_FILES pt.TXT IGNORE)
add_fdb_test(TEST_FILES randomSelector.txt IGNORE)
add_fdb_test(TEST_FILES selectorCorrectness.txt IGNORE)
add_fdb_test(TEST_FILES fast/AtomicBackupCorrectness.txt)
add_fdb_test(TEST_FILES fast/AtomicBackupToDBCorrectness.txt)
add_fdb_test(TEST_FILES fast/AtomicOps.txt)
add_fdb_test(TEST_FILES fast/AtomicOpsApiCorrectness.txt)
add_fdb_test(TEST_FILES fast/BackupCorrectness.txt)
add_fdb_test(TEST_FILES fast/BackupCorrectnessClean.txt)
add_fdb_test(TEST_FILES fast/BackupToDBCorrectness.txt)
add_fdb_test(TEST_FILES fast/BackupToDBCorrectnessClean.txt)
add_fdb_test(TEST_FILES fast/CloggedSideband.txt)
add_fdb_test(TEST_FILES fast/ConfigureLocked.txt)
add_fdb_test(TEST_FILES fast/ConstrainedRandomSelector.txt)
add_fdb_test(TEST_FILES fast/CycleAndLock.txt)
add_fdb_test(TEST_FILES fast/CycleTest.txt)
add_fdb_test(TEST_FILES fast/FuzzApiCorrectness.txt)
add_fdb_test(TEST_FILES fast/FuzzApiCorrectnessClean.txt)
add_fdb_test(TEST_FILES fast/IncrementTest.txt)
add_fdb_test(TEST_FILES fast/InventoryTestAlmostReadOnly.txt)
add_fdb_test(TEST_FILES fast/InventoryTestSomeWrites.txt)
add_fdb_test(TEST_FILES fast/KillRegionCycle.txt)
add_fdb_test(TEST_FILES fast/LocalRatekeeper.txt)
add_fdb_test(TEST_FILES fast/LongStackWriteDuringRead.txt)
add_fdb_test(TEST_FILES fast/LowLatency.txt)
add_fdb_test(TEST_FILES fast/MemoryLifetime.txt)
add_fdb_test(TEST_FILES fast/MoveKeysCycle.txt)
add_fdb_test(TEST_FILES fast/RandomSelector.txt)
add_fdb_test(TEST_FILES fast/RandomUnitTests.txt)
add_fdb_test(TEST_FILES fast/SelectorCorrectness.txt)
add_fdb_test(TEST_FILES fast/Sideband.txt)
add_fdb_test(TEST_FILES fast/SidebandWithStatus.txt)
add_fdb_test(TEST_FILES fast/SwizzledRollbackSideband.txt)
add_fdb_test(TEST_FILES fast/SystemRebootTestCycle.txt)
add_fdb_test(TEST_FILES fast/TaskBucketCorrectness.txt)
add_fdb_test(TEST_FILES fast/TimeKeeperCorrectness.txt)
add_fdb_test(TEST_FILES fast/TxnStateStoreCycleTest.txt)
add_fdb_test(TEST_FILES fast/Unreadable.txt)
add_fdb_test(TEST_FILES fast/VersionStamp.txt)
add_fdb_test(TEST_FILES fast/Watches.txt)
add_fdb_test(TEST_FILES fast/WriteDuringRead.txt)
add_fdb_test(TEST_FILES fast/WriteDuringReadClean.txt)
add_fdb_test(TEST_FILES rare/CheckRelocation.txt)
add_fdb_test(TEST_FILES rare/ClogUnclog.txt)
add_fdb_test(TEST_FILES rare/CloggedCycleWithKills.txt)
add_fdb_test(TEST_FILES rare/ConflictRangeCheck.txt)
add_fdb_test(TEST_FILES rare/ConflictRangeRYOWCheck.txt)
add_fdb_test(TEST_FILES rare/CycleRollbackClogged.txt)
add_fdb_test(TEST_FILES rare/CycleWithKills.txt)
add_fdb_test(TEST_FILES rare/FuzzTest.txt)
add_fdb_test(TEST_FILES rare/InventoryTestHeavyWrites.txt)
add_fdb_test(TEST_FILES rare/LargeApiCorrectness.txt)
add_fdb_test(TEST_FILES rare/LargeApiCorrectnessStatus.txt)
add_fdb_test(TEST_FILES rare/RYWDisable.txt)
add_fdb_test(TEST_FILES rare/RandomReadWriteTest.txt)
add_fdb_test(TEST_FILES rare/SwizzledLargeApiCorrectness.txt)
add_fdb_test(TEST_FILES rare/RedwoodCorrectnessBTree.txt)
add_fdb_test(
TEST_FILES restarting/ConfigureTestRestart-1.txt
restarting/ConfigureTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/CycleTestRestart-1.txt
restarting/CycleTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/StorefrontTestRestart-1.txt
restarting/StorefrontTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapTestAttrition-1.txt
restarting/from_6.2.0/SnapTestAttrition-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapTestSimpleRestart-1.txt
restarting/from_6.2.0/SnapTestSimpleRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapTestRestart-1.txt
restarting/from_6.2.0/SnapTestRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_6.2.0/SnapCycleRestart-1.txt
restarting/from_6.2.0/SnapCycleRestart-2.txt)
add_fdb_test(
TEST_FILES restarting/from_5.1.7/DrUpgradeRestart-1.txt
restarting/from_5.1.7/DrUpgradeRestart-2.txt IGNORE)
add_fdb_test(
TEST_FILES restarting/from_5.2.0/ClientTransactionProfilingCorrectness-1.txt
restarting/from_5.2.0/ClientTransactionProfilingCorrectness-2.txt IGNORE)
add_fdb_test(TEST_FILES slow/ApiCorrectness.txt)
add_fdb_test(TEST_FILES slow/ApiCorrectnessAtomicRestore.txt)
add_fdb_test(TEST_FILES slow/ApiCorrectnessSwitchover.txt)
add_fdb_test(TEST_FILES slow/ClogWithRollbacks.txt)
add_fdb_test(TEST_FILES slow/CloggedCycleTest.txt)
add_fdb_test(TEST_FILES slow/CloggedStorefront.txt)
add_fdb_test(TEST_FILES slow/CommitBug.txt)
add_fdb_test(TEST_FILES slow/ConfigureTest.txt)
add_fdb_test(TEST_FILES slow/CycleRollbackPlain.txt)
add_fdb_test(TEST_FILES slow/DDBalanceAndRemove.txt)
add_fdb_test(TEST_FILES slow/DDBalanceAndRemoveStatus.txt)
add_fdb_test(TEST_FILES slow/DifferentClustersSameRV.txt)
add_fdb_test(TEST_FILES slow/FastTriggeredWatches.txt)
add_fdb_test(TEST_FILES slow/LowLatencyWithFailures.txt)
add_fdb_test(TEST_FILES slow/MoveKeysClean.txt)
add_fdb_test(TEST_FILES slow/MoveKeysSideband.txt)
add_fdb_test(TEST_FILES slow/RyowCorrectness.txt)
add_fdb_test(TEST_FILES slow/Serializability.txt)
add_fdb_test(TEST_FILES slow/SharedBackupCorrectness.txt)
add_fdb_test(TEST_FILES slow/SharedBackupToDBCorrectness.txt)
add_fdb_test(TEST_FILES slow/StorefrontTest.txt)
add_fdb_test(TEST_FILES slow/SwizzledApiCorrectness.txt)
add_fdb_test(TEST_FILES slow/SwizzledCycleTest.txt)
add_fdb_test(TEST_FILES slow/SwizzledDdBalance.txt)
add_fdb_test(TEST_FILES slow/SwizzledRollbackTimeLapse.txt)
add_fdb_test(TEST_FILES slow/SwizzledRollbackTimeLapseIncrement.txt)
add_fdb_test(TEST_FILES slow/VersionStampBackupToDB.txt)
add_fdb_test(TEST_FILES slow/VersionStampSwitchover.txt)
add_fdb_test(TEST_FILES slow/WriteDuringReadAtomicRestore.txt)
add_fdb_test(TEST_FILES slow/WriteDuringReadSwitchover.txt)
add_fdb_test(TEST_FILES slow/ddbalance.txt)
# Note that status tests are not deterministic.
add_fdb_test(TEST_FILES status/invalid_proc_addresses.txt)
add_fdb_test(TEST_FILES status/local_6_machine_no_replicas_remain.txt)
add_fdb_test(TEST_FILES status/separate_1_of_3_coordinators_remain.txt)
add_fdb_test(TEST_FILES status/separate_2_of_3_coordinators_remain.txt)
add_fdb_test(TEST_FILES status/separate_cannot_write_cluster_file.txt)
add_fdb_test(TEST_FILES status/separate_idle.txt)
add_fdb_test(TEST_FILES status/separate_initializing.txt)
add_fdb_test(TEST_FILES status/separate_no_coordinators.txt)
add_fdb_test(TEST_FILES status/separate_no_database.txt)
add_fdb_test(TEST_FILES status/separate_no_servers.txt)
add_fdb_test(TEST_FILES status/separate_not_enough_servers.txt)
add_fdb_test(TEST_FILES status/single_process_too_many_config_params.txt)
verify_testing()
message(WARNING "Python not found, won't configure ctest")
endif()