31 return activeProcess !=
nullptr && activeProcess->isRunning();
36 return activeProcess !=
nullptr ? activeProcess->read (dest, numBytes) : 0;
41 return activeProcess ==
nullptr || activeProcess->killProcess();
46 return activeProcess !=
nullptr ? activeProcess->getExitCode() : 0;
77 result.
write (buffer, (
size_t) num);
88 class ChildProcessTests :
public UnitTest 92 :
UnitTest (
"ChildProcess", UnitTestCategories::threads)
95 void runTest()
override 97 beginTest (
"Child Processes");
99 #if JUCE_WINDOWS || JUCE_MAC || JUCE_LINUX 103 expect (p.
start (
"tasklist"));
105 expect (p.
start (
"ls /"));
109 expect (output.isNotEmpty());
114 static ChildProcessTests childProcessUnitTests;
int readProcessOutput(void *destBuffer, int numBytesToRead)
bool waitForProcessToFinish(int timeoutMs) const
String readAllProcessOutput()
uint32 getExitCode() const
bool write(const void *, size_t) override
static void JUCE_CALLTYPE sleep(int milliseconds)
bool start(const String &command, int streamFlags=wantStdOut|wantStdErr)
static uint32 getMillisecondCounter() noexcept