diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2018-12-17 09:22:14 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-17 09:22:14 -0500 |
| commit | d2ddc590601778f309c81f7d19d5e7fed34210de (patch) | |
| tree | 8ad5dd912fe43e946a4e40cce3eb6c8410254600 /tools/slang-test/test-context.cpp | |
| parent | d43c566fa29bbc0da1534aea236d54ee5ca104b8 (diff) | |
Feature/test tool shared libraries (#758)
* Remove circular reference to renderer on Vk & D3D12 DescriptorSetImpl
* Refactor Stbi image loading such that memory is correctly freed when goes out of scope.
Added Crt memory dump at termination.
Reduced erroneous reporting by scoping TestContext.
* Used capitalized acronym for STBImage to keep Tim happy.
* Split out TestReporter - to just handle reporting test results
Split out Options
Made TestContext hold options, and the reporter
Removed remaining memory leaks.
* Small optimization for rawWrite, such that it directly writes over print..
* Improve comments on TestCategorySet
* Fix typos in TestCategorySet
* Made slangc a cpp file as part of slang-test (removing need for separate project/shared library).
* * Made all test tools only available as dlls.
* Made possible to invoke test tool dll from command line
slang-test slangc [--bindir xxx] options to slangc
* Fix Visual Studio projects that are no longer needed.
Diffstat (limited to 'tools/slang-test/test-context.cpp')
| -rw-r--r-- | tools/slang-test/test-context.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/tools/slang-test/test-context.cpp b/tools/slang-test/test-context.cpp index 06a9847bf..0030d6136 100644 --- a/tools/slang-test/test-context.cpp +++ b/tools/slang-test/test-context.cpp @@ -27,6 +27,15 @@ Result TestContext::init() TestContext::~TestContext() { + for (auto& pair : m_sharedLibTools) + { + const auto& tool = pair.Value; + if (tool.m_sharedLibrary) + { + SharedLibrary::unload(tool.m_sharedLibrary); + } + } + if (m_session) { spDestroySession(m_session); @@ -45,7 +54,7 @@ TestContext::InnerMainFunc TestContext::getInnerMainFunc(const String& dirPath, StringBuilder sharedLibToolBuilder; sharedLibToolBuilder.append(name); - sharedLibToolBuilder.append("-shared-library"); + sharedLibToolBuilder.append("-tool"); StringBuilder builder; SharedLibrary::appendPlatformFileName(sharedLibToolBuilder.getUnownedSlice(), builder); @@ -61,3 +70,24 @@ TestContext::InnerMainFunc TestContext::getInnerMainFunc(const String& dirPath, m_sharedLibTools.Add(name, tool); return tool.m_func; } + +void TestContext::setInnerMainFunc(const String& name, InnerMainFunc func) +{ + SharedLibraryTool* tool = m_sharedLibTools.TryGetValue(name); + if (tool) + { + if (tool->m_sharedLibrary) + { + SharedLibrary::unload(tool->m_sharedLibrary); + tool->m_sharedLibrary = nullptr; + } + + tool->m_func = func; + } + else + { + SharedLibraryTool tool = {}; + tool.m_func = func; + m_sharedLibTools.Add(name, tool); + } +} |
