Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions SilKit/IntegrationTests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ add_subdirectory(SimTestHarness)
# local headers as interface lib
add_subdirectory(Hourglass)

# extension loading
add_subdirectory(ExtensionTests)

add_library(ITest_Utils INTERFACE)
target_include_directories(ITest_Utils
INTERFACE ${CMAKE_CURRENT_LIST_DIR})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ set_target_properties(WrongBuildSystem PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/$<CONFIG>"
)

add_silkit_test_to_executable(SilKitUnitTests SOURCES Test_SilKitExtensions.cpp LIBS O_SilKit_Extensions O_SilKit_VersionImpl I_SilKit_Core_Mock_Participant SilKit)
add_silkit_test_to_executable(SilKitIntegrationTests SOURCES ITest_SilKitExtensions.cpp LIBS O_SilKit_Extensions O_SilKit_VersionImpl I_SilKit_Core_Mock_Participant SilKit)

if(${SILKIT_BUILD_TESTS})
add_dependencies(SilKitUnitTests
add_dependencies(SilKitIntegrationTests
DummyExtension
WrongVersionExtension
WrongBuildSystem
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ class StdoutLogger : public SilKit::Core::Tests::MockLogger
};
} // namespace

class Test_SilKitExtensions : public Test
class ITest_SilKitExtensions : public Test
{
protected:
void TearDown() override
Expand All @@ -77,11 +77,11 @@ class Test_SilKitExtensions : public Test
StdoutLogger logger;
};

std::string Test_SilKitExtensions::currentWorkingDir;
std::string ITest_SilKitExtensions::currentWorkingDir;

using triple = std::tuple<uint32_t, uint32_t, uint32_t>;

TEST_F(Test_SilKitExtensions, load_dummy_lib)
TEST_F(ITest_SilKitExtensions, load_dummy_lib)
{
{
const auto testDir = std::filesystem::path{"silkit_library_test"};
Expand Down Expand Up @@ -110,7 +110,7 @@ TEST_F(Test_SilKitExtensions, load_dummy_lib)
}


TEST_F(Test_SilKitExtensions, static_cast)
TEST_F(ITest_SilKitExtensions, static_cast)
{
const auto testDir = std::filesystem::path{"silkit_library_test"};
std::filesystem::current_path(testDir);
Expand All @@ -122,7 +122,7 @@ TEST_F(Test_SilKitExtensions, static_cast)
ASSERT_EQ(dummy->GetDummyValue(), 12345L);
}

TEST_F(Test_SilKitExtensions, wrong_version_number)
TEST_F(ITest_SilKitExtensions, wrong_version_number)
{
try
{
Expand All @@ -142,13 +142,13 @@ TEST_F(Test_SilKitExtensions, wrong_version_number)
wrong version number";
}

TEST_F(Test_SilKitExtensions, wrong_build_system)
TEST_F(ITest_SilKitExtensions, wrong_build_system)
{
auto extension = SilKit::LoadExtension(&logger, "WrongBuildSystem");
//should print a harmless warning on stdout
}

TEST_F(Test_SilKitExtensions, multiple_extensions_loaded)
TEST_F(ITest_SilKitExtensions, multiple_extensions_loaded)
{
const auto testDir = std::filesystem::path{"silkit_library_test"};
std::filesystem::current_path(testDir);
Expand All @@ -166,7 +166,7 @@ TEST_F(Test_SilKitExtensions, multiple_extensions_loaded)
}

#if !defined(_WIN32)
TEST_F(Test_SilKitExtensions, load_from_envvar)
TEST_F(ITest_SilKitExtensions, load_from_envvar)
{
const auto testDir = std::filesystem::path{"silkit_library_test"};
setenv("TEST_VAR", testDir.c_str(), 1); // should be invariant
Expand Down
5 changes: 0 additions & 5 deletions SilKit/source/extensions/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,3 @@ target_compile_definitions(O_SilKit_Extensions
PRIVATE
SILKIT_EXTENSION_OS="${extension_os}"
)

if(SILKIT_BUILD_TESTS)
add_subdirectory(Tests)
endif()

2 changes: 1 addition & 1 deletion SilKit/source/extensions/SilKitExtensions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ std::vector<std::string> FindLibrary(const std::string& name, const SilKit::Exte
const auto current = std::filesystem::path{dir} / path;
if (std::filesystem::exists(current))
{
rv.push_back(current.string());
rv.push_back(std::filesystem::absolute(current).string());
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion SilKit/source/extensions/detail/LoadExtension_win.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const std::string lib_prefix = "";

LibraryHandle OpenLibrary(const std::string& path)
{
LibraryHandle tmp = ::LoadLibraryA(path.c_str());
LibraryHandle tmp = ::LoadLibraryExA(path.c_str(), nullptr, LOAD_WITH_ALTERED_SEARCH_PATH);
if (tmp == nullptr)
{
throw ExtensionError("::LoadLibrary() failed: " + lastErrorMessage());
Expand Down
Loading