Files in Project Directory
maelstrom-go-test
stores a number of
files in the project directory, under the
.maelstrom-go-test
subdirectory. This chapter lists them and explains what
they're for.
It is safe to remove this directory whenever maelstrom-go-test
isn't running.
Except in the case of the local worker, maelstrom-go-test
doesn't currently make
any effort to clean up these files. However, the total space consumed by these
files should be pretty small.
maelstrom-go-test
also uses the
container-images cache. That cache is not stored in
the target directory, as it can be shared by different Maelstrom clients.
Local Worker
The local worker stores its cache in .maelstrom-go-test/cache/local-worker/
in the
project directory. The cache-size
configuration value
indicates the target size of this cache directory.
Manifest Files
maelstrom-go-test
uses "manifest
files" for non-tar layers. These are like tar files, but without the actual
data contents. These files are stored in .maelstrom-go-test/cache/manifests/
in the
project directory.
File Digests
Files uploaded to the broker are identified by a hash of their file contents.
Calculating these hashes can be time consuming so maelstrom-go-test
caches this information. This cache is stored
in .maelstrom-go-test/cache/cached-digests.toml
in the project directory.
Client Log File
The local client process — the one that maelstrom-go-test
talks to, and that contains the local worker
— has a log file that is stored at .maelstrom-go-test/state/client-process.log
in the project directory.
Test Listing
When maelstrom-go-test
finishes, it
updates a list of all of the tests in the workspace, and how long they took to
run. This is used to predict the number of tests that will be run in subsequent
invocations, as well as how long they will take. This is stored in the .maelstrom-go-test/state/test-listing.toml
file in
the project directory.
Test Binaries
maelstrom-go-test
builds go binaries and puts them in
.maelstrom-go-test/cache/test-binaries
. These need to
exist here so we can either run them or upload them. They are organized in a directory structure
that mirrors your project directory.