MemoryExecutionEnv class final

In-memory ExecutionEnv: MemoryFileSystem plus a Shell.

The default shell is UnavailableShell; pass a custom shell to test shell-consuming code without spawning real processes. When the shell implements BackgroundShell (the app's sandbox shells do), the env forwards detached-job calls to it.

Inheritance
Implemented types

Constructors

MemoryExecutionEnv({String cwd = '/', Shell shell = const UnavailableShell()})
Creates a MemoryExecutionEnv rooted at cwd.

Properties

backgroundJobsSupported → bool
Whether startShellJob actually works here. Decorators forward their delegate's answer, so wrapping an env never fakes the capability.
no setteroverride
cwd → String
Current working directory for relative paths.
finalinherited
hashCode → int
The hash code for this object.
no setterinherited
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

absolutePath(String path) → Future<Result<String, FileError>>
Returns an absolute addressed path without requiring it to exist and without resolving symlinks.
inherited
appendFile(String path, String content) → Future<Result<void, FileError>>
Creates or appends to a file, creating parent directories.
inherited
createDir(String path, {bool recursive = true}) → Future<Result<void, FileError>>
Creates a directory. When recursive is true (the default), missing parents are created too.
inherited
exec(String command, {ShellExecOptions? options}) → Future<Result<ShellExecResult, ExecutionError>>
Executes a shell command. Must never throw: all failures are encoded in the returned Result.
override
exists(String path) → Future<Result<bool, FileError>>
Returns false for missing paths; other errors surface as Err.
inherited
exportSnapshot() → MemoryFsSnapshot
Deep-copies the whole tree below FileSystem.cwd synchronously. Traversal order matches a listDir walk exactly (depth-first, children sorted by name), so an export of a quiescent tree is identical to an async walk of it.
inherited
fileInfo(String path) → Future<Result<FileInfo, FileError>>
Returns metadata for the addressed path without following symlinks.
inherited
joinPath(List<String> parts) → Future<Result<String, FileError>>
Joins path segments in the filesystem namespace without requiring the result to exist.
inherited
listDir(String path) → Future<Result<List<FileInfo>, FileError>>
Lists the direct children of a directory.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
readBinaryFile(String path) → Future<Result<Uint8List, FileError>>
Reads the file as raw bytes.
inherited
readRange(String path, int start, int end) → Future<Result<Uint8List, FileError>>
Reads the bytes of path in the half-open range [start, end).
inherited
readTextFile(String path) → Future<Result<String, FileError>>
Reads a UTF-8 text file.
inherited
readTextLines(String path, {int? maxLines}) → Future<Result<List<String>, FileError>>
Reads UTF-8 text lines. Implementations should stop once maxLines lines have been read.
inherited
remove(String path, {bool recursive = false, bool force = false}) → Future<Result<void, FileError>>
Removes a file or directory. With force, a missing path is not an error.
inherited
renamePath(String from, String to) → Future<Result<void, FileError>>
Atomically renames/moves from to to (overwrites an existing to, POSIX semantics).
inherited
setMtime(String path, int mtimeMs) → void
Test-only: updates the modification time of path to mtimeMs. No-op when the file does not exist.
inherited
startShellJob(String command, {required String id, required String logPath, ShellExecOptions? options}) → Future<Result<ShellJob, ExecutionError>>
Starts command detached: stdout/stderr append to logPath and the returned ShellJob keeps running until it exits or is stopped. ShellExecOptions.timeout and ShellExecOptions.cancelToken still apply (both stop the job).
override
toString() → String
A string representation of this object.
inherited
writeBinaryFile(String path, Uint8List content) → Future<Result<void, FileError>>
Writes raw bytes to a file, creating parent directories.
inherited
writeFile(String path, String content) → Future<Result<void, FileError>>
Creates or overwrites a file, creating parent directories.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited