diff options
Diffstat (limited to 'tools/slang-test')
| -rw-r--r-- | tools/slang-test/main.cpp | 30 | ||||
| -rw-r--r-- | tools/slang-test/options.cpp | 2 | ||||
| -rw-r--r-- | tools/slang-test/slangc-tool.cpp | 8 | ||||
| -rw-r--r-- | tools/slang-test/slangc-tool.h | 4 | ||||
| -rw-r--r-- | tools/slang-test/test-context.h | 7 | ||||
| -rw-r--r-- | tools/slang-test/test-reporter.h | 2 |
6 files changed, 30 insertions, 23 deletions
diff --git a/tools/slang-test/main.cpp b/tools/slang-test/main.cpp index 07647e58f..102b0b961 100644 --- a/tools/slang-test/main.cpp +++ b/tools/slang-test/main.cpp @@ -2,7 +2,7 @@ #include "../../source/core/slang-io.h" #include "../../source/core/token-reader.h" -#include "../../source/core/slang-app-context.h" +#include "../../source/core/slang-std-writers.h" #include "../../slang-com-helper.h" @@ -386,16 +386,17 @@ OSError spawnAndWait(TestContext* context, const String& testPath, OSProcessSpaw StringWriter stdError(&stdErrorString, WriterFlag::IsConsole | WriterFlag::IsStatic); StringWriter stdOut(&stdOutString, WriterFlag::IsConsole | WriterFlag::IsStatic); - AppContext appContext; - appContext.setWriter(SLANG_WRITER_CHANNEL_STD_ERROR, &stdError); - appContext.setWriter(SLANG_WRITER_CHANNEL_STD_OUTPUT, &stdOut); + StdWriters* prevStdWriters = StdWriters::getSingleton(); + + StdWriters stdWriters; + stdWriters.setWriter(SLANG_WRITER_CHANNEL_STD_ERROR, &stdError); + stdWriters.setWriter(SLANG_WRITER_CHANNEL_STD_OUTPUT, &stdOut); if (exeName == "slangc") { - appContext.setWriter(SLANG_WRITER_CHANNEL_DIAGNOSTIC, &stdError); + stdWriters.setWriter(SLANG_WRITER_CHANNEL_DIAGNOSTIC, &stdError); } - appContext.setReplaceWriterFlagsAll(); - + List<const char*> args; args.Add(exeName.Buffer()); for (int i = 0; i < int(spawner.argumentList_.Count()); ++i) @@ -403,11 +404,14 @@ OSError spawnAndWait(TestContext* context, const String& testPath, OSProcessSpaw args.Add(spawner.argumentList_[i].Buffer()); } - SlangResult res = func(&appContext, context->getSession(), int(args.Count()), args.begin()); + SlangResult res = func(&stdWriters, context->getSession(), int(args.Count()), args.begin()); + + StdWriters::setSingleton(prevStdWriters); spawner.standardError_ = stdErrorString; spawner.standardOutput_ = stdOutString; - spawner.resultCode_ = AppContext::getReturnCode(res); + + spawner.resultCode_ = TestToolUtil::getReturnCode(res); return kOSError_None; } @@ -1763,7 +1767,7 @@ void runTestsInDirectory( SlangResult innerMain(int argc, char** argv) { - AppContext::initDefault(); + StdWriters::initDefault(); // The context holds useful things used during testing TestContext context; @@ -1789,7 +1793,7 @@ SlangResult innerMain(int argc, char** argv) context.setInnerMainFunc("slangc", &SlangCTool::innerMain); } - SLANG_RETURN_ON_FAIL(Options::parse(argc, argv, &categorySet, AppContext::getStdError(), &context.options)); + SLANG_RETURN_ON_FAIL(Options::parse(argc, argv, &categorySet, StdWriters::getError(), &context.options)); Options& options = context.options; @@ -1799,7 +1803,7 @@ SlangResult innerMain(int argc, char** argv) auto func = context.getInnerMainFunc(options.binDir, options.subCommand); if (!func) { - AppContext::getStdError().print("error: Unable to launch tool '%s'\n", options.subCommand.Buffer()); + StdWriters::getError().print("error: Unable to launch tool '%s'\n", options.subCommand.Buffer()); return SLANG_FAIL; } @@ -1812,7 +1816,7 @@ SlangResult innerMain(int argc, char** argv) args[i] = srcArgs[i].Buffer(); } - return func(AppContext::getSingleton(), context.getSession(), int(args.Count()), args.Buffer()); + return func(StdWriters::getSingleton(), context.getSession(), int(args.Count()), args.Buffer()); } if( options.includeCategories.Count() == 0 ) diff --git a/tools/slang-test/options.cpp b/tools/slang-test/options.cpp index 6f3f5d79b..0a6023733 100644 --- a/tools/slang-test/options.cpp +++ b/tools/slang-test/options.cpp @@ -37,7 +37,7 @@ TestCategory* TestCategorySet::findOrError(String const& name) TestCategory* category = find(name); if (!category) { - AppContext::getStdError().print("error: unknown test category name '%s'\n", name.Buffer()); + StdWriters::getError().print("error: unknown test category name '%s'\n", name.Buffer()); } return category; } diff --git a/tools/slang-test/slangc-tool.cpp b/tools/slang-test/slangc-tool.cpp index 3085e2ab5..bf1bb8c28 100644 --- a/tools/slang-test/slangc-tool.cpp +++ b/tools/slang-test/slangc-tool.cpp @@ -7,19 +7,19 @@ SLANG_API void spSetCommandLineCompilerMode(SlangCompileRequest* request); static void _diagnosticCallback(char const* message, void* /*userData*/) { - auto stdError = AppContext::getStdError(); + auto stdError = StdWriters::getError(); stdError.put(message); stdError.flush(); } -SlangResult SlangCTool::innerMain(AppContext* appContext, SlangSession* session, int argc, const char*const* argv) +SlangResult SlangCTool::innerMain(StdWriters* stdWriters, SlangSession* session, int argc, const char*const* argv) { SlangCompileRequest* compileRequest = spCreateCompileRequest(session); spSetDiagnosticCallback(compileRequest, &_diagnosticCallback, nullptr); spSetCommandLineCompilerMode(compileRequest); // Do any app specific configuration - appContext->configureRequest(compileRequest); + stdWriters->setRequestWriters(compileRequest); { const SlangResult res = spProcessCommandLineArguments(compileRequest, &argv[1], argc - 1); @@ -45,7 +45,7 @@ SlangResult SlangCTool::innerMain(AppContext* appContext, SlangSession* session, #ifndef _DEBUG catch (Exception & e) { - AppContext::getStdOut().print("internal compiler error: %S\n", e.Message.ToWString().begin()); + StdWriters::getOut().print("internal compiler error: %S\n", e.Message.ToWString().begin()); res = SLANG_FAIL; } #endif diff --git a/tools/slang-test/slangc-tool.h b/tools/slang-test/slangc-tool.h index dd6e1b977..a1fcaa71b 100644 --- a/tools/slang-test/slangc-tool.h +++ b/tools/slang-test/slangc-tool.h @@ -3,13 +3,13 @@ #ifndef SLANGC_TOOL_H_INCLUDED #define SLANGC_TOOL_H_INCLUDED -#include "../../source/core/slang-app-context.h" +#include "../../source/core/slang-std-writers.h" /* The slangc 'tool' interface, such that slangc like functionality is available directly without invoking slangc command line tool, or need for a dll/shared library. */ struct SlangCTool { - static SlangResult innerMain(Slang::AppContext* appContext, SlangSession* session, int argc, const char*const* argv); + static SlangResult innerMain(Slang::StdWriters* stdWriters, SlangSession* session, int argc, const char*const* argv); }; #endif // SLANGC_TOOL_H_INCLUDED diff --git a/tools/slang-test/test-context.h b/tools/slang-test/test-context.h index cfa9837da..b07ca94e6 100644 --- a/tools/slang-test/test-context.h +++ b/tools/slang-test/test-context.h @@ -5,15 +5,18 @@ #include "../../source/core/slang-string-util.h" #include "../../source/core/platform.h" -#include "../../source/core/slang-app-context.h" +#include "../../source/core/slang-std-writers.h" #include "../../source/core/dictionary.h" +#include "../../source/core/slang-test-tool-util.h" #include "options.h" class TestContext { public: - typedef SlangResult(*InnerMainFunc)(Slang::AppContext* appContext, SlangSession* session, int argc, const char*const* argv); + + typedef Slang::TestToolUtil::InnerMainFunc InnerMainFunc; + /// Get the slang session SlangSession* getSession() const { return m_session; } diff --git a/tools/slang-test/test-reporter.h b/tools/slang-test/test-reporter.h index 13bcfe6a4..38e0d2cc3 100644 --- a/tools/slang-test/test-reporter.h +++ b/tools/slang-test/test-reporter.h @@ -5,7 +5,7 @@ #include "../../source/core/slang-string-util.h" #include "../../source/core/platform.h" -#include "../../source/core/slang-app-context.h" +#include "../../source/core/slang-std-writers.h" #include "../../source/core/dictionary.h" |
