diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2021-11-16 08:54:55 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-16 08:54:55 -0500 |
| commit | c51f1e27f0e307a80a57a840b2337e3226b3c2be (patch) | |
| tree | 22a0d055683740fc21e402c91159baf1c7313e64 /tools | |
| parent | 5a29c15cc3c227d9bb93a71cb50491a822d0ccf3 (diff) | |
Support around JSON-RPC (#2014)
* #include an absolute path didn't work - because paths were taken to always be relative.
* Use 'Process' to communicate with an command line tool.
* Remove slang-win-stream
* Tidy up windows ProcessUtil.
* First version of BufferedReadStream.
* Windows working IPC for steams.
* Test proxy count option.
* Split Process/ProcessUtil. Process is platform dependant. ProcessUtil are functions that are platform independent.
* First implementation of Unix Process interface.
* Unix process compiles on cygwin.
* Fix typo in unix process.
* Separate unix pipe stream error of invalid access, from pipe availability.
* Fix in standard line extraction.
* Make fd non blocking.
* Fix issues with Windows Process streams.
* Added UnixPipe.
* Some fixes around UnixPipeStream.
* Make a unix stream closed explicit.
* Hack to debug linux process/stream.
* Revert to old linux pipe handling.
* Pass executable path for unit tests.
Split out CommandLine into own source.
* Small improvements in process/command line.
* Check process behavior with crash.
* Make stderr and stdout unbuffered for crash testing.
* Only turn disable buffering in crash test.
* Disable crash test on CI.
* Fix crash on clang/linux.
* Enable crash test.
Remove _appendBuffer as can use StreamUtil functionality.
* Added inital processing for http headers.
* Small improvements to HttpHeader.
* First pass HTTPPacketConnection working on windows.
* Enable other Process communication tests.
* Update comments.
* WIP JSON RPC.
* Add terminate to Process.
Made JSONRPC a Util.
* Small tidy up around HTTPPacketConnection.
* Improve process termination options.
Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/slang-unit-test/unit-test-process.cpp | 11 | ||||
| -rw-r--r-- | tools/test-proxy/test-proxy-main.cpp | 14 |
2 files changed, 16 insertions, 9 deletions
diff --git a/tools/slang-unit-test/unit-test-process.cpp b/tools/slang-unit-test/unit-test-process.cpp index 8a55b0b29..548ef168f 100644 --- a/tools/slang-unit-test/unit-test-process.cpp +++ b/tools/slang-unit-test/unit-test-process.cpp @@ -48,10 +48,17 @@ static SlangResult _httpReflectTest(UnitTestContext* context) SLANG_RETURN_ON_FAIL(connection->write(buf.getBuffer(), size_t(size))); // Wait for the response - SLANG_RETURN_ON_FAIL(connection->waitForContent()); + SLANG_RETURN_ON_FAIL(connection->waitForResult()); - auto readContent = connection->getContent(); + // If we don't have content then something has gone wrong + if (!connection->hasContent()) + { + finalRes = SLANG_FAIL; + break; + } + // Check the content is the same + auto readContent = connection->getContent(); if (readContent != buf.getArrayView()) { finalRes = SLANG_FAIL; diff --git a/tools/test-proxy/test-proxy-main.cpp b/tools/test-proxy/test-proxy-main.cpp index 9a3523d71..bcb8f2a92 100644 --- a/tools/test-proxy/test-proxy-main.cpp +++ b/tools/test-proxy/test-proxy-main.cpp @@ -223,17 +223,17 @@ static SlangResult _httpReflect(int argc, const char* const* argv) RefPtr<BufferedReadStream> readStream(new BufferedReadStream(stdinStream)); - RefPtr<HTTPPacketConnection> packetConnection = new HTTPPacketConnection(readStream, stdoutStream); + RefPtr<HTTPPacketConnection> connection = new HTTPPacketConnection(readStream, stdoutStream); - while (packetConnection->isActive()) + while (connection->isActive()) { // Block waiting for content (or error/closed) - SLANG_RETURN_ON_FAIL(packetConnection->waitForContent()); + SLANG_RETURN_ON_FAIL(connection->waitForResult()); // If we have content do something with it - if (packetConnection->hasContent()) + if (connection->hasContent()) { - auto content = packetConnection->getContent(); + auto content = connection->getContent(); // If it just holds 'end' then we are done const UnownedStringSlice slice((const char*)content.begin(), content.getCount()); @@ -244,10 +244,10 @@ static SlangResult _httpReflect(int argc, const char* const* argv) } // Else reflect it back - SLANG_RETURN_ON_FAIL(packetConnection->write(content.begin(), content.getCount())); + SLANG_RETURN_ON_FAIL(connection->write(content.begin(), content.getCount())); // Consume that content/packet - packetConnection->consumeContent(); + connection->consumeContent(); } } |
