F/<      Safe-Infered8Exception to be thrown when a program did not terminate  within the expected time. ;An error to be thrown if something is to be converted into   that does not fit into . A microsecond timeout, or . <Exception to be thrown when a program could not be started. GShort cut. ALWAYS use the order stdin, stdout, stderr, process handle.  Treats a  as UTF-8 decoded .  Treats a  as UTF-8 decoded . )Runs a program with the given arguemtns. Returns  (stdout, stderr, stdin, process). See  . 1Directly runs the process, does not use a shell.  Sets the 'BufferMode to ! if successful. Throws  if the command doesn' t exist.  Due to " not throwing an exception  ( Ehttp://www.haskell.org/pipermail/haskell-cafe/2012-August/102824.html), : this is currently implemented by checking if the program $ returns early with error code 127. 2Tells whether the given process is still running. &Terminates all processes in the list.  Closes all handles in the list. <Closes all file handles to all given handle-process-tuples. AUse this to make sure that handles are not closed due to garbage  collection (see  System.IO*) while your processes are still running. @It is safe to call this on processes which have already exited. .Turns the given number of microseconds into a . Throws an exception on  overflow. .Turns the given number of milliseconds into a . Throws an exception on  overflow. )Turns the given number of seconds into a . Throws an exception on  overflow. Turns floating seconds into a . Throws an exception on  overflow.  Example:  (seconds 0.2) are roughly  Micros 200000. /Suspends execution for the given timeout; uses # internally.  For ", threadDelay will not be called.  Converts a ) milliseconds suitable to be passed into timeout. Overflow-safe version of $, using . .Blocking wait for output on the given handle. Returns % timeout is exceeded. .Blocking wait for output on the given handle.  Throws a  if the timeout is exceeded.  Based on . 9Sets the buffering of the all given handles to the given &.  4Timeout after which reading output will be aborted. DMaximum number of bytes after which reading output will be aborted. The handle to read from. What was read from the handle. 4Timeout after which reading output will be aborted. DMaximum number of bytes after which reading output will be aborted. The handle to read from. What was read from the handle. '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~!& "    '() Safe-InferedRuns the given program with  & and asserts that it is still running  after the given timeout. Don'Bt choose the timeout too high as this function will block for it. $If the timeout is exceeded, a HUnit  exception is thrown, I showing the command line to be invoked, the exit code, and the standard  error output of the program. .Asserts that the given process has shut down. You might need to * before to give the process time to exit.  It is usually better to use  in those cases. )If the process is still running, a HUnit  exception is thrown. =How often to poll in waiting functions with maximum timeout. MAsserts that the given process has shut down in *at most* the given timeout. Periodically polling with , O returns as soon as the application has terminated or the timeout is exceeded. 0Use this to write faster tests than with manual ing: N For most tests, the application will actually finish way before the timeout. )If the process is still running, a HUnit  exception is thrown.       !"#$%&'()*+,-(./+,0(12(34(56(.789:(;< =(.>(?@(?A(?B(;C(;D(;E(;F(;G(;H(;I(;J(;K(;L(;M(;N(;O(;P(;Q(;R(;S(;T(;U(;V(;W(;X(YZ(Y[(Y\(Y](Y^(_`(_a(_b(_c(_d(_e(_f(_g(_h(_i(_j(_k(_l(_m(_n(_o(_p(_q(_r(_s(_t(_u(_v(_w(_x(yz(y{(y|(y}(y~(y(y(y(y(y(y(y((((((((((((Y(_((((.(.(.(.(.(.(.(.(.(.(.(.(.(((((((((((+,+,+,+,+,+,+,+,+,+,+,+,+,+,++++++++++++++++++proctest-0.1.3.0 Test.ProctestTest.Proctest.AssertionsTimeoutExceptionInvalidTimeoutErrorTimeout NoTimeout RunExceptionCommandNotFoundProcessHandlesasUtf8 asUtf8Strrun isRunningterminateProcesses closeHandlescloseProcessHandles mkTimeoutUs mkTimeoutMs mkTimeoutSsecondssleeptimeoutToSystemTimeoutArg withTimeoutwaitOutputNoEx waitOutput setBuffering runAssert assertExited_PROCTEST_POLL_TIMEOUTassertExitedTimeoutghc-prim GHC.TypesIntbytestring-0.9.2.1Data.ByteString.Internal ByteString text-0.11.2.3Data.Text.InternalTextbaseGHC.BaseStringprocess-1.1.0.1System.ProcessrunInteractiveProcessGHC.IO.Handle.Types LineBuffering createProcess GHC.Conc.IO threadDelaySystem.Timeouttimeout Data.MaybeNothing BufferMode$fExceptionTimeoutException$fExceptionInvalidTimeoutError$fExceptionRunException System.IOprintIOHandle System.Exit exitSuccess exitFailureexitWith(openBinaryTempFileWithDefaultPermissions"openTempFileWithDefaultPermissionsopenBinaryTempFile openTempFilefixIOwithBinaryFilewithFilehPrinthReadylocaleEncodingreadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharGHC.IO.Handle.FDopenBinaryFileopenFileisEOFstderrstdin GHC.IO.HandlehShowhSetNewlineModehSetBinaryModehIsTerminalDevicehGetEchohSetEcho hIsSeekable hGetBuffering hIsWritable hIsReadable hIsClosedhIsOpenhTellhSeekhSetPosnhGetPosn hGetEncoding hSetEncoding hSetBuffering hLookAheadhIsEOF hSetFileSize hFileSizehClose HandlePosnGHC.IO.Handle.TexthGetBufNonBlocking hGetBufSomehGetBufhPutBufNonBlockinghPutBuf hPutStrLnhPutStrhPutChar hGetContentshGetLinehGetChar hWaitForInputGHC.IO.EncodingmkTextEncodingchar8utf32beutf32leutf32utf16beutf16leutf16utf8_bomutf8latin1stdouthFlushGHC.IO.Exception ExitSuccess ExitFailureExitCodenoNewlineTranslationnativeNewlineModeuniversalNewlineMode nativeNewline NoBufferingBlockBufferingLFCRLFNewlineoutputNLinputNL NewlineModeGHC.IO.Encoding.Types TextEncoding GHC.IO.Device AbsoluteSeek RelativeSeek SeekFromEndSeekMode GHC.IO.IOModeReadMode WriteMode AppendMode ReadWriteModeIOModeGHC.IOFilePathgetProcessExitCodeinterruptProcessGroupOfterminateProcessshowCommandForUser rawSystemsystemreadProcessWithExitCode readProcesswaitForProcessrunInteractiveCommandshellproc runProcess runCommandSystem.Process.Internals ProcessHandle create_group close_fdsstd_errstd_outstd_inenvcwdcmdspec CreateProcess ShellCommand RawCommandCmdSpecInherit UseHandle CreatePipe StdStream HUnit-1.2.5.1Test.HUnit.Lang assertFailure