From ce12e1d64d6b0b62609f061d3773a7e8b35849c3 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 30 Nov 2021 16:50:05 -0500 Subject: Auto flush for streams for stdin/out in slang-test (#2035) * #include an absolute path didn't work - because paths were taken to always be relative. * Move StreamType from Process to StdStreamType in slang-stream.h * Disable buffering for stdout/stderr for slang-test. * Improve comment. --- tools/slang-test/slang-test-main.cpp | 4 ++++ tools/slang-test/test-context.cpp | 4 ++-- tools/slang-unit-test/unit-test-process.cpp | 8 ++++---- tools/test-process/test-process-main.cpp | 6 +++--- 4 files changed, 13 insertions(+), 9 deletions(-) (limited to 'tools') diff --git a/tools/slang-test/slang-test-main.cpp b/tools/slang-test/slang-test-main.cpp index e734e1c4c..68c7aeec7 100644 --- a/tools/slang-test/slang-test-main.cpp +++ b/tools/slang-test/slang-test-main.cpp @@ -3559,6 +3559,10 @@ static SlangResult runUnitTestModule(TestContext* context, TestOptions& testOpti SlangResult innerMain(int argc, char** argv) { + // Disable buffering for out and std out + StreamUtil::setStreamBufferStyle(StdStreamType::Out, StreamBufferStyle::None); + StreamUtil::setStreamBufferStyle(StdStreamType::ErrorOut, StreamBufferStyle::None); + auto stdWriters = StdWriters::initDefaultSingleton(); // The context holds useful things used during testing diff --git a/tools/slang-test/test-context.cpp b/tools/slang-test/test-context.cpp index 39dd52313..acc680f24 100644 --- a/tools/slang-test/test-context.cpp +++ b/tools/slang-test/test-context.cpp @@ -122,8 +122,8 @@ SlangResult TestContext::_createJSONRPCConnection(RefPtr& out SLANG_RETURN_ON_FAIL(Process::create(cmdLine, Process::Flag::AttachDebugger, process)); } - Stream* writeStream = process->getStream(Process::StreamType::StdIn); - RefPtr readStream(new BufferedReadStream(process->getStream(Process::StreamType::StdOut))); + Stream* writeStream = process->getStream(StdStreamType::In); + RefPtr readStream(new BufferedReadStream(process->getStream(StdStreamType::Out))); RefPtr connection = new HTTPPacketConnection(readStream, writeStream); RefPtr rpcConnection = new JSONRPCConnection; diff --git a/tools/slang-unit-test/unit-test-process.cpp b/tools/slang-unit-test/unit-test-process.cpp index 77f03ddee..559522769 100644 --- a/tools/slang-unit-test/unit-test-process.cpp +++ b/tools/slang-unit-test/unit-test-process.cpp @@ -33,8 +33,8 @@ static SlangResult _httpReflectTest(UnitTestContext* context) RefPtr process; SLANG_RETURN_ON_FAIL(_createProcess(context, "http-reflect", nullptr, process)); - Stream* writeStream = process->getStream(Process::StreamType::StdIn); - RefPtr readStream( new BufferedReadStream(process->getStream(Process::StreamType::StdOut))); + Stream* writeStream = process->getStream(StdStreamType::In); + RefPtr readStream( new BufferedReadStream(process->getStream(StdStreamType::Out))); RefPtr connection = new HTTPPacketConnection(readStream, writeStream); RefPtr rand = RandomGenerator::create(10000); @@ -163,8 +163,8 @@ static SlangResult _reflectTest(UnitTestContext* context) SLANG_RETURN_ON_FAIL(_createProcess(context, "reflect", nullptr, process)); // Write a bunch of stuff to the stream - Stream* readStream = process->getStream(Process::StreamType::StdOut); - Stream* writeStream = process->getStream(Process::StreamType::StdIn); + Stream* readStream = process->getStream(StdStreamType::Out); + Stream* writeStream = process->getStream(StdStreamType::In); List readBuffer; diff --git a/tools/test-process/test-process-main.cpp b/tools/test-process/test-process-main.cpp index c31fec3ed..4e40a954e 100644 --- a/tools/test-process/test-process-main.cpp +++ b/tools/test-process/test-process-main.cpp @@ -74,7 +74,7 @@ static SlangResult _outputReflect() // Get in as Stream RefPtr stdinStream; - Process::getStdStream(Process::StreamType::StdIn, stdinStream); + Process::getStdStream(StdStreamType::In, stdinStream); FILE* fileOut = stdout; @@ -124,8 +124,8 @@ static SlangResult _httpReflect(int argc, const char* const* argv) RefPtr stdinStream, stdoutStream; - Process::getStdStream(Process::StreamType::StdIn, stdinStream); - Process::getStdStream(Process::StreamType::StdOut, stdoutStream); + Process::getStdStream(StdStreamType::In, stdinStream); + Process::getStdStream(StdStreamType::Out, stdoutStream); RefPtr readStream(new BufferedReadStream(stdinStream)); -- cgit v1.2.3