From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng2.m.smailru.net (smtpng2.m.smailru.net [94.100.179.3]) (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 4F42544643B for ; Tue, 17 Nov 2020 03:02:31 +0300 (MSK) From: Vladislav Shpilevoy Date: Tue, 17 Nov 2020 01:02:18 +0100 Message-Id: <26415dbc62eff90f0e542cfd09bc6f4a07d92617.1605570907.git.v.shpilevoy@tarantool.org> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Tarantool-patches] [PATCH 12/12] 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, gorcunov@gmail.com, 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 4dffce380..7e0768cd3 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)