summaryrefslogtreecommitdiffstats
path: root/tools/slang-test/test-context.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2018-12-17 09:22:14 -0500
committerGitHub <noreply@github.com>2018-12-17 09:22:14 -0500
commitd2ddc590601778f309c81f7d19d5e7fed34210de (patch)
tree8ad5dd912fe43e946a4e40cce3eb6c8410254600 /tools/slang-test/test-context.cpp
parentd43c566fa29bbc0da1534aea236d54ee5ca104b8 (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.cpp32
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);
+ }
+}