Skip to content

Commit

Permalink
tests: add copy overload test
Browse files Browse the repository at this point in the history
Signed-off-by: Martin Olivier <[email protected]>
  • Loading branch information
martin-olivier committed Feb 12, 2025
1 parent d045111 commit 97f694a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 10 deletions.
12 changes: 8 additions & 4 deletions tests/lib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,14 @@ namespace tools {
}

namespace string {
LIB_EXPORT std::string format(const char *str) {
return std::string("ptr: ") + str;
}

LIB_EXPORT std::string format(const std::string str) {
return std::string("cpy: ") + str;
}

LIB_EXPORT std::string format(const std::string &str) {
return std::string("ref: ") + str;
}
Expand All @@ -59,9 +67,5 @@ namespace tools {
LIB_EXPORT std::string format(const unsigned int& val) {
return std::string("ref: ") + std::to_string(val);
}

LIB_EXPORT std::string format(const char *str) {
return std::string("ptr: ") + str;
}
}
}
15 changes: 9 additions & 6 deletions tests/tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,8 @@ TEST(cpp_symbols, functions) {
EXPECT_EQ(list[1], "World");
}

#define TEXT "bla,bla,bla..."

TEST(cpp_symbols, functions_overload_namespace) {
dylib::library lib("./dynamic_lib", dylib::decorations::os_default());

Expand All @@ -219,19 +221,20 @@ TEST(cpp_symbols, functions_overload_namespace) {
auto s_adder = lib.get_function<std::string(std::string, std::string)>("tools::adder(" STD_STRING ", " STD_STRING ")");
EXPECT_EQ(s_adder("Hello", "World"), "HelloWorld");

auto text = std::string("bla,bla,bla...");

auto ptr_format = lib.get_function<std::string(const char *)>("tools::string::format(char const *)");
EXPECT_EQ(ptr_format(text.c_str()), std::string("ptr: bla,bla,bla..."));
EXPECT_EQ(ptr_format(TEXT), "ptr: " TEXT);

auto cpy_format = lib.get_function<std::string(std::string)>("tools::string::format(" STD_STRING ")");
EXPECT_EQ(cpy_format(TEXT), "cpy: " TEXT);

auto ref_format = lib.get_function<std::string(const std::string &)>("tools::string::format(" STD_STRING " const &)");
EXPECT_EQ(ref_format(text), std::string("ref: bla,bla,bla..."));
EXPECT_EQ(ref_format(TEXT), "ref: " TEXT);

auto mov_format = lib.get_function<std::string(std::string &&)>("tools::string::format(" STD_STRING " &&)");
EXPECT_EQ(mov_format(std::move(text)), std::string("mov: bla,bla,bla..."));
EXPECT_EQ(mov_format(std::move(std::string(TEXT))), "mov: " TEXT);

auto int_ref_println = lib.get_function<std::string(const unsigned int &)>("tools::string::format(unsigned int const &)");
EXPECT_EQ(int_ref_println(123), std::string("ref: 123"));
EXPECT_EQ(int_ref_println(123), "ref: 123");
}

int main(int ac, char **av) {
Expand Down

0 comments on commit 97f694a

Please sign in to comment.