From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 04D8D45C309 for ; Fri, 20 Nov 2020 02:46:21 +0300 (MSK) From: Vladislav Shpilevoy Date: Fri, 20 Nov 2020 00:46:04 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH v2 16/16] raft: move algorithm code to src/lib/raft List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org, sergepetrenko@tarantool.org Raft algorithm code does not depend on box anymore, and is moved to src/lib/raft. This is done to be able to unit test Raft similarly to Swim - with virtual event loop, network, time, and disk. Using any number of instances. That will allow to cover all crazy and rare cases possible in Raft, but without problems of functional tests stability and clumsiness. Part of #5303 --- src/box/CMakeLists.txt | 3 +-- src/box/raft.h | 2 +- src/lib/CMakeLists.txt | 1 + src/lib/raft/CMakeLists.txt | 7 +++++++ src/{box/raftlib.c => lib/raft/raft.c} | 0 src/{box/raftlib.h => lib/raft/raft.h} | 0 6 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 src/lib/raft/CMakeLists.txt rename src/{box/raftlib.c => lib/raft/raft.c} (100%) rename src/{box/raftlib.h => lib/raft/raft.h} (100%) diff --git a/src/box/CMakeLists.txt b/src/box/CMakeLists.txt index fcf779379..a7547c29f 100644 --- a/src/box/CMakeLists.txt +++ b/src/box/CMakeLists.txt @@ -169,7 +169,6 @@ add_library(box STATIC port.c txn.c txn_limbo.c - raftlib.c raft.c box.cc gc.c @@ -263,6 +262,6 @@ add_custom_command(OUTPUT ${SQL_BIN_DIR}/opcodes.c ${SQL_BIN_DIR}/opcodes.h) target_link_libraries(box box_error tuple stat xrow xlog vclock crc32 scramble - ${common_libraries}) + raft ${common_libraries}) add_dependencies(box build_bundled_libs generate_sql_files) diff --git a/src/box/raft.h b/src/box/raft.h index c80faf811..1c59f17e6 100644 --- a/src/box/raft.h +++ b/src/box/raft.h @@ -29,7 +29,7 @@ * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. */ -#include "raftlib.h" +#include "raft/raft.h" #if defined(__cplusplus) extern "C" { diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index de1b902c6..cabbe3d89 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -14,6 +14,7 @@ add_subdirectory(crypto) add_subdirectory(swim) add_subdirectory(mpstream) add_subdirectory(vclock) +add_subdirectory(raft) if(ENABLE_BUNDLED_MSGPUCK) add_subdirectory(msgpuck EXCLUDE_FROM_ALL) endif() diff --git a/src/lib/raft/CMakeLists.txt b/src/lib/raft/CMakeLists.txt new file mode 100644 index 000000000..aef2bacf7 --- /dev/null +++ b/src/lib/raft/CMakeLists.txt @@ -0,0 +1,7 @@ +set(lib_sources + raft.c +) + +set_source_files_compile_flags(${lib_sources}) +add_library(raft STATIC ${lib_sources}) +target_link_libraries(raft core) diff --git a/src/box/raftlib.c b/src/lib/raft/raft.c similarity index 100% rename from src/box/raftlib.c rename to src/lib/raft/raft.c diff --git a/src/box/raftlib.h b/src/lib/raft/raft.h similarity index 100% rename from src/box/raftlib.h rename to src/lib/raft/raft.h -- 2.24.3 (Apple Git-128)