summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2021-11-16 08:54:55 -0500
committerGitHub <noreply@github.com>2021-11-16 08:54:55 -0500
commitc51f1e27f0e307a80a57a840b2337e3226b3c2be (patch)
tree22a0d055683740fc21e402c91159baf1c7313e64 /tools
parent5a29c15cc3c227d9bb93a71cb50491a822d0ccf3 (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.cpp11
-rw-r--r--tools/test-proxy/test-proxy-main.cpp14
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();
}
}