Skip to content

Commit

Permalink
updated tests with cpputils
Browse files Browse the repository at this point in the history
  • Loading branch information
GueroudjiAmal committed Feb 21, 2024
1 parent 01a7535 commit 4510ed9
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 37 deletions.
10 changes: 4 additions & 6 deletions include/mofka/Factory.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,11 @@
#include <mofka/ForwardDcl.hpp>
#include <mofka/Exception.hpp>
#include <dlfcn.h>

#include <unordered_map>
#include <functional>
#include <memory>
#include <vector>


namespace mofka {

template <typename Base, typename... Args>
Expand All @@ -32,12 +30,12 @@ class Factory {
static std::unique_ptr<Base> create(const std::string& key, Args&&... args) {
auto& factory = instance();
std::string name = key;
auto found = key.find(":");
if (found != std::string::npos){
std::size_t found = key.find(":");
if (found != std::string::npos) {
name = key.substr(0, found);
const auto path = key.substr(found + 1);
auto it = factory.m_creator_fn.find(name);
if (it != factory.m_creator_fn.end()) {
const auto path = key.substr(found + 1);
if (it == factory.m_creator_fn.end()) {
dlopen(path.c_str(), RTLD_NOW);
}
}
Expand Down
21 changes: 5 additions & 16 deletions tests/python/cpputils/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,28 +1,17 @@
cmake_minimum_required (VERSION 3.8)

project (mofka CXX)
set (CMAKE_CXX_STANDARD 17)
set (CMAKE_CXX_STANDARD_REQUIRED ON)

find_package (mofka REQUIRED)
find_package (Python3 COMPONENTS Interpreter Development REQUIRED)
find_package (pybind11 REQUIRED)

add_library (my_broker_selector MODULE src/MyDataBrokerDSelector.cpp)
target_link_libraries (my_broker_selector pybind11::module mofka-client)
target_link_libraries (my_broker_selector PUBLIC pybind11::module mofka-client PRIVATE coverage_config warnings_config)
pybind11_extension (my_broker_selector)
pybind11_strip (my_broker_selector)
set (PY_VERSION ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR})

add_library (my_validator MODULE src/MyValidator.cpp)
target_link_libraries (my_validator mofka-client)
target_link_libraries (my_validator PUBLIC mofka-client PRIVATE coverage_config warnings_config)

add_library (my_serializer MODULE src/MySerializer.cpp)
target_link_libraries (my_serializer mofka-client)
target_link_libraries (my_serializer PUBLIC mofka-client PRIVATE coverage_config warnings_config)

add_library (my_partition_selector MODULE src/MyPartitionSelector.cpp)
target_link_libraries (my_partition_selector mofka-client)
target_link_libraries (my_partition_selector PUBLIC mofka-client PRIVATE coverage_config warnings_config)

install (TARGETS my_broker_selector my_validator my_serializer my_partition_selector
ARCHIVE DESTINATION lib/
LIBRARY DESTINATION lib/)
LIBRARY DESTINATION lib/)
31 changes: 16 additions & 15 deletions tests/python/test-client.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

wd = os.getcwd()
sys.path.append(wd + "/../python")
sys.path.insert(0, '../../build/tests/python/cpputils/')

from pymargo.core import Engine
from mochi.bedrock.server import Server as BedrockServer
Expand Down Expand Up @@ -253,19 +254,19 @@ def test_get_client(self):
def test_create_open_topic(self):
"""Test create and open a topic"""
name = "my_topic"
validator = mofka.Validator({"type":"my_validator:./cpputils/build/libmy_validator.so"})
selector = mofka.PartitionSelector({"type":"./cpputils/build/my_partition_selector:libmy_partition_selector.so"})
serializer = mofka.Serializer({"type":"./cpputils/build/my_serializer:libmy_serializer.so"})
validator = mofka.Validator({"__type__":"my_validator:../../build/tests/python/cpputils/libmy_validator.so"})
selector = mofka.PartitionSelector({"__type__":"my_partition_selector:../../build/tests/python/cpputils/libmy_partition_selector.so"})
serializer = mofka.Serializer({"__type__":"my_serializer:../../build/tests/python/cpputils/libmy_serializer.so"})
self.service.create_topic(name, validator, selector, serializer)
topic = self.service.open_topic(name)

def test_add_partition(self):
"""Test add partition"""
topic_name = "my_topic"
server_rank = 0
validator = mofka.Validator({"type":"my_validator:./cpputils/build/libmy_validator.so"})
selector = mofka.PartitionSelector({"type":"./cpputils/build/my_partition_selector:libmy_partition_selector.so"})
serializer = mofka.Serializer({"type":"./cpputils/build/my_serializer:libmy_serializer.so"})
validator = mofka.Validator({"__type__":"my_validator:../../build/tests/python/cpputils/libmy_validator.so"})
selector = mofka.PartitionSelector({"__type__":"my_partition_selector:../../build/tests/python/cpputils/libmy_partition_selector.so"})
serializer = mofka.Serializer({"__type__":"my_serializer:../../build/tests/python/cpputils/libmy_serializer.so"})
self.service.create_topic(topic_name, validator, selector, serializer)
self.service.add_partition(topic_name, server_rank)

Expand Down Expand Up @@ -293,9 +294,9 @@ def setUp(self):
self.size = random.randint(16, 128)

name = "my_topic"
validator = mofka.Validator({"type":"my_validator:./cpputils/build/libmy_validator.so"})
selector = mofka.PartitionSelector({"type":"./cpputils/build/my_partition_selector:libmy_partition_selector.so"})
serializer = mofka.Serializer({"type":"./cpputils/build/my_serializer:libmy_serializer.so"})
validator = mofka.Validator({"__type__":"my_validator:../../build/tests/python/cpputils/libmy_validator.so"})
selector = mofka.PartitionSelector({"__type__":"my_partition_selector:../../build/tests/python/cpputils/libmy_partition_selector.so"})
serializer = mofka.Serializer({"__type__":"my_serializer:../../build/tests/python/cpputils/libmy_serializer.so"})
self.service.create_topic(name, validator, selector, serializer)
self.topic = self.service.open_topic(name)

Expand Down Expand Up @@ -361,9 +362,9 @@ def setUp(self):

# create a topic
name = "my_topic"
validator = mofka.Validator({"type":"my_validator:./cpputils/build/libmy_validator.so"})
selector = mofka.PartitionSelector({"type":"./cpputils/build/my_partition_selector:libmy_partition_selector.so"})
serializer = mofka.Serializer({"type":"./cpputils/build/my_serializer:libmy_serializer.so"})
validator = mofka.Validator({"__type__":"my_validator:../../build/tests/python/cpputils/libmy_validator.so"})
selector = mofka.PartitionSelector({"__type__":"my_partition_selector:../../build/tests/python/cpputils/libmy_partition_selector.so"})
serializer = mofka.Serializer({"__type__":"my_serializer:../../build/tests/python/cpputils/libmy_serializer.so"})
self.service.create_topic(name, validator, selector, serializer)
self.service.add_partition(name, 0)

Expand Down Expand Up @@ -416,9 +417,9 @@ def setUp(self):

# create a topic
name = "my_topic"
validator = mofka.Validator({"type":"my_validator:./cpputils/build/libmy_validator.so"})
selector = mofka.PartitionSelector({"type":"./cpputils/build/my_partition_selector:libmy_partition_selector.so"})
serializer = mofka.Serializer({"type":"./cpputils/build/my_serializer:libmy_serializer.so"})
validator = mofka.Validator({"__type__":"my_validator:../../build/tests/python/cpputils/libmy_validator.so"})
selector = mofka.PartitionSelector({"__type__":"my_partition_selector:../../build/tests/python/cpputils/libmy_partition_selector.so"})
serializer = mofka.Serializer({"__type__":"my_serializer:../../build/tests/python/cpputils/libmy_serializer.so"})
self.service.create_topic(name, validator, selector, serializer)
self.service.add_partition(name, 0)
self.topic = self.service.open_topic(name)
Expand Down

0 comments on commit 4510ed9

Please sign in to comment.