summaryrefslogtreecommitdiff
path: root/source/core/slang-test-tool-util.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/core/slang-test-tool-util.h')
-rw-r--r--source/core/slang-test-tool-util.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/source/core/slang-test-tool-util.h b/source/core/slang-test-tool-util.h
index 9aa34bd0e..07532682b 100644
--- a/source/core/slang-test-tool-util.h
+++ b/source/core/slang-test-tool-util.h
@@ -36,12 +36,6 @@ enum class ToolReturnCodeSpan
/* Utility functions for 'test tools' */
struct TestToolUtil
{
- struct PreludeInfo
- {
- const char* exePath = nullptr;
- const char* nvapiPath = nullptr;
- };
-
typedef SlangResult(*InnerMainFunc)(Slang::StdWriters* stdWriters, SlangSession* session, int argc, const char*const* argv);
/// If the test failed to run or was ignored then we are done
@@ -53,10 +47,22 @@ struct TestToolUtil
/// Given a slang result, returns a return code that can be returned from an executable
static ToolReturnCode getReturnCode(SlangResult res);
+ /// Given the executable path (as located in Slang directory hierarchy), works out the absolute path to the root
+ static SlangResult getRootPath(const char* exePath, String& outRootPath);
+
+ /// Given the exePath, give return the absolute path to the directory the exe is in
+ static SlangResult getExeDirectoryPath(const char* exePath, String& outExeDirectoryPath);
+
/// Sets the default preludes on the session based on the executable path
- static SlangResult setSessionDefaultPrelude(const PreludeInfo& preludeInfo, slang::IGlobalSession* session);
+ static SlangResult setSessionDefaultPreludeFromRootPath(const String& rootPath, slang::IGlobalSession* session);
- static SlangResult setSessionDefaultPrelude(const char* exePath, slang::IGlobalSession* session);
+ /// Calculates the path that is the combination of parentPath, and relPath
+ /// And converts such that can be used as an include path (handling slashes)
+ static SlangResult getIncludePath(const String& parentPath, const char* relPath, String& outIncludePath);
+
+
+ /// Sets the default preludes on the session based on the executable path
+ static SlangResult setSessionDefaultPreludeFromExePath(const char* exePath, slang::IGlobalSession* session);
};
} // namespace Slang