ϊΞCW;±“      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’NoneM       None 06=BKMi,Sets a custom variable in the sandbox monad.j-Checks that a custom sandbox variable is set.k]Returns the value of a previously set sandbox variable (or a provided default value if unset)lUnsets a custom variable.h !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi!Variable key for future referenceVariable valuej Variable keyk Variable keyDefault value if not foundl Variable keymnopqrstuvwxe !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuhAB@?<=>9:;xCDE/012345678$%&'()*+,-.#"! FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrwvstuB#"! $ %&'()*+,-./ 0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx)Benjamin Surma <benjamin.surma@gmail.com>NoneMyDOptional parameters when registering a process in the Sandbox monad.{ATime to wait (in s.) before checking that the process is still up|!Which outputs to capture (if any)}@Creates a sandbox and execute the given actions in the IO monad.)Registers a process in the Sandbox monad.€[Communicates with a sandboxed process via TCP and returns the answered message as a string.ˆStarts the given process, runs the action, then stops the process. The process is managed by the functions start and stop respectively.‚[Helper function: starts a process, wait for it to terminate and return its captured output.ƒ0Starts a previously registered process (verbose)„=Starts all registered processes (in their registration order)…7Gracefully stops a previously started process (verbose)†!Sends a POSIX signal to a process‡OGracefully stops all registered processes (in their reverse registration order)ˆ:Returns the effective binary path of a registered process.‰UReturns the handles used to communicate with a registered process using standard I/O.Š6Returns the last captured output of a started process.‹4Interacts with a sandboxed process via standard I/O.ŒDReturns an unbound user TCP port and stores it for future reference.2Explicitely sets a port to be returned by getPort.Ž=Creates a temporary file in the sandbox and returns its path.9Returns the path of a file previously created by setFile.BTemporarily sets a variable for the execution of the given action.‘EReturns the temporary directory used to host the sandbox environment.’#Executes the given action silently.yz{|“}Name of the sandbox environmentAction to perform~ Process namePath to the application binary%Arguments to pass on the command-lineProcess settings€Name of the registered port  Input string.Time to wait before timeout (in milli-seconds) Process name Action to run‚ƒ Process name„”… Process name† Process nameSignal to send‡ˆ Process name‰ Process nameŠ Process name‹ Process name Input string.Time to wait before timeout (in milli-seconds)ŒPort name for future referencePort name for future referenceTCP port numberŽFile name for future reference File contentsFile name used during setFile Variable keyVariable value Action to run‘’Action to execute•. !"#<CEijklyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’.<yz{|#"! }~CE‚ƒ„…‡†’‹€Š‰ŒˆŽ‘jkilyz{|“}~€‚ƒ„”…†‡ˆ‰Š‹ŒŽ‘’•–   !"#$%&'()*+,-../01234567889:;<=>?@AABCCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›test-sandbox-0.1.4 Test.SandboxTest.Sandbox.ProcessTest.Sandbox.Internalsdata-default-class-0.0.1Data.Default.Classdeflifted-base-0.2.3.6Control.Exception.Liftedfinallybrackettransformers-0.4.3.0Control.Monad.IO.ClassliftIO mtl-2.2.1Control.Monad.Error.Class catchError throwError ProcessInfopiPidpiStatpiPpidpiPgidgetProcessInfogetProcessInfosgetProcessGroupIDs getProcessIDscleanUpProcessGroupIDsSandboxTestOptionsstoSeedstoMaximumGeneratedTests"stoMaximumUnsuitableGeneratedTestsstoMaximumTestSize SandboxSeedSandboxRandomSeedSandboxFixedSeedSandboxedProcessInstanceStoppedInstanceRunningInstanceCaptureCaptureBothWithFileCaptureStderrWithFileCaptureStdoutWithFile CaptureBoth CaptureStderr CaptureStdoutSandboxedProcessspNamespBinaryspArgsspWait spCapture spInstancespPidspPGid spHandles SandboxStatessName ssDataDir ssProcessesssProcessOrderssAllocatedPortsssAvailablePortsssFiles ssVariables StMSandbox runStMSandboxSandboxrunSBSandboxStateRefPortExceptT' runExceptT' runSandbox errorHandler runSandbox'getputprettyheaderfooternewSandboxStateregisterProcessisValidProcessName getProcess updateProcess secondInΒ΅ssetFile' bufferSizehReadWithTimeout sendToPort getNewPort isBindable' isBindable startProcessformatCommandLine stopProcessgetAvailablePidscleanUpProcesseshSignalProcess killProcess hGetProcessIDinteractWithProcessgetProcessInputHandlegetProcessCapturedOutputHandlegetProcessBinaryfindExecutables tryBinarygetProcessCandidateBinariesexpandwhenM setVariable checkVariable getVariable unsetVariable isVerbose verbosityKey isCleanUp cleanUpKey displayBannerinstallSignalHandlers putOptions getOptionsoptionsVariable$fSerializeSandboxTestOptions$fSerializeSandboxSeed$fMonadBaseControlIOSandboxProcessSettingspsWait psCapturesandbox withSandboxregistersendTo withProcessrunstartstartAllstopsignalstopAll getBinary getHandlesreadLastCapturedOutput interactWithgetPortsetPortsetFilegetFile withVariable getDataDirsilentlycleanUpwaitFor$fDefaultProcessSettings