MCPcopy Create free account
hub / github.com/CppMicroServices/CppMicroServices / TEST

Function TEST

framework/test/gtest/SharedLibraryTest.cpp:31–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29using namespace cppmicroservices;
30
31TEST(SharedLibraryTest, TestSharedLibraryOperations)
32{
33 auto lib1Name = "TestBundleA" US_LIB_POSTFIX;
34 const std::string libAFilePath
35 = cppmicroservices::testing::LIB_PATH + util::DIR_SEP + US_LIB_PREFIX + lib1Name + US_LIB_EXT;
36 SharedLibrary lib1(libAFilePath);
37
38 ASSERT_EQ(lib1.GetFilePath(), libAFilePath);
39 ASSERT_EQ(lib1.GetLibraryPath(), cppmicroservices::testing::LIB_PATH);
40 ASSERT_EQ(lib1.GetName(), lib1Name);
41 ASSERT_EQ(lib1.GetPrefix(), US_LIB_PREFIX);
42 ASSERT_EQ(lib1.GetSuffix(), US_LIB_EXT);
43
44 lib1.SetName("bla");
45 ASSERT_EQ(lib1.GetName(), lib1Name);
46 lib1.SetLibraryPath("bla");
47 ASSERT_EQ(lib1.GetLibraryPath(), cppmicroservices::testing::LIB_PATH);
48 lib1.SetPrefix("bla");
49 ASSERT_EQ(lib1.GetPrefix(), US_LIB_PREFIX);
50 lib1.SetSuffix("bla");
51 ASSERT_EQ(lib1.GetSuffix(), US_LIB_EXT);
52 ASSERT_EQ(lib1.GetFilePath(), libAFilePath);
53
54 lib1.SetFilePath("bla");
55 ASSERT_EQ(lib1.GetFilePath(), "bla");
56 ASSERT_TRUE(lib1.GetLibraryPath().empty());
57 ASSERT_EQ(lib1.GetName(), "bla");
58 ASSERT_EQ(lib1.GetPrefix(), US_LIB_PREFIX);
59 ASSERT_EQ(lib1.GetSuffix(), US_LIB_EXT);
60
61 ASSERT_THROW(lib1.Load(), std::runtime_error);
62 ASSERT_EQ(lib1.IsLoaded(), false);
63 ASSERT_EQ(lib1.GetHandle(), nullptr);
64
65 lib1.SetFilePath(libAFilePath);
66 lib1.Load();
67 ASSERT_TRUE(lib1.IsLoaded());
68 ASSERT_NE(lib1.GetHandle(), nullptr);
69 ASSERT_THROW(lib1.Load(), std::logic_error);
70
71 lib1.SetFilePath("bla");
72 ASSERT_EQ(lib1.GetFilePath(), libAFilePath);
73 lib1.Unload();
74
75 auto lib2Name = "TestBundleA" US_LIB_POSTFIX;
76 SharedLibrary lib2(cppmicroservices::testing::LIB_PATH, lib2Name);
77 ASSERT_EQ(lib2.GetFilePath(), libAFilePath);
78 lib2.SetPrefix("");
79 ASSERT_TRUE(lib2.GetPrefix().empty());
80 ASSERT_EQ(lib2.GetFilePath(),
81 (cppmicroservices::testing::LIB_PATH + util::DIR_SEP + "TestBundleA" + US_LIB_POSTFIX + US_LIB_EXT));
82
83 SharedLibrary lib3 = lib2;
84 ASSERT_EQ(lib3.GetFilePath(), lib2.GetFilePath());
85 lib3.SetPrefix(US_LIB_PREFIX);
86 ASSERT_EQ(lib3.GetFilePath(), libAFilePath);
87 lib3.Load();
88 ASSERT_TRUE(lib3.IsLoaded());

Callers

nothing calls this directly

Calls 15

GetFilePathMethod · 0.80
GetLibraryPathMethod · 0.80
GetPrefixMethod · 0.80
SetNameMethod · 0.80
SetLibraryPathMethod · 0.80
SetPrefixMethod · 0.80
SetSuffixMethod · 0.80
SetFilePathMethod · 0.80
IsLoadedMethod · 0.80
GetHandleMethod · 0.80
UnloadMethod · 0.80
GetNameMethod · 0.45

Tested by

no test coverage detected