;;; note: source file ./src/maak/dsl.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/dsl.go
;;; note: source file ./src/maak/dsl.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/dsl.go
;;; note: source file ./src/maak/dsl.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/dsl.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/dsl.scm.go
;;; note: source file ./src/maak/shell.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/shell.go
;;; note: source file ./src/maak/shell.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/shell.go
;;; note: source file ./src/maak/shell.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/shell.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/shell.scm.go
;;; note: source file ./src/maak/container.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/container.go
;;; note: source file ./src/maak/container.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/container.go
;;; note: source file ./src/maak/container.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/container.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/container.scm.go
mkdir: created directory '/tmp/maak-test-container-empty-path-6712'
removed directory '/tmp/maak-test-container-empty-path-6712'
mkdir: created directory '/tmp/maak-test-container-docker-only-6712'
removed '/tmp/maak-test-container-docker-only-6712/docker'
removed directory '/tmp/maak-test-container-docker-only-6712'
mkdir: created directory '/tmp/maak-test-container-both-6712'
removed '/tmp/maak-test-container-both-6712/docker'
removed '/tmp/maak-test-container-both-6712/podman'
removed directory '/tmp/maak-test-container-both-6712'
mkdir: created directory '/tmp/maak-test-container-preferred-6712'
removed '/tmp/maak-test-container-preferred-6712/podman'
removed directory '/tmp/maak-test-container-preferred-6712'
mkdir: created directory '/tmp/maak-test-container-empty-preference-6712'
removed '/tmp/maak-test-container-empty-preference-6712/docker'
removed directory '/tmp/maak-test-container-empty-preference-6712'
mkdir: created directory '/tmp/maak-test-container-podman-compose-6712'
removed '/tmp/maak-test-container-podman-compose-6712/podman-compose'
removed directory '/tmp/maak-test-container-podman-compose-6712'
mkdir: created directory '/tmp/maak-test-container-podman-compose-fallback-6712'
removed directory '/tmp/maak-test-container-podman-compose-fallback-6712'
mkdir: created directory '/tmp/maak-test-container-available-6712'
removed '/tmp/maak-test-container-available-6712/podman'
removed directory '/tmp/maak-test-container-available-6712'
mkdir: created directory '/tmp/maak-test-container-unavailable-6712'
removed directory '/tmp/maak-test-container-unavailable-6712'
mkdir: created directory '/tmp/maak-test-container-compose-available-6712'
removed '/tmp/maak-test-container-compose-available-6712/podman-compose'
removed directory '/tmp/maak-test-container-compose-available-6712'
mkdir: created directory '/tmp/maak-test-container-compose-unavailable-6712'
removed directory '/tmp/maak-test-container-compose-unavailable-6712'
scanning directories for unit tests...
scanning present working directory for unit tests...
shuffled the files with seed 964173328 (replay with VERITAS_SEED=964173328)
found unit tests: (container.scm net.scm elevation.scm cli.scm tasks.scm commands.scm git.scm guix.scm integration.scm shell.scm docstrings.scm errors.scm niri.scm dsl.scm archive.scm)
running unit tests from file: container.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Container engine detection
[🧪 test] an empty search path falls back to podman
✅ got: podman
[🧪 test] docker is found when podman is not
✅ got: docker
[🧪 test] podman wins when both are installed
✅ got: podman
[🧪 test] an explicit preference wins
✅ got: docker
[🧪 test] an empty preference is ignored
✅ got: docker
[🧪 test] docker compose is the docker program plus its subcommand
✅ got: (docker compose)
[🧪 test] podman-compose is preferred for podman
✅ got: (podman-compose)
[🧪 test] podman compose is the fallback
✅ got: (podman compose)
[🧪 test] a compose preference is split into words
✅ got: (podman-compose --ansi never)
[🧪 test] a compose preference splits on any whitespace
✅ got: (podman-compose --ansi never)
[🧪 test] the default engine is a non-empty string
✅ got: #t
[🧪 test] container-available? looks on PATH
✅ got: #t
[🧪 test] container-available? is false for a missing engine
✅ got: #f
[🧪 test] compose-available? looks for the first word
✅ got: #t
[🧪 test] compose-available? is false for a missing program
✅ got: #f
[🧪 test] an empty engine is refused
✅ success catching error: %exception: (#<&maak-error message: "container engine must be a non-empty string, got \"\"" hint: "Set MAAK_CONTAINER_ENGINE to podman or docker.">)
+----------------------------------------------+
[📑 suite] Container commands
[🧪 test] the engine is the first word
✅ got: (docker ps --all)
[🧪 test] run carries every option in a stable order
✅ got: (podman run --detach --rm --interactive --tty --privileged --name db --workdir /app --entrypoint /bin/sh --network host --user 1000 --platform linux/amd64 --pull always --env A=1 --publish 8080:80 --volume v:/data --mount type=bind --label role=db postgres postgres -c x)
[🧪 test] run removes the container by default
✅ got: (podman run --rm alpine)
[🧪 test] build carries tags, files, args and labels
✅ got: (docker build --tag p:dev --file Containerfile --target runtime --platform linux/arm64 --network host --no-cache --pull --quiet --build-arg VERSION=1 --label a=b .)
[🧪 test] ps can include stopped containers
✅ got: (podman ps --all)
[🧪 test] images passes extra arguments through
✅ got: (docker images --quiet)
[🧪 test] stop names every container
✅ got: (podman stop a b)
[🧪 test] rm forces and removes volumes
✅ got: (podman rm --force --volumes db)
[🧪 test] exec passes environment and user
✅ got: (docker exec --interactive --tty --workdir /app --user postgres --env PGPASSWORD=x db psql -c select 1)
[🧪 test] logs can follow, tail and filter by time
✅ got: (podman logs --follow --tail 50 --since 1h db);;; note: source file ./src/maak/net.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/net.go
;;; note: source file ./src/maak/net.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/net.go
;;; note: source file ./src/maak/net.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/net.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/net.scm.go
mkdir: created directory '/tmp/maak-test-net-both-6712'
removed '/tmp/maak-test-net-both-6712/curl'
removed '/tmp/maak-test-net-both-6712/wget'
removed directory '/tmp/maak-test-net-both-6712'
mkdir: created directory '/tmp/maak-test-net-wget-only-6712'
removed '/tmp/maak-test-net-wget-only-6712/wget'
removed directory '/tmp/maak-test-net-wget-only-6712'
mkdir: created directory '/tmp/maak-test-net-empty-path-6712'
removed directory '/tmp/maak-test-net-empty-path-6712'
mkdir: created directory '/tmp/maak-test-net-preferred-6712'
removed '/tmp/maak-test-net-preferred-6712/curl'
removed directory '/tmp/maak-test-net-preferred-6712'
mkdir: created directory '/tmp/maak-test-net-empty-preference-6712'
removed '/tmp/maak-test-net-empty-preference-6712/wget'
removed directory '/tmp/maak-test-net-empty-preference-6712'
mkdir: created directory '/tmp/maak-test-net-available-6712'
removed '/tmp/maak-test-net-available-6712/wget'
removed directory '/tmp/maak-test-net-available-6712'
mkdir: created directory '/tmp/maak-test-net-unavailable-6712'
removed directory '/tmp/maak-test-net-unavailable-6712'
[🧪 test] pull is a plain subcommand
✅ got: (docker pull img)
[🧪 test] push is a plain subcommand
✅ got: (docker push img)
[🧪 test] tag names the source and the new name
✅ got: (docker tag a b)
[🧪 test] inspect can format a field
✅ got: (podman inspect --format {{.State.Status}} --type container db)
[🧪 test] the generic runner prints the engine command
✅ got: docker volume ls
[🧪 test] capture returns nothing in a dry run
✅ got:
[🧪 test] an empty image is refused
✅ success catching error: %exception: (#<&maak-error message: "container-run expects the image to run" hint: "Write (container-run image #:command (list program argument)).">)
[🧪 test] an empty context is refused
✅ success catching error: %exception: (#<&maak-error message: "container-build expects a build context" hint: "Write (container-build build-context #:tag image-name).">)
+----------------------------------------------+
[📑 suite] Compose commands
[🧪 test] global options come before the subcommand
✅ got: (docker compose --file compose.yml --project-name p --env-file .env --profile dev ps)
[🧪 test] up detaches, builds and waits
✅ got: (podman-compose up --detach --build --force-recreate --remove-orphans --wait web)
[🧪 test] up can avoid starting the services
✅ got: (docker compose up --detach --remove-orphans --no-start)
[🧪 test] down can remove volumes and images
✅ got: (docker compose down --volumes --remove-orphans --rmi all --timeout 10 db)
[🧪 test] build passes no-cache and pull
✅ got: (docker compose build --no-cache --pull web)
[🧪 test] logs can follow and drop colour
✅ got: (docker compose logs --follow --tail 20 --no-color web)
[🧪 test] ps can list everything and format it
✅ got: (docker compose ps --all --format json web)
[🧪 test] exec allocates no terminal by default
✅ got: (docker compose exec -T --user root web id)
[🧪 test] exec can allocate a terminal when asked
✅ got: (docker compose exec --tty --index 2 web sh)
[🧪 test] tty wins over the default -T
✅ got: (docker compose exec --tty web sh)
[🧪 test] run uses a one-off container
✅ got: (docker compose run --rm --no-deps --workdir /app --user root web make)
[🧪 test] pull and restart take service names
✅ got: (docker compose pull --ignore-pull-failures web)
✅ got: (docker compose restart --timeout 5 web)
[🧪 test] config can validate without printing
✅ got: (docker compose config -q --services)
[🧪 test] the generic runner prints the compose command
✅ got: docker compose --file compose.yml top
[🧪 test] capture returns nothing in a dry run
✅ got:
[🧪 test] an empty program is refused
✅ success catching error: %exception: (#<&maak-error message: "compose expects a non-empty program list" hint: "Set MAAK_COMPOSE, or use container-compose-command.">)
ℹ️ info - ran 3 tasks in: 1 seconds, -870321 microseconds
running unit tests from file: net.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Fetch command detection
[🧪 test] curl is preferred when both are installed
✅ got: curl
[🧪 test] wget is the fallback when curl is missing
✅ got: wget
[🧪 test] curl is the fallback when nothing is installed
✅ got: curl
[🧪 test] an explicit preference wins
✅ got: wget
[🧪 test] an empty preference is ignored
✅ got: wget
[🧪 test] the default fetch command is a non-empty string
✅ got: #t
[🧪 test] fetch-available? looks for the chosen program
✅ got: #t
[🧪 test] fetch-available? is false for a missing program
✅ got: #f
+----------------------------------------------+
[📑 suite] curl commands
[🧪 test] the generic builder is just curl and its arguments
✅ got: (curl --version)
[🧪 test] the generic runner prints its command
✅ got: curl --version
[🧪 test] curl-output returns nothing in a dry run
✅ got:
[🧪 test] a get has task-safe defaults
✅ got: (curl --location --fail --silent --show-error --compressed https://example.org/file)
[🧪 test] a get carries every option in a stable order
✅ got: (curl --location --fail --silent --show-error --compressed --output out.bin --output-dir dist --create-dirs --continue-at - --header X-A: 1 --header X-B: 2 --user me:secret --user-agent maak-test --max-time 30 --retry 3 --insecure --cookie cookies.txt --cookie-jar jar.txt --http1.1 https://example.org/file)
[🧪 test] a head request is a HEAD without the body
✅ got: (curl --location --fail --silent --show-error --compressed --head https://example.org/file)
[🧪 test] a status request discards the body and prints only the code
✅ got: (curl --location --silent --compressed --output /dev/null --write-out %{http_code} https://example.org/file)
[🧪 test] a status in a dry run has no code to answer
✅ got: #f
[🧪 test] a JSON post sends --json
✅ got: (curl --location --fail --silent --show-error --compressed --request POST --json {"ok":true} https://example.org/api)
[🧪 test] a data post sends --data
✅ got: (curl --location --fail --silent --show-error --compressed --request POST --data a=1&b=2 https://example.org/api)
[🧪 test] a file post sends --data-binary with an @ path
✅ got: (curl --location --fail --silent --show-error --compressed --request POST --data-binary @body.json https://example.org/api)
[🧪 test] a form post sends each field
✅ got: (curl --location --fail --silent --show-error --compressed --request POST --form a=1 --form b=2 https://example.org/api)
[🧪 test] a post can use another method, or imply it
✅ got: (curl --location --fail --silent --show-error --compressed --request PATCH --data x https://example.org/api)
✅ got: #f
[🧪 test] a download without an output keeps the remote name
✅ got: (curl --location --fail --silent --show-error --compressed --create-dirs --remote-name https://example.org/file)
[🧪 test] a download can name a file and resume it
✅ got: (curl --location --fail --silent --show-error --compressed --output file --output-dir dist --create-dirs --continue-at - https://example.org/file)
[🧪 test] an upload is a PUT with --upload-file
✅ got: (curl --location --fail --silent --show-error --compressed --request PUT --upload-file artifact.bin https://example.org/artifact.bin)
[🧪 test] text names the URL after the common options
✅ got: (curl --location --fail --silent --show-error --compressed https://example.org/file)
[🧪 test] text returns nothing in a dry run
✅ got:
[🧪 test] an empty URL is refused
✅ success catching error: %exception: (#<&maak-error message: "curl-get expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
✅ success catching error: %exception: (#<&maak-error message: "curl-text expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
✅ success catching error: %exception: (#<&maak-error message: "curl-status expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
✅ success catching error: %exception: (#<&maak-error message: "curl-download expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
✅ success catching error: %exception: (#<&maak-error message: "curl-upload expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
[🧪 test] a header list must be a list of strings
✅ success catching error: %exception: (#<&maak-error message: "curl expects #:headers to be a list of strings, got \"X: 1\"" hint: "Write the values as separate strings, for example (list \"a\" \"b\").">)
✅ success catching error: %exception: (#<&maak-error message: "curl expects #:headers to be a list of strings, got (1)" hint: "Write the values as separate strings, for example (list \"a\" \"b\").">)
[🧪 test] a timeout must be a non-negative integer
✅ success catching error: %exception: (#<&maak-error message: "curl expects #:timeout to be a non-negative integer, got -1" hint: "Write a non-negative integer, such as 30 or 3.">)
✅ success catching error: %exception: (#<&maak-error message: "curl expects #:timeout to be a non-negative integer, got \"30\"" hint: "Write a non-negative integer, such as 30 or 3.">)
[🧪 test] a post without a body is refused
✅ success catching error: %exception: (#<&maak-error message: "curl-post expects a body: data, json, data-file or form" hint: "Write (curl-post url #:json \"{\\\"ok\\\":true}\").">)
[🧪 test] an upload without a file is refused
✅ success catching error: %exception: (#<&maak-error message: "curl-upload expects the file to upload" hint: "Write (curl-upload url \"artifact.tar.gz\").">)
[🧪 test] a generic call refuses arguments that are not strings
✅ success catching error: %exception: (#<&maak-error message: "curl expects #:arguments to be a list of strings, got (\"--version\" 3)" hint: "Write the values as separate strings, for example (list \"a\" \"b\").">)
+----------------------------------------------+
[📑 suite] wget commands
[🧪 test] the generic builder is just wget and its arguments
✅ got: (wget --version)
[🧪 test] the generic runner prints its command
✅ got: wget --version
[🧪 test] wget-output returns nothing in a dry run
✅ got:
[🧪 test] a bare download is wget and the URL
✅ got: (wget https://example.org/file)
[🧪 test] a download carries every option in a stable order
✅ got: (wget --quiet --continue --output-document file --directory-prefix dist --timestamping --no-clobber --header X-A: 1 --user me --password secret --timeout 10 --tries 2 --user-agent maak-test --no-check-certificate https://example.org/file)
[🧪 test] a mirror stays under the URL by default
✅ got: (wget --recursive --no-parent --no-host-directories https://example.org/docs)
[🧪 test] a mirror can take the whole page and cut path components
✅ got: (wget --quiet --directory-prefix site --recursive --no-parent --page-requisites --convert-links --cut-dirs=2 --no-host-directories https://example.org/docs)mkdir: created directory '/tmp/maak-test-elevation-fallback-6712'
removed directory '/tmp/maak-test-elevation-fallback-6712'
mkdir: created directory '/tmp/maak-test-elevation-doas-6712'
removed '/tmp/maak-test-elevation-doas-6712/doas'
removed directory '/tmp/maak-test-elevation-doas-6712'
mkdir: created directory '/tmp/maak-test-elevation-both-6712'
removed '/tmp/maak-test-elevation-both-6712/doas'
removed '/tmp/maak-test-elevation-both-6712/sudo'
removed directory '/tmp/maak-test-elevation-both-6712'
mkdir: created directory '/tmp/maak-test-elevation-preferred-6712'
removed '/tmp/maak-test-elevation-preferred-6712/doas'
removed directory '/tmp/maak-test-elevation-preferred-6712'
mkdir: created directory '/tmp/maak-test-elevation-not-executable-6712'
removed '/tmp/maak-test-elevation-not-executable-6712/doas'
removed directory '/tmp/maak-test-elevation-not-executable-6712'
[🧪 test] a text fetch writes the body to standard output
✅ got: (wget --quiet --output-document=- https://example.org/file)
[🧪 test] text returns nothing in a dry run
✅ got:
[🧪 test] an empty URL is refused
✅ success catching error: %exception: (#<&maak-error message: "wget-download expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
✅ success catching error: %exception: (#<&maak-error message: "wget-mirror expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
✅ success catching error: %exception: (#<&maak-error message: "wget-text expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
[🧪 test] a header list must be a list of strings
✅ success catching error: %exception: (#<&maak-error message: "wget expects #:headers to be a list of strings, got (\"X: 1\" 2)" hint: "Write the values as separate strings, for example (list \"a\" \"b\").">)
[🧪 test] a timeout and a try count must be non-negative integers
✅ success catching error: %exception: (#<&maak-error message: "wget expects #:timeout to be a non-negative integer, got -1" hint: "Write a non-negative integer, such as 30 or 3.">)
✅ success catching error: %exception: (#<&maak-error message: "wget expects #:tries to be a non-negative integer, got \"3\"" hint: "Write a non-negative integer, such as 30 or 3.">)
[🧪 test] a generic call refuses arguments that are not strings
✅ success catching error: %exception: (#<&maak-error message: "wget expects #:arguments to be a list of strings, got (\"--version\" 3)" hint: "Write the values as separate strings, for example (list \"a\" \"b\").">)
+----------------------------------------------+
[📑 suite] Choosing a downloader
[🧪 test] download uses curl by default
✅ got: curl --location --fail --silent --show-error --compressed --output file --create-dirs https://example.org/file
[🧪 test] download can use wget
✅ got: wget --quiet --output-document file https://example.org/file
[🧪 test] download reads the fetch-command parameter
✅ got: wget --quiet --output-document file https://example.org/file
[🧪 test] download turns a user and password into curl's --user
✅ got: --user me:secret
[🧪 test] download passes wget's user and password separately
✅ got: --user me --password secret
[🧪 test] a password without a user is refused
✅ success catching error: %exception: (#<&maak-error message: "download expects a user when a password is given" hint: "Pass #:user too, or put the credentials in the URL.">)
[🧪 test] an unknown downloader is refused
✅ success catching error: %exception: (#<&maak-error message: "download expects curl or wget, got \"fetch\"" hint: "Set MAAK_FETCH to curl or wget.">)
[🧪 test] download refuses an empty URL
✅ success catching error: %exception: (#<&maak-error message: "download expects a URL" hint: "Write (curl-get \"https://example.org/file\").">)
ℹ️ info - ran 4 tasks in: 0 seconds, 115529 microseconds
running unit tests from file: elevation.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Choosing the escalation command
[🧪 test] sudo is the fallback
✅ got: sudo
[🧪 test] doas is chosen when it is installed
✅ got: doas
[🧪 test] doas wins over sudo when both are installed
✅ got: doas
[🧪 test] an explicit preference wins
✅ got: my-escalator;;; note: source file ./src/maak/main.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/main.go
;;; note: source file ./src/maak/main.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/main.go
;;; note: source file ./src/maak/main.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/main.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/main.scm.go
;;; note: source file ./src/maak/maak.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/maak.go
;;; note: source file ./src/maak/maak.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/maak.go
;;; note: source file ./src/maak/maak.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/maak.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/maak.scm.go
;;; note: source file ./src/maak/nix.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/nix.go
;;; note: source file ./src/maak/nix.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/nix.go
;;; note: source file ./src/maak/nix.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/nix.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/nix.scm.go
;;; note: source file ./src/maak/guix.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/guix.go
;;; note: source file ./src/maak/guix.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/guix.go
;;; note: source file ./src/maak/guix.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/guix.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/guix.scm.go
;;; note: source file ./src/maak/i18n.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/i18n.go
;;; note: source file ./src/maak/i18n.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/i18n.go
;;; note: source file ./src/maak/i18n.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/i18n.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/i18n.scm.go
;;; note: source file ./src/maak/version.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/version.go
;;; note: source file ./src/maak/version.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/version.go
;;; note: source file ./src/maak/version.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/version.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/version.scm.go
;;; note: source file ./src/maak/git.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/git.go
;;; note: source file ./src/maak/git.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/git.go
;;; note: source file ./src/maak/git.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/git.go
[🧪 test] a file that is not executable is not a command
✅ got: sudo
[🧪 test] the default is a non-empty string
✅ got: #t
+----------------------------------------------+
[📑 suite] Using the escalation command
[🧪 test] dollar puts the chosen command first
✅ got: doas echo hi
[🧪 test] dollar keeps the decoration order
✅ got: doas env A=1 echo hi >/dev/null 2>&1
[🧪 test] run puts the chosen command in its argv
✅ got: doas env A=1 echo hi
[🧪 test] a pipeline stage uses the chosen command
✅ got: doas env A=1 true
[🧪 test] the escalation command may carry options
✅ got: doas -n echo hi
[🧪 test] options may be separated by any whitespace
✅ got: doas -n echo hi
[🧪 test] an empty escalation command turns the request off
✅ got: echo hi
[🧪 test] an empty escalation command runs for real too
✅ got: #t
[🧪 test] decorate-command is the single place the choice is applied
✅ got: doas env A=1 true
[🧪 test] without the request nothing is added
✅ got: true
ℹ️ info - ran 2 tasks in: 0 seconds, 80965 microseconds
running unit tests from file: cli.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Command line switches
[🧪 test] the environment switch understands the usual negatives
✅ got: #f
✅ got: #f
✅ got: #f
✅ got: #f
✅ got: #f
✅ got: #t
✅ got: #t
[🧪 test] the banner is on unless something turns it off
✅ got: #t
✅ got: #f
✅ got: #t
[🧪 test] MAAK_NO_BANNER turns the banner off and --banner wins over it
✅ got: #f
✅ got: #t
✅ got: #f
[🧪 test] environment files come from the flag, the environment, or the file
✅ got: (a.env b.env)
✅ got: ()
✅ got: (one.env two.env)
✅ got: (test/maak/fixtures/.env)
+----------------------------------------------+
[📑 suite] Banner and listing
[🧪 test] the banner greets and names the Maak file
✅ got: 0
✅ got: the infinitely extensible
✅ got: test/maak/fixtures/cli.scm
✅ got: ok-task-ran
[🧪 test] --no-banner keeps the task output
✅ got: 0
✅ got: #f
✅ got: #f
✅ got: ok-task-ran
[🧪 test] MAAK_NO_BANNER is honoured by the run, not only by the switch
✅ got: 0
✅ got: #f
[🧪 test] --list shows every task with its docstring
✅ got: 0
✅ got: ok: Print a line and succeed.
✅ got: boom: Fail the way a task is supposed to fail.
+----------------------------------------------+
[📑 suite] A task that fails
[🧪 test] a task error prints one line with its hint and no backtrace
✅ got: 1
✅ got: maak: error: no artefact for cli-test
✅ got: hint: Run `maak ok' first.
✅ got: #f
✅ got: #f
[🧪 test] an unknown task lists the tasks that do exist
✅ got: 1
✅ got: Unknown task: nope
✅ got: Available tasks: boom, ok
+----------------------------------------------+
[📑 suite] Environment files at the command line
[🧪 test] --env-file is read before the tasks run
✅ got: 0
✅ got: TAG=from-env-file
[🧪 test] MAAK_ENV_FILE is read when no flag is given
✅ got: TAG=from-env-file
[🧪 test] a .env beside the Maak file is read by default
✅ got: DEFAULT=from-default-env
[🧪 test] --no-env-file reads nothing at all
✅ got: DEFAULT=unset
[🧪 test] the environment beats the file for a name it already has
✅ got: TAG=from-the-environment
+----------------------------------------------+
[📑 suite] Several tasks in one run
[🧪 test] a failure stops the tasks after it by default
✅ got: 1
✅ got: first-pass-ran
✅ got: #f
✅ got: no artefact for second-fail
[🧪 test] --keep-going runs the tasks after a failure and fails at the end
✅ got: 1
✅ got: first-pass-ran
✅ got: last-pass-ran
✅ got: maak: error (task second-fail):
✅ got: no artefact for second-fail
✅ got: (task third-fail):
✅ got: 2 tasks failed: second-fail, third-fail
[🧪 test] --ignore-errors keeps going and still exits 0
✅ got: 0
✅ got: last-pass-ran
✅ got: maak: warning: 1 task failed and --ignore-errors was given: second-fail
✅ got: no artefact for second-fail
+----------------------------------------------+
[📑 suite] Changing directory before anything else
[🧪 test] --directory reads the Maak file of the directory it entered
✅ got: 0
✅ got: Entering directory
✅ got: subdir-marker-ran
[🧪 test] a directory that is not there is an error, not a silent fallback
✅ got: 1
✅ got: no such directory: no/such/directory
✅ got: #t
✅ got: #t
[🧪 test] the directory entered is reported by default
✅ got: #t
[🧪 test] --no-print-directory leaves the report out
✅ got: #f
[🧪 test] --quiet asks for silence as well
✅ got: #f
[🧪 test] --no-print-directory runs the same task without the line
✅ got: 0
✅ got: subdir-marker-ran
✅ got: #f
+----------------------------------------------+
[📑 suite] The arguments a run passes on
[🧪 test] the words after `--' reach the task that was named
✅ got: args=one,two
[🧪 test] a task that takes no arguments is handed none
✅ got: 0
[🧪 test] the arity failure is still the one Guile raised
✅ got: Wrong number of arguments
[🧪 test] a word that names a task is pointed out as an argument
✅ got: `beta' names a task of this Maak file
[🧪 test] the hint spells out the run that was probably meant
✅ got: To run several tasks, name them in one comma separated list (`maak alpha,beta') or one word each after `--' (`maak -- alpha beta')
[🧪 test] a word that names no task leaves the arity error alone
✅ got: #f
[🧪 test] the hint is printed where a run keeps going as well
✅ got: `beta' names a task of this Maak file
ℹ️ info - ran 7 tasks in: 0 seconds, 98097 microseconds
running unit tests from file: tasks.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Task resolution
[🧪 test] exports restrict the visible tasks
✅ got: (alpha beta);;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/git.scm.go
;;; note: source file ./src/maak/archive.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/archive.go
;;; note: source file ./src/maak/archive.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/archive.go
;;; note: source file ./src/maak/archive.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/archive.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/archive.scm.go
;;; note: source file ./src/maak/niri.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/niri.go
;;; note: source file ./src/maak/niri.scm
;;; newer than compiled /gnu/store/bhn31rd8l2ajlsn42d93sgs1qqc5w86a-maak-0.14.0/lib/guile/3.0/site-ccache/maak/niri.go
;;; note: source file ./src/maak/niri.scm
;;; newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/maak/niri.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/maak/trunk/src/maak/niri.scm.go
mkdir: created directory '/tmp/maak-test-i18n-6712'
mkdir: created directory '/tmp/maak-test-i18n-6712/sources'
[🧪 test] non-exported procedures are hidden
✅ got: #f
[🧪 test] a module without exports is open season
✅ got: (one two)
[🧪 test] available-task-names returns a list
✅ got: #t
[🧪 test] available-task-names returns strings
✅ got: #t
[🧪 test] available-task-names is sorted
✅ got: (alpha beta boom echo-args first-pass last-pass ok report-default report-env second-fail sub-marker third-fail)
+----------------------------------------------+
[📑 suite] Unknown task errors
[🧪 test] an unknown task names itself
✅ got: Unknown task: nope
[🧪 test] a missing default gets its own message
✅ got: Could not find a `default' task in this Maak file.
[🧪 test] the error carries a hint
✅ got: #t
[🧪 test] the hint says something
✅ got: #t
[🧪 test] run-task raises for a task that does not exist
✅ success catching error: %exception: (#<&maak-error message: "Unknown task: definitely-missing-task" hint: "Available tasks: alpha, beta, boom, echo-args, first-pass, last-pass, ok, report-default, report-env, second-fail, sub-marker, third-fail">)
[🧪 test] run-tasks raises for a task that does not exist
✅ success catching error: %exception: (#<&maak-error message: "Unknown task: definitely-missing-task" hint: "Available tasks: alpha, beta, boom, echo-args, first-pass, last-pass, ok, report-default, report-env, second-fail, sub-marker, third-fail">)
[🧪 test] run-tasks of nothing is a no-op
✅ got: #t
+----------------------------------------------+
[📑 suite] Docstring layout is exported
[🧪 test] format-task-doc is available from (maak maak)
✅ got: #t
✅ got: (t: one line)
[🧪 test] available-task-names is available from (maak maak)
✅ got: #t
ℹ️ info - ran 3 tasks in: 0 seconds, 8699 microseconds
running unit tests from file: commands.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Guix command construction
[🧪 test] guix-shell lists its packages
✅ got: guix shell guile coreutils -- echo hi
[🧪 test] guix-shell can be pure and use a manifest
✅ got: guix shell --pure -m manifest.scm -- maak test
[🧪 test] guix-container isolates with a container
✅ got: guix shell --container -m manifest.scm --network -S /home/joe -- echo hi
[🧪 test] guix-pack builds a docker image
✅ got: guix pack --file=guix.scm --format=docker --image-tag=maak -S /bin=bin bash
+----------------------------------------------+
[📑 suite] Nix command construction
[🧪 test] nix-shell runs the command it is given
✅ got: --run 'echo hi'
[🧪 test] nix-shell passes packages
✅ got: --packages python3
[🧪 test] nix-shell names itself
✅ got: nix-shell
[🧪 test] nix-shell can be pure
✅ got: --pure
[🧪 test] nix-shell can be file based
✅ got: --file shell.nix
[🧪 test] nix-develop runs a flake's shell
✅ got: nix develop . --command make test
[🧪 test] nix-build builds a file
✅ got: nix-build default.nix
[🧪 test] nix-flake-build selects an attribute
✅ got: nix build .#packages.x86_64-linux.maak
[🧪 test] nix-flake-check checks all systems
✅ got: nix flake check --all-systems .
[🧪 test] nix-run runs an app of a flake
✅ got: nix run .#maak -- --version
+----------------------------------------------+
[📑 suite] i18n helpers
[🧪 test] the catalogue paths follow the gettext layout
✅ got: po/nl_NL/LC_MESSAGES
✅ got: po/nl_NL/LC_MESSAGES/messages.po
✅ got: po/nl_NL/LC_MESSAGES/maak.mo
✅ got: po/maak.pot
[🧪 test] the directory and its trailing slash are handled
✅ got: sys/i18n/locale/nl_NL/LC_MESSAGES
✅ got: sys/i18n/locale/translate.pot
[🧪 test] source globs keep the directories that exist
✅ got: (src/*.scm)
[🧪 test] source globs skip directories that do not exist
✅ got: #f
[🧪 test] i18n-compile builds a msgfmt command
✅ got: msgfmt -v -o po/nl_NL/LC_MESSAGES/messages.mo
[🧪 test] i18n-compile names the catalogue it compiles
✅ got: po/nl_NL/LC_MESSAGES/messages.po
[🧪 test] i18n-merge builds a msgmerge command
✅ got: msgmerge -U
[🧪 test] i18n-init builds a msginit command
✅ got: msginit -l nl_NL.UTF8
[🧪 test] i18n-init asks for no translator
✅ got: --no-translator
[🧪 test] a first extraction runs xgettext
✅ got: xgettext
[🧪 test] a first extraction knows it is reading Scheme
✅ got: --language=Scheme
[🧪 test] a first extraction collects the translated strings
✅ got: --keyword=G_
[🧪 test] the first extraction does not join an existing template
✅ got: #f
[🧪 test] i18n-language is a language
✅ got: #t
[🧪 test] i18n-language strips the encoding
✅ got: #f
[🧪 test] i18n-language strips the modifier
✅ got: #f
+----------------------------------------------+
[📑 suite] Command decorations
[🧪 test] an environment is handed over through env
✅ got: env CI=1 make
✅ got: env A=1 B=2 make
✅ got: env ONLY=1 make
[🧪 test] the decorations come in the order a shell would want
✅ got: sudo env CI=1 systemctl daemon-reload >/dev/null 2>&1
[🧪 test] a backgrounded command is started, not waited for
✅ got: make -j &
[🧪 test] an allowed failure still runs the command it was given
✅ got: make failing-target
[🧪 test] an allowed failure is not turned into a `|| true' shell
✅ got: #f
[🧪 test] the Guix shells forward the decorations
✅ got: env CI=1 guix shell -m manifest.scm -- maak test
✅ got: env A=1 guix time-machine --channels=channels.scm -- guix build hello
✅ got: env A=1 guix shell -f guix.scm -- x
✅ got: env A=1 guix time-machine --channels=channels.scm -- shell -m manifest.scm
✅ got: env A=1 guix time-machine --channels=channels.scm -- shell -f guix.scm
[🧪 test] a container and a pack forward the decorations
✅ got: env CI=1 guix shell --container -m manifest.scm -- maak test >/dev/null 2>&1
✅ got: env A=1 guix pack --file=guix.scm
[🧪 test] the Nix helpers forward the decorations
✅ got: env NIX=1 nix-shell --packages gcc --run 'make test'
✅ got: env A=1 nix develop . --command make
✅ got: env A=1 nix flake check .mkdir: created directory '/tmp/maak-test-git-init-6712'
removed '/tmp/maak-test-git-init-6712/.git/description'
removed '/tmp/maak-test-git-init-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-init-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-init-6712/.git/hooks'
removed '/tmp/maak-test-git-init-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-init-6712/.git/info'
removed directory '/tmp/maak-test-git-init-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-init-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-init-6712/.git/refs'
removed '/tmp/maak-test-git-init-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-init-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-init-6712/.git/objects/info'
removed directory '/tmp/maak-test-git-init-6712/.git/objects'
removed '/tmp/maak-test-git-init-6712/.git/config'
removed directory '/tmp/maak-test-git-init-6712/.git'
removed directory '/tmp/maak-test-git-init-6712'
mkdir: created directory '/tmp/maak-test-git-add-6712'
removed '/tmp/maak-test-git-add-6712/.git/description'
removed '/tmp/maak-test-git-add-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-add-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-add-6712/.git/hooks'
removed '/tmp/maak-test-git-add-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-add-6712/.git/info'
removed directory '/tmp/maak-test-git-add-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-add-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-add-6712/.git/refs'
removed '/tmp/maak-test-git-add-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-add-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-add-6712/.git/objects/info'
removed '/tmp/maak-test-git-add-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-add-6712/.git/objects/43'
removed directory '/tmp/maak-test-git-add-6712/.git/objects'
removed '/tmp/maak-test-git-add-6712/.git/config'
removed '/tmp/maak-test-git-add-6712/.git/index'
removed directory '/tmp/maak-test-git-add-6712/.git'
removed '/tmp/maak-test-git-add-6712/a.txt'
removed directory '/tmp/maak-test-git-add-6712'
mkdir: created directory '/tmp/maak-test-git-commit-6712'
[trunk (root-commit) f316f81] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-commit-6712/.git/description'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-commit-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-commit-6712/.git/hooks'
removed '/tmp/maak-test-git-commit-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-commit-6712/.git/info'
removed '/tmp/maak-test-git-commit-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-commit-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-commit-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-commit-6712/.git/refs'
removed '/tmp/maak-test-git-commit-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-commit-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-commit-6712/.git/objects/info'
removed '/tmp/maak-test-git-commit-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-commit-6712/.git/objects/43'
removed '/tmp/maak-test-git-commit-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-commit-6712/.git/objects/07'
removed '/tmp/maak-test-git-commit-6712/.git/objects/f3/16f81776b0bc2a9c5bf72616e810e582e4f10b'
removed directory '/tmp/maak-test-git-commit-6712/.git/objects/f3'
removed directory '/tmp/maak-test-git-commit-6712/.git/objects'
removed '/tmp/maak-test-git-commit-6712/.git/config'
removed '/tmp/maak-test-git-commit-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-commit-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-commit-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-commit-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-commit-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-commit-6712/.git/logs'
removed '/tmp/maak-test-git-commit-6712/.git/index'
removed directory '/tmp/maak-test-git-commit-6712/.git'
removed '/tmp/maak-test-git-commit-6712/a.txt'
removed directory '/tmp/maak-test-git-commit-6712'
mkdir: created directory '/tmp/maak-test-git-revision-6712'
[trunk (root-commit) f316f81] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-revision-6712/.git/description'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-revision-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-revision-6712/.git/hooks'
removed '/tmp/maak-test-git-revision-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-revision-6712/.git/info'
removed '/tmp/maak-test-git-revision-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-revision-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-revision-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-revision-6712/.git/refs'
removed '/tmp/maak-test-git-revision-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-revision-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-revision-6712/.git/objects/info'
removed '/tmp/maak-test-git-revision-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-revision-6712/.git/objects/43'
removed '/tmp/maak-test-git-revision-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-revision-6712/.git/objects/07'
removed '/tmp/maak-test-git-revision-6712/.git/objects/f3/16f81776b0bc2a9c5bf72616e810e582e4f10b'
removed directory '/tmp/maak-test-git-revision-6712/.git/objects/f3'
removed directory '/tmp/maak-test-git-revision-6712/.git/objects'
removed '/tmp/maak-test-git-revision-6712/.git/config'
removed '/tmp/maak-test-git-revision-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-revision-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-revision-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-revision-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-revision-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-revision-6712/.git/logs'
removed '/tmp/maak-test-git-revision-6712/.git/index'
removed directory '/tmp/maak-test-git-revision-6712/.git'
removed '/tmp/maak-test-git-revision-6712/a.txt'
removed directory '/tmp/maak-test-git-revision-6712'
mkdir: created directory '/tmp/maak-test-git-dirty-6712'
[trunk (root-commit) f316f81] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-dirty-6712/.git/description'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-dirty-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-dirty-6712/.git/hooks'
removed '/tmp/maak-test-git-dirty-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-dirty-6712/.git/info'
removed '/tmp/maak-test-git-dirty-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-dirty-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-dirty-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-dirty-6712/.git/refs'
removed '/tmp/maak-test-git-dirty-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-dirty-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-dirty-6712/.git/objects/info'
removed '/tmp/maak-test-git-dirty-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-dirty-6712/.git/objects/43'
removed '/tmp/maak-test-git-dirty-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-dirty-6712/.git/objects/07'
removed '/tmp/maak-test-git-dirty-6712/.git/objects/f3/16f81776b0bc2a9c5bf72616e810e582e4f10b'
removed directory '/tmp/maak-test-git-dirty-6712/.git/objects/f3'
removed directory '/tmp/maak-test-git-dirty-6712/.git/objects'
removed '/tmp/maak-test-git-dirty-6712/.git/config'
removed '/tmp/maak-test-git-dirty-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-dirty-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-dirty-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-dirty-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-dirty-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-dirty-6712/.git/logs'
removed '/tmp/maak-test-git-dirty-6712/.git/index'
removed directory '/tmp/maak-test-git-dirty-6712/.git'
removed '/tmp/maak-test-git-dirty-6712/a.txt'
removed directory '/tmp/maak-test-git-dirty-6712'
mkdir: created directory '/tmp/maak-test-git-clean-6712'
[trunk (root-commit) f316f81] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-clean-6712/.git/description'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-clean-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-clean-6712/.git/hooks'
removed '/tmp/maak-test-git-clean-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-clean-6712/.git/info'
removed '/tmp/maak-test-git-clean-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clean-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-clean-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-clean-6712/.git/refs'
removed '/tmp/maak-test-git-clean-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-clean-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-clean-6712/.git/objects/info'
removed '/tmp/maak-test-git-clean-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-clean-6712/.git/objects/43'
removed '/tmp/maak-test-git-clean-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-clean-6712/.git/objects/07'
removed '/tmp/maak-test-git-clean-6712/.git/objects/f3/16f81776b0bc2a9c5bf72616e810e582e4f10b'
removed directory '/tmp/maak-test-git-clean-6712/.git/objects/f3'
removed directory '/tmp/maak-test-git-clean-6712/.git/objects'
removed '/tmp/maak-test-git-clean-6712/.git/config'
removed '/tmp/maak-test-git-clean-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-clean-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-clean-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clean-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-clean-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-clean-6712/.git/logs'
removed '/tmp/maak-test-git-clean-6712/.git/index'
removed directory '/tmp/maak-test-git-clean-6712/.git'
removed '/tmp/maak-test-git-clean-6712/a.txt'
removed directory '/tmp/maak-test-git-clean-6712'
mkdir: created directory '/tmp/maak-test-git-tag-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-tag-6712/.git/description'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-tag-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-tag-6712/.git/hooks'
removed '/tmp/maak-test-git-tag-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-tag-6712/.git/info'
removed '/tmp/maak-test-git-tag-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-tag-6712/.git/refs/heads'
removed '/tmp/maak-test-git-tag-6712/.git/refs/tags/v1'
removed directory '/tmp/maak-test-git-tag-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-tag-6712/.git/refs'
removed '/tmp/maak-test-git-tag-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-tag-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-tag-6712/.git/objects/info'
removed '/tmp/maak-test-git-tag-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-tag-6712/.git/objects/43'
removed '/tmp/maak-test-git-tag-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-tag-6712/.git/objects/07'
removed '/tmp/maak-test-git-tag-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-tag-6712/.git/objects/6c'
removed '/tmp/maak-test-git-tag-6712/.git/objects/10/e2f3a8c1258a6064349a5691aea1b6cde65576'
removed directory '/tmp/maak-test-git-tag-6712/.git/objects/10'
removed directory '/tmp/maak-test-git-tag-6712/.git/objects'
removed '/tmp/maak-test-git-tag-6712/.git/config'
removed '/tmp/maak-test-git-tag-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-tag-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-tag-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-tag-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-tag-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-tag-6712/.git/logs'
removed '/tmp/maak-test-git-tag-6712/.git/index'
removed directory '/tmp/maak-test-git-tag-6712/.git'
removed '/tmp/maak-test-git-tag-6712/a.txt'
removed directory '/tmp/maak-test-git-tag-6712'
mkdir: created directory '/tmp/maak-test-git-describe-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-describe-6712/.git/description'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-describe-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-describe-6712/.git/hooks'
removed '/tmp/maak-test-git-describe-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-describe-6712/.git/info'
removed '/tmp/maak-test-git-describe-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-describe-6712/.git/refs/heads'
removed '/tmp/maak-test-git-describe-6712/.git/refs/tags/v2'
removed directory '/tmp/maak-test-git-describe-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-describe-6712/.git/refs'
removed '/tmp/maak-test-git-describe-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-describe-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-describe-6712/.git/objects/info'
removed '/tmp/maak-test-git-describe-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-describe-6712/.git/objects/43'
removed '/tmp/maak-test-git-describe-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-describe-6712/.git/objects/07'
removed '/tmp/maak-test-git-describe-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-describe-6712/.git/objects/6c'
removed directory '/tmp/maak-test-git-describe-6712/.git/objects'
removed '/tmp/maak-test-git-describe-6712/.git/config'
removed '/tmp/maak-test-git-describe-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-describe-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-describe-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-describe-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-describe-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-describe-6712/.git/logs'
removed '/tmp/maak-test-git-describe-6712/.git/index'
removed directory '/tmp/maak-test-git-describe-6712/.git'
removed '/tmp/maak-test-git-describe-6712/a.txt'
removed directory '/tmp/maak-test-git-describe-6712'
mkdir: created directory '/tmp/maak-test-git-switch-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
Switched to branch 'feature'
removed '/tmp/maak-test-git-switch-6712/.git/description'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-switch-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-switch-6712/.git/hooks'
removed '/tmp/maak-test-git-switch-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-switch-6712/.git/info'
removed '/tmp/maak-test-git-switch-6712/.git/refs/heads/trunk'
removed '/tmp/maak-test-git-switch-6712/.git/refs/heads/feature'
removed directory '/tmp/maak-test-git-switch-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-switch-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-switch-6712/.git/refs'
removed directory '/tmp/maak-test-git-switch-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-switch-6712/.git/objects/info'
removed '/tmp/maak-test-git-switch-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-switch-6712/.git/objects/43'
removed '/tmp/maak-test-git-switch-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-switch-6712/.git/objects/07'
removed '/tmp/maak-test-git-switch-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-switch-6712/.git/objects/6c'
removed directory '/tmp/maak-test-git-switch-6712/.git/objects'
removed '/tmp/maak-test-git-switch-6712/.git/config'
removed '/tmp/maak-test-git-switch-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-switch-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-switch-6712/.git/logs/refs/heads/trunk'
removed '/tmp/maak-test-git-switch-6712/.git/logs/refs/heads/feature'
removed directory '/tmp/maak-test-git-switch-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-switch-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-switch-6712/.git/logs'
removed '/tmp/maak-test-git-switch-6712/.git/index'
removed '/tmp/maak-test-git-switch-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-switch-6712/.git'
removed '/tmp/maak-test-git-switch-6712/a.txt'
removed directory '/tmp/maak-test-git-switch-6712'
mkdir: created directory '/tmp/maak-test-git-detached-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
HEAD is now at 6c3f491 first
removed '/tmp/maak-test-git-detached-6712/.git/description'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-detached-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-detached-6712/.git/hooks'
removed '/tmp/maak-test-git-detached-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-detached-6712/.git/info'
removed '/tmp/maak-test-git-detached-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-detached-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-detached-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-detached-6712/.git/refs'
removed directory '/tmp/maak-test-git-detached-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-detached-6712/.git/objects/info'
removed '/tmp/maak-test-git-detached-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-detached-6712/.git/objects/43'
removed '/tmp/maak-test-git-detached-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-detached-6712/.git/objects/07'
removed '/tmp/maak-test-git-detached-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-detached-6712/.git/objects/6c'
removed directory '/tmp/maak-test-git-detached-6712/.git/objects'
removed '/tmp/maak-test-git-detached-6712/.git/config'
removed '/tmp/maak-test-git-detached-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-detached-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-detached-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-detached-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-detached-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-detached-6712/.git/logs'
removed '/tmp/maak-test-git-detached-6712/.git/index'
removed '/tmp/maak-test-git-detached-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-detached-6712/.git'
removed '/tmp/maak-test-git-detached-6712/a.txt'
removed directory '/tmp/maak-test-git-detached-6712'
mkdir: created directory '/tmp/maak-test-git-remote-6712'
removed '/tmp/maak-test-git-remote-6712/.git/description'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-remote-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-remote-6712/.git/hooks'
removed '/tmp/maak-test-git-remote-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-remote-6712/.git/info'
removed directory '/tmp/maak-test-git-remote-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-remote-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-remote-6712/.git/refs'
removed '/tmp/maak-test-git-remote-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-remote-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-remote-6712/.git/objects/info'
removed directory '/tmp/maak-test-git-remote-6712/.git/objects'
removed '/tmp/maak-test-git-remote-6712/.git/config'
removed directory '/tmp/maak-test-git-remote-6712/.git'
removed directory '/tmp/maak-test-git-remote-6712'
mkdir: created directory '/tmp/maak-test-git-remotes-6712'
removed '/tmp/maak-test-git-remotes-6712/.git/description'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-remotes-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-remotes-6712/.git/hooks'
removed '/tmp/maak-test-git-remotes-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-remotes-6712/.git/info'
removed directory '/tmp/maak-test-git-remotes-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-remotes-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-remotes-6712/.git/refs'
removed '/tmp/maak-test-git-remotes-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-remotes-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-remotes-6712/.git/objects/info'
removed directory '/tmp/maak-test-git-remotes-6712/.git/objects'
removed '/tmp/maak-test-git-remotes-6712/.git/config'
removed directory '/tmp/maak-test-git-remotes-6712/.git'
removed directory '/tmp/maak-test-git-remotes-6712'
mkdir: created directory '/tmp/maak-test-git-diff-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-diff-6712/.git/description'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-diff-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-diff-6712/.git/hooks'
removed '/tmp/maak-test-git-diff-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-diff-6712/.git/info'
removed '/tmp/maak-test-git-diff-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-diff-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-diff-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-diff-6712/.git/refs'
removed '/tmp/maak-test-git-diff-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-diff-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-diff-6712/.git/objects/info'
removed '/tmp/maak-test-git-diff-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-diff-6712/.git/objects/43'
removed '/tmp/maak-test-git-diff-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-diff-6712/.git/objects/07'
removed '/tmp/maak-test-git-diff-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-diff-6712/.git/objects/6c'
removed directory '/tmp/maak-test-git-diff-6712/.git/objects'
removed '/tmp/maak-test-git-diff-6712/.git/config'
removed '/tmp/maak-test-git-diff-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-diff-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-diff-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-diff-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-diff-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-diff-6712/.git/logs'
removed '/tmp/maak-test-git-diff-6712/.git/index'
removed directory '/tmp/maak-test-git-diff-6712/.git'
removed '/tmp/maak-test-git-diff-6712/a.txt'
removed directory '/tmp/maak-test-git-diff-6712'
mkdir: created directory '/tmp/maak-test-git-stash-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
Saved working directory and index state WIP on trunk: 6c3f491 first
On branch trunk
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: a.txt
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (a3e2b7b3637f42ade100baa99cf92c9625b5529f)
removed '/tmp/maak-test-git-stash-6712/.git/description'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-stash-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-stash-6712/.git/hooks'
removed '/tmp/maak-test-git-stash-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-stash-6712/.git/info'
removed '/tmp/maak-test-git-stash-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-stash-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-stash-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-stash-6712/.git/refs'
removed '/tmp/maak-test-git-stash-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/info'
removed '/tmp/maak-test-git-stash-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/43'
removed '/tmp/maak-test-git-stash-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/07'
removed '/tmp/maak-test-git-stash-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/6c'
removed '/tmp/maak-test-git-stash-6712/.git/objects/2a/339ed3bc545481d85b3d54410eeb027ab756b3'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/2a'
removed '/tmp/maak-test-git-stash-6712/.git/objects/64/c5e5885a4b06010b3a0c20edb7900dd0311025'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/64'
removed '/tmp/maak-test-git-stash-6712/.git/objects/aa/d2fe6de7e85e540a89abff48edc7e6e61584b6'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/aa'
removed '/tmp/maak-test-git-stash-6712/.git/objects/a3/e2b7b3637f42ade100baa99cf92c9625b5529f'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects/a3'
removed directory '/tmp/maak-test-git-stash-6712/.git/objects'
removed '/tmp/maak-test-git-stash-6712/.git/config'
removed '/tmp/maak-test-git-stash-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-stash-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-stash-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-stash-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-stash-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-stash-6712/.git/logs'
removed '/tmp/maak-test-git-stash-6712/.git/ORIG_HEAD'
removed '/tmp/maak-test-git-stash-6712/.git/AUTO_MERGE'
removed '/tmp/maak-test-git-stash-6712/.git/index'
removed directory '/tmp/maak-test-git-stash-6712/.git'
removed '/tmp/maak-test-git-stash-6712/a.txt'
removed directory '/tmp/maak-test-git-stash-6712'
mkdir: created directory '/tmp/maak-test-git-clean-file-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
Removing junk.txt
removed '/tmp/maak-test-git-clean-file-6712/.git/description'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-clean-file-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/hooks'
removed '/tmp/maak-test-git-clean-file-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/info'
removed '/tmp/maak-test-git-clean-file-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/refs'
removed '/tmp/maak-test-git-clean-file-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/objects/info'
removed '/tmp/maak-test-git-clean-file-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/objects/43'
removed '/tmp/maak-test-git-clean-file-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/objects/07'
removed '/tmp/maak-test-git-clean-file-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/objects/6c'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/objects'
removed '/tmp/maak-test-git-clean-file-6712/.git/config'
removed '/tmp/maak-test-git-clean-file-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-clean-file-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-clean-file-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-clean-file-6712/.git/logs'
removed '/tmp/maak-test-git-clean-file-6712/.git/index'
removed directory '/tmp/maak-test-git-clean-file-6712/.git'
removed '/tmp/maak-test-git-clean-file-6712/a.txt'
removed directory '/tmp/maak-test-git-clean-file-6712'
mkdir: created directory '/tmp/maak-test-git-output-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-output-6712/.git/description'
removed '/tmp/maak-test-git-output-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-output-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-output-6712/.git/hooks'
removed '/tmp/maak-test-git-output-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-output-6712/.git/info'
removed '/tmp/maak-test-git-output-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-output-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-output-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-output-6712/.git/refs'
removed '/tmp/maak-test-git-output-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-output-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-output-6712/.git/objects/info'
removed '/tmp/maak-test-git-output-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-output-6712/.git/objects/43'
removed '/tmp/maak-test-git-output-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-output-6712/.git/objects/07'
removed '/tmp/maak-test-git-output-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-output-6712/.git/objects/6c'
removed directory '/tmp/maak-test-git-output-6712/.git/objects'
removed '/tmp/maak-test-git-output-6712/.git/config'
removed '/tmp/maak-test-git-output-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-output-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-output-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-output-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-output-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-output-6712/.git/logs'
removed '/tmp/maak-test-git-output-6712/.git/index'
removed directory '/tmp/maak-test-git-output-6712/.git'
removed '/tmp/maak-test-git-output-6712/a.txt'
removed directory '/tmp/maak-test-git-output-6712'
mkdir: created directory '/tmp/maak-test-git-failure-6712'
fatal: Needed a single revision
removed '/tmp/maak-test-git-failure-6712/.git/description'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-failure-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-failure-6712/.git/hooks'
removed '/tmp/maak-test-git-failure-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-failure-6712/.git/info'
removed directory '/tmp/maak-test-git-failure-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-failure-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-failure-6712/.git/refs'
removed '/tmp/maak-test-git-failure-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-failure-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-failure-6712/.git/objects/info'
removed directory '/tmp/maak-test-git-failure-6712/.git/objects'
removed '/tmp/maak-test-git-failure-6712/.git/config'
removed directory '/tmp/maak-test-git-failure-6712/.git'
removed directory '/tmp/maak-test-git-failure-6712'
mkdir: created directory '/tmp/maak-test-git-archive-tar-6712'
mkdir: created directory '/tmp/maak-test-git-archive-out-6712'
[trunk (root-commit) 6c3f491] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-archive-tar-6712/.git/description'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-archive-tar-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/hooks'
removed '/tmp/maak-test-git-archive-tar-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/info'
removed '/tmp/maak-test-git-archive-tar-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/refs'
removed '/tmp/maak-test-git-archive-tar-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/objects/info'
removed '/tmp/maak-test-git-archive-tar-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/objects/43'
removed '/tmp/maak-test-git-archive-tar-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/objects/07'
removed '/tmp/maak-test-git-archive-tar-6712/.git/objects/6c/3f491efc7850cd32928fd38de2e4fd59ccc1ac'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/objects/6c'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/objects'
removed '/tmp/maak-test-git-archive-tar-6712/.git/config'
removed '/tmp/maak-test-git-archive-tar-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-archive-tar-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-archive-tar-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git/logs'
removed '/tmp/maak-test-git-archive-tar-6712/.git/index'
removed directory '/tmp/maak-test-git-archive-tar-6712/.git'
removed '/tmp/maak-test-git-archive-tar-6712/a.txt'
removed directory '/tmp/maak-test-git-archive-tar-6712'
removed '/tmp/maak-test-git-archive-out-6712/p.tar.gz'
removed directory '/tmp/maak-test-git-archive-out-6712'
mkdir: created directory '/tmp/maak-test-git-archive-zip-6712'
mkdir: created directory '/tmp/maak-test-git-archive-zip-out-6712'
[trunk (root-commit) 7b35eb3] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
removed '/tmp/maak-test-git-archive-zip-6712/.git/description'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-archive-zip-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/hooks'
removed '/tmp/maak-test-git-archive-zip-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/info'
removed '/tmp/maak-test-git-archive-zip-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/refs'
removed '/tmp/maak-test-git-archive-zip-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/objects/info'
removed '/tmp/maak-test-git-archive-zip-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/objects/43'
removed '/tmp/maak-test-git-archive-zip-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/objects/07'
removed '/tmp/maak-test-git-archive-zip-6712/.git/objects/7b/35eb3e71e8eb6ecb84c7921d9668aa63b340ff'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/objects/7b'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/objects'
removed '/tmp/maak-test-git-archive-zip-6712/.git/config'
removed '/tmp/maak-test-git-archive-zip-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-archive-zip-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-archive-zip-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git/logs'
removed '/tmp/maak-test-git-archive-zip-6712/.git/index'
removed directory '/tmp/maak-test-git-archive-zip-6712/.git'
removed '/tmp/maak-test-git-archive-zip-6712/a.txt'
removed directory '/tmp/maak-test-git-archive-zip-6712'
removed '/tmp/maak-test-git-archive-zip-out-6712/p.zip'
removed directory '/tmp/maak-test-git-archive-zip-out-6712'
mkdir: created directory '/tmp/maak-test-git-clone-source-6712'
mkdir: created directory '/tmp/maak-test-git-clone-parent-6712'
[trunk (root-commit) 7b35eb3] first
1 file changed, 1 insertion(+)
create mode 100644 a.txt
Cloning into '/tmp/maak-test-git-clone-parent-6712/target'...
done.
removed '/tmp/maak-test-git-clone-source-6712/.git/description'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-clone-source-6712/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/hooks'
removed '/tmp/maak-test-git-clone-source-6712/.git/info/exclude'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/info'
removed '/tmp/maak-test-git-clone-source-6712/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/refs/heads'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/refs/tags'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/refs'
removed '/tmp/maak-test-git-clone-source-6712/.git/HEAD'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/objects/pack'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/objects/info'
removed '/tmp/maak-test-git-clone-source-6712/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/objects/43'
removed '/tmp/maak-test-git-clone-source-6712/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/objects/07'
removed '/tmp/maak-test-git-clone-source-6712/.git/objects/7b/35eb3e71e8eb6ecb84c7921d9668aa63b340ff'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/objects/7b'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/objects'
removed '/tmp/maak-test-git-clone-source-6712/.git/config'
removed '/tmp/maak-test-git-clone-source-6712/.git/COMMIT_EDITMSG'
removed '/tmp/maak-test-git-clone-source-6712/.git/logs/HEAD'
removed '/tmp/maak-test-git-clone-source-6712/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/logs/refs'
removed directory '/tmp/maak-test-git-clone-source-6712/.git/logs'
removed '/tmp/maak-test-git-clone-source-6712/.git/index'
removed directory '/tmp/maak-test-git-clone-source-6712/.git'
removed '/tmp/maak-test-git-clone-source-6712/a.txt'
removed directory '/tmp/maak-test-git-clone-source-6712'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/description'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/applypatch-msg.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/commit-msg.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/fsmonitor-watchman.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/post-update.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/pre-applypatch.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/pre-commit.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/pre-merge-commit.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/pre-push.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/pre-rebase.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/pre-receive.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/prepare-commit-msg.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/push-to-checkout.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/sendemail-validate.sample'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks/update.sample'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/hooks'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/info/exclude'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/info'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/pack'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/info'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/43/dd47ea691c90a5fa7827892c70241913351963'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/43'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/07/74631921416916f52abe96497a247055976283'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/07'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/7b/35eb3e71e8eb6ecb84c7921d9668aa63b340ff'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/objects/7b'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/objects'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/refs/heads'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/refs/tags'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/refs/remotes/origin/HEAD'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/refs/remotes/origin'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/refs/remotes'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/refs'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/packed-refs'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/logs/refs/remotes/origin/HEAD'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/logs/refs/remotes/origin'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/logs/refs/remotes'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/logs/refs/heads/trunk'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/logs/refs/heads'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/logs/refs'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/logs/HEAD'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git/logs'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/HEAD'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/config'
removed '/tmp/maak-test-git-clone-parent-6712/target/.git/index'
removed directory '/tmp/maak-test-git-clone-parent-6712/target/.git'
removed '/tmp/maak-test-git-clone-parent-6712/target/a.txt'
removed directory '/tmp/maak-test-git-clone-parent-6712/target'
removed directory '/tmp/maak-test-git-clone-parent-6712'
[🧪 test] the shells honour the join separator they are given
✅ got: a && b
+----------------------------------------------+
[📑 suite] Running decorated commands
[🧪 test] a failing command stops a task
✅ success catching error: %exception: (#<&maak-error message: "command failed (exit code 1): false" hint: "Fix the command above, or run `maak --dry-run' to inspect it first.">)
✅ success catching error: %exception: (#<&maak-error message: "command failed (exit code 3): exit 3" hint: "Fix the command above, or run `maak --dry-run' to inspect it first.">)
[🧪 test] a signalled command raises a maak error
✅ got: command was terminated by a signal
[🧪 test] a failure that is allowed is reported, not raised
✅ got: #f
✅ got: #f
✅ got: #t
[🧪 test] a backgrounded command reports a job with a pid
Executing: sleep 3
✅ got: #t
[🧪 test] a backgrounded command is not waited for
Executing: sleep 3
✅ got: #t
[🧪 test] a discarded command still runs
✅ got: #t
[🧪 test] #:env reaches the command itself
✅ got: from-dollar
[🧪 test] #:env reaches one command, not the whole task
✅ got: #f
ℹ️ info - ran 5 tasks in: 0 seconds, 148914 microseconds
running unit tests from file: git.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Git argument lists
[🧪 test] git-argv names the checkout with -C
✅ got: (git -C /tmp/repo status)
[🧪 test] git-argv defaults to the current directory
✅ got: (git -C . status)
[🧪 test] a clone puts the destination last
✅ got: git clone --branch main --depth 1 https://example.org/p.git vendor/p
[🧪 test] a bare clone asks for --bare
✅ got: git clone --bare ../other
[🧪 test] switching can create the branch
✅ got: git -C . switch -c feature
[🧪 test] a commit keeps its message as one argument
✅ got: git -C . commit --all -m
[🧪 test] a commit can amend an empty tree
✅ got: commit --all --amend --allow-empty -m
[🧪 test] an annotated tag passes its message
✅ got: git -C . tag --annotate -m
[🧪 test] log has its usual default shape
✅ got: git -C . log --oneline --graph --decorate -n 20
[🧪 test] log passes explicit arguments through
✅ got: git -C . log --oneline --graph --decorate -5 --all
[🧪 test] the subcommand wrappers reach git
✅ got: (git -C . rebase --interactive HEAD~2)
[🧪 test] a remote is added with its own subcommand
✅ got: git -C . remote add origin url
[🧪 test] an archive names format, prefix and output
✅ got: git -C . archive --format=zip --prefix=p/ -o /tmp/p.zip v1.0
[🧪 test] an empty commit message is refused
✅ success catching error: %exception: (#<&maak-error message: "git-commit expects a commit message" hint: "Write (git-commit \"feat: add the report\").">)
[🧪 test] an empty archive name is refused
✅ success catching error: %exception: (#<&maak-error message: "git-archive expects the archive file to write" hint: "Write (git-archive \"project-1.0.tar.gz\" #:prefix \"project-1.0/\").">)
[🧪 test] an empty branch name is refusedmkdir: created directory '/tmp/maak-test-guix-6712'
removed '/tmp/maak-test-guix-6712/channels.scm'
removed directory '/tmp/maak-test-guix-6712'
mkdir: created directory '/tmp/maak-test-guix-6712'
removed '/tmp/maak-test-guix-6712/channels.scm'
removed directory '/tmp/maak-test-guix-6712'
mkdir: created directory '/tmp/maak-test-guix-6712'
removed '/tmp/maak-test-guix-6712/guix'
removed directory '/tmp/maak-test-guix-6712'
mkdir: created directory '/tmp/maak-test-guix-6712'
removed '/tmp/maak-test-guix-6712/guix'
removed directory '/tmp/maak-test-guix-6712'
mkdir: created directory '/tmp/maak-test-guix-6712'
removed '/tmp/maak-test-guix-6712/channels.scm'
removed directory '/tmp/maak-test-guix-6712'
✅ success catching error: %exception: (#<&maak-error message: "git-switch expects a branch name" hint: "Write (git-switch \"trunk\").">)
[🧪 test] an empty clone URL is refused
✅ success catching error: %exception: (#<&maak-error message: "git-clone expects the URL of the repository to clone" hint: "Write (git-clone \"https://example.org/project.git\").">)
+----------------------------------------------+
[📑 suite] Git repositories
[🧪 test] git-init creates a repository
✅ got: #t
[🧪 test] git-add stages an untracked file
✅ got: A a.txt
[🧪 test] git-commit records the tree, and the branch reads back
✅ got: trunk
[🧪 test] git-current-revision is a full hash
✅ got: 40
[🧪 test] git-dirty? notices a modified file
✅ got: #t
[🧪 test] git-dirty? is false after a commit
✅ got: #f
[🧪 test] git-tag and git-tags agree
✅ got: (v1)
[🧪 test] git-describe-tag finds the release tag
✅ got: v2
[🧪 test] a branch can be created and switched to
✅ got: feature
[🧪 test] a detached HEAD answers with its revision
✅ got: 40
[🧪 test] a remote can be added and read back
✅ got: https://example.org/p.git
[🧪 test] git-remotes lists what was added
✅ got: (origin)
[🧪 test] git-diff reports a modified file when failures are allowed
✅ got: #f
[🧪 test] a stash can be made and popped
✅ got: #t
[🧪 test] git-clean removes an untracked file
✅ got: #t
[🧪 test] git-output reads a value rather than printing it
✅ got: trunk
[🧪 test] a failed command raises unless failure is allowed
✅ got: #f
[🧪 test] git-archive-tar writes the tracked files
✅ got: p/a.txt
[🧪 test] git-archive-zip writes the tracked files
✅ got: p/a.txt
[🧪 test] git-clone copies a repository
✅ got: #t
ℹ️ info - ran 2 tasks in: 2 seconds, -305552 microseconds
running unit tests from file: guix.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Guix values
[🧪 test] guix-available? answers with a boolean
✅ got: #t
[🧪 test] a missing channels file is named in the error
✅ got: #t
[🧪 test] a package name cannot be empty
✅ got: #t
[🧪 test] a pinned revision has to be a commit
✅ got: #t
[🧪 test] guix-program refuses arguments that are not a list
✅ success catching error: %exception: (#<&maak-error message: "guix-program expects its arguments as a list of strings" hint: "Write (guix-program \"hello\" '(--version)).">)
[🧪 test] a query without Guix says how to get it
✅ got: #t
[🧪 test] guix-channels reads the pins of a channels file
✅ got: 40
[🧪 test] a query removes the file it ran
✅ got: #t
[🧪 test] a failed query keeps the file it ran, and names it
✅ got: #t
[🧪 test] a dry run prints the query instead of asking Guix
✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 308961 microseconds
running unit tests from file: integration.scm, entrypoint: spec
mkdir: created directory '/tmp/maak-test-files-6712'
removed '/tmp/maak-test-files-6712/a.txt'
removed directory '/tmp/maak-test-files-6712'
mkdir: created directory '/tmp/maak-test-parents-6712'
mkdir: created directory '/tmp/maak-test-parents-6712/deep'
mkdir: created directory '/tmp/maak-test-parents-6712/deep/nested'
removed '/tmp/maak-test-parents-6712/deep/nested/a.txt'
removed directory '/tmp/maak-test-parents-6712/deep/nested'
removed directory '/tmp/maak-test-parents-6712/deep'
removed directory '/tmp/maak-test-parents-6712'
mkdir: created directory '/tmp/maak-test-append-6712'
removed '/tmp/maak-test-append-6712/a.txt'
removed directory '/tmp/maak-test-append-6712'
mkdir: created directory '/tmp/maak-test-missing-6712'
mkdir: created directory '/tmp/maak-test-touch-6712'
removed '/tmp/maak-test-touch-6712/touched'
removed directory '/tmp/maak-test-touch-6712'
mkdir: created directory '/tmp/maak-test-spaces-6712'
mkdir: created directory '/tmp/maak-test-spaces-6712/a b'
removed directory '/tmp/maak-test-spaces-6712/a b'
removed directory '/tmp/maak-test-spaces-6712'
mkdir: created directory '/tmp/maak-test-touch-space-6712'
removed '/tmp/maak-test-touch-space-6712/a b.txt'
removed directory '/tmp/maak-test-touch-space-6712'
mkdir: created directory '/tmp/maak-test-cp-space-6712'
removed '/tmp/maak-test-cp-space-6712/a b.txt'
removed '/tmp/maak-test-cp-space-6712/c d.txt'
removed directory '/tmp/maak-test-cp-space-6712'
mkdir: created directory '/tmp/maak-test-mv-space-6712'
renamed '/tmp/maak-test-mv-space-6712/a b.txt' -> '/tmp/maak-test-mv-space-6712/c d.txt'
removed '/tmp/maak-test-mv-space-6712/c d.txt'
removed directory '/tmp/maak-test-mv-space-6712'
mkdir: created directory '/tmp/maak-test-ln-space-6712'
removed '/tmp/maak-test-ln-space-6712/a b.txt'
removed '/tmp/maak-test-ln-space-6712/c d.txt'
removed directory '/tmp/maak-test-ln-space-6712'
mkdir: created directory '/tmp/maak-test-chmod-space-6712'
removed '/tmp/maak-test-chmod-space-6712/a b.sh'
removed directory '/tmp/maak-test-chmod-space-6712'
mkdir: created directory '/tmp/maak-test-rm-space-6712'
mkdir: created directory '/tmp/maak-test-rm-space-6712/a b'
removed directory '/tmp/maak-test-rm-space-6712/a b'
removed directory '/tmp/maak-test-rm-space-6712'
mkdir: created directory '/tmp/maak-test-expand-rm-6712'
removed '/tmp/maak-test-expand-rm-6712/a b.txt'
removed '/tmp/maak-test-expand-rm-6712/c.txt'
removed '/tmp/maak-test-expand-rm-6712/keep.log'
removed directory '/tmp/maak-test-expand-rm-6712'
mkdir: created directory '/tmp/maak-test-expand-cp-6712'
mkdir: created directory '/tmp/maak-test-expand-cp-6712/dest'
removed '/tmp/maak-test-expand-cp-6712/a b.txt'
removed '/tmp/maak-test-expand-cp-6712/c.txt'
removed '/tmp/maak-test-expand-cp-6712/dest/a b.txt'
removed '/tmp/maak-test-expand-cp-6712/dest/c.txt'
removed directory '/tmp/maak-test-expand-cp-6712/dest'
removed directory '/tmp/maak-test-expand-cp-6712'
mkdir: created directory '/tmp/maak-test-expand-chmod-6712'
removed '/tmp/maak-test-expand-chmod-6712/a.txt'
removed '/tmp/maak-test-expand-chmod-6712/b.txt'
removed directory '/tmp/maak-test-expand-chmod-6712'
+----------------------------------------------+
[📑 suite] The launcher as a process
[🧪 test] this checkout's Maak file loads through the launcher beside it
✅ got: 0
[🧪 test] the listing names a task only this checkout's Maak file defines
✅ got: (0 #t)
[🧪 test] the help text is read from the resources the launcher ships beside itself
✅ got: (0 #t)
[🧪 test] the version banner is printed and the run succeeds
✅ got: (0 #t)
[🧪 test] the version is answered where there is no Maak file to read
✅ got: (0 #t #f)
[🧪 test] the help screen is answered where there is no Maak file to read
✅ got: (0 #t #f)
[🧪 test] a task of a named Maak file runs and reports its own output
✅ got: (0 #t #t)
[🧪 test] a failing task exits non-zero and leaves its message on standard error
✅ got: (1 #t #f)
[🧪 test] a task the Maak file does not define is refused, and the run says which exist
✅ got: (1 #t)
[🧪 test] -C enters the directory before the Maak file is looked for
✅ got: (0 #t)
[🧪 test] a failure stops the tasks after it
✅ got: (1 #f)
[🧪 test] --keep-going runs the rest and still exits non-zero
✅ got: (1 #t)
[🧪 test] -j runs the tasks named and prints their output in that order
✅ got: (0 #t #t #t)
[🧪 test] -j with a failing task exits non-zero and says which task failed
✅ got: (1 #t #t)
[🧪 test] -j 1 runs the tasks one after another and still succeeds
✅ got: (0 #t #t)
[🧪 test] a job count that is not a positive number is refused
✅ got: (1 #t)
[🧪 test] several tasks named one word each after a `--' all run
✅ got: (0 #t #t)
[🧪 test] a comma separated list names the same run
✅ got: (0 #t #t)
[🧪 test] the words after a task name are its arguments
✅ got: (0 #t)
[🧪 test] a `--' sets the arguments apart and reads exactly the same
✅ got: (0 #t)
[🧪 test] an argument that looks like an option stays an argument
✅ got: (0 #t)
[🧪 test] a second bare word is an argument, never a second task
✅ got: (0 #t #f)
[🧪 test] -t names the tasks, so the other words are their arguments
✅ got: (0 #t)
[🧪 test] --tasks names several tasks, the way the library reads them
✅ got: (0 #t #t)
[🧪 test] a word that names a task, passed as an argument, is pointed out
✅ got: (1 #t #t)
[🧪 test] a `--' ends the options, so a late one is read as a task
✅ got: (1 #t)
[🧪 test] a directory with no Maak file is refused rather than run
✅ got: (1 #t)
ℹ️ info - ran 1 tasks in: 2 seconds, -473848 microseconds
running unit tests from file: shell.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Shell quoting and lookup
[🧪 test] shell-quote wraps in single quotes
✅ got: 'a b'
✅ got: ''
[🧪 test] shell-quote escapes embedded single quotes
✅ got: 'it'\''s'
[🧪 test] which finds a program that exists
✅ got: #t
[🧪 test] which returns #f for a missing program
✅ got: #f
[🧪 test] command-exists? mirrors which
✅ got: #t
✅ got: #f
[🧪 test] require-command returns the path it found
✅ got: #t
[🧪 test] require-command raises for a missing program
✅ success catching error: %exception: (#<&maak-error message: "required command not found on PATH: definitely-not-a-real-command-maak-test" hint: "Install `definitely-not-a-real-command-maak-test', or add it to PATH.">)
+----------------------------------------------+
[📑 suite] File helpers
[🧪 test] write-file then read-file round-trips
✅ got: hello
[🧪 test] write-file creates parent directories
✅ got: deep
[🧪 test] write-file appends when asked
✅ got: onetwo
[🧪 test] read-file returns its default for a missing file
✅ got: fallback
[🧪 test] read-file of a missing file is #f without a default
✅ got: #f
[🧪 test] touch creates a file
✅ got: #t
[🧪 test] with-directory changes the directory
✅ got: #t
[🧪 test] with-directory restores the directory
✅ got: /etc/byggsteg/job-clone/maak/trunk
+----------------------------------------------+
[📑 suite] Capturing output
[🧪 test] capture returns the output of a successful command
✅ got: fine
[🧪 test] capture raises when the command fails
✅ success catching error: %exception: (#<&maak-error message: "command failed (exit code 3): exit 3" hint: "Fix the command above, or run `maak --dry-run' to inspect it first.">)
[🧪 test] capture keeps partial output only when allowed to fail
✅ got: partial
[🧪 test] capture includes standard error when asked
✅ got: oops
+----------------------------------------------+
[📑 suite] File helpers keep paths with spaces whole
[🧪 test] mkdir-p creates one directory, not a directory per word
✅ got: #t
[🧪 test] touch creates a file whose name has a space
✅ got: #t
[🧪 test] cp copies paths whose names have spaces
✅ got: #t
[🧪 test] mv moves paths whose names have spaces
✅ got: #t
[🧪 test] ln-s links a path whose name has a space
✅ got: #t
[🧪 test] chmod-file changes the mode of a path with a space
✅ got: 448
[🧪 test] delete-file-recursively removes a directory with a space
✅ got: #t
+----------------------------------------------+
[📑 suite] Shell expansion when asked for
[🧪 test] delete-file-recursively expands a wildcard when asked
✅ got: #t
[🧪 test] cp expands a wildcard when asked
✅ got: #t
[🧪 test] chmod-file expands a wildcard when asked
✅ got: (384 384)
+----------------------------------------------+
[📑 suite] Environment helpers
[🧪 test] home-dir and tmp-dir return strings
✅ got: #t
✅ got: #t
[🧪 test] env-set! then env-get round-trips
✅ got: value
[🧪 test] env-unset! removes the variable
✅ got: #f
[🧪 test] env-get falls back to its default
✅ got: default
[🧪 test] with-env sets and restores the variable
✅ got: inner
✅ got: #f
[🧪 test] with-env restores an existing value
✅ got: outer
[🧪 test] with-env-vars sets every pair
✅ got: (1 2)
+----------------------------------------------+
[📑 suite] Environment files
[🧪 test] the assignments are read in the order they are written
✅ got: ((CI . 1) (MAAK_SMOKE . hello) (MAAK_SMOKE_QUOTED . quoted value) (SINGLE . single quoted) (EMPTY . ) (DATABASE_URL . postgres://localhost/dev?sslmode=disable) (INDENTED . spaced))
[🧪 test] environment files skip lines without an =
✅ got: #f
[🧪 test] environment files skip comments
✅ got: #f
[🧪 test] a file that does not exist has no assignments
✅ got: ()
[🧪 test] loading sets the names and reports them
✅ got: (CI MAAK_SMOKE MAAK_SMOKE_QUOTED SINGLE EMPTY DATABASE_URL INDENTED)
✅ got: hello
✅ got: quoted value
[🧪 test] the environment keeps a name it already has
✅ got: from-the-environment
[🧪 test] overriding is possible when asked for
✅ got: hello
[🧪 test] loading a file that is not there changes nothing
✅ got: ()
ℹ️ info - ran 7 tasks in: 0 seconds, 388501 microseconds
running unit tests from file: docstrings.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Task docstring layout
[🧪 test] a single line stays inline
✅ got: (build: Compile the project.)
[🧪 test] two lines align the continuation
✅ got: (t: first second)
[🧪 test] one paragraph keeps every line aligned under the name
✅ got: (t: first second third fourth)
[🧪 test] a paragraph break starts a block under the name
✅ got: (t: first second third)
[🧪 test] a wrapped paragraph aligns with the widest name
✅ got: (collect-artefacts: Gather the build output. The result is a tarball.)
[🧪 test] an indented multi-line docstring keeps its alignment
✅ got: (t: first second)
[🧪 test] a block keeps its blank lines blank
✅ got: (t: a b c)
[🧪 test] a docstring with no documentation prints the name only
✅ got: (t:)
✅ got: (t:)
✅ got: (t:)
[🧪 test] source indentation is removed before laying out
✅ got: (t: first second)
[🧪 test] the margin follows the length of the name
✅ got: (longname: a b)
[🧪 test] blank lines inside a block are not padded
✅ got: (t: a b)
[🧪 test] the name is emphasised with ANSI escapes
✅ got: #t
ℹ️ info - ran 1 tasks in: 0 seconds, 21155 microseconds
running unit tests from file: errors.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Messages of caught errors
[🧪 test] an error message is reported as it stands
✅ got: boom
[🧪 test] an unbound variable is named
✅ got: Unbound variable: no-such-binding
[🧪 test] a primitive failure explains itself
✅ got: expecting pair
[🧪 test] a primitive failure is not named by the procedure
✅ got: #f
[🧪 test] a missing module is named the way Guile names it
✅ got: no code for module (no such module)
[🧪 test] the irritants of a user error are shown
✅ got: custom a b
[🧪 test] a template that cannot be filled is shown as it stands
✅ got: thrown ~S heremkdir: created directory '/tmp/maak-test-niri-niri-available-6712'
removed '/tmp/maak-test-niri-niri-available-6712/niri'
removed directory '/tmp/maak-test-niri-niri-available-6712'
mkdir: created directory '/tmp/maak-test-niri-niri-unavailable-6712'
removed directory '/tmp/maak-test-niri-niri-unavailable-6712'
+----------------------------------------------+
[📑 suite] Reporting to the user
[🧪 test] a maak error is labelled
✅ got: maak: error:
[🧪 test] a maak error prints its message
✅ got: Unknown task: nope
[🧪 test] a maak error prints its hint
✅ got: hint: Available tasks: build, test
[🧪 test] a maak error prints no backtrace
✅ got: #f
[🧪 test] a maak error without a hint prints its message
✅ got: nope
[🧪 test] a maak error without a hint prints no hint
✅ got: #f
[🧪 test] an unexpected error prints what went wrong
✅ got: boom
[🧪 test] an unexpected error points at the debug switch
✅ got: MAAK_DEBUG=1
[🧪 test] an unexpected error prints no backtrace
✅ got: #f
[🧪 test] a missing module names the module
✅ got: no code for module (no such module)
[🧪 test] a missing module points at the load path switch
✅ got: -L/--load-path
[🧪 test] a missing module names the load path variable
✅ got: MAAK_LOAD_PATH
[🧪 test] an unbound variable is named
✅ got: no-such-binding
[🧪 test] an unbound variable says where it is not bound
✅ got: is not bound here
[🧪 test] an unbound variable explains the import rule
✅ got: resolve-module
ℹ️ info - ran 2 tasks in: 0 seconds, 25878 microseconds
running unit tests from file: niri.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] niri argument lists
[🧪 test] the program and subcommand come first
✅ got: (niri msg outputs)
[🧪 test] JSON is a flag of msg, before the subcommand
✅ got: (niri msg --json windows)
[🧪 test] an action is its own subcommand
✅ got: (niri msg action close-window)
[🧪 test] an output names the output before the action
✅ got: (niri msg output DP-1 mode 1920x1080@60)
[🧪 test] the generic runner prints the command
✅ got: niri msg action close-window
[🧪 test] capture returns nothing in a dry run
✅ got:
+----------------------------------------------+
[📑 suite] niri queries
[🧪 test] every query reaches its subcommand
✅ got: (niri msg version niri msg outputs niri msg workspaces niri msg windows niri msg layers niri msg keyboard-layouts niri msg focused-output niri msg focused-window niri msg pick-window niri msg pick-color niri msg overview-state niri msg casts niri msg request-error)
[🧪 test] a query can ask for JSON
✅ got: niri msg --json workspaces
[🧪 test] niri-available? finds niri on PATH
✅ got: #t
[🧪 test] niri-available? is false when niri is not on PATH
✅ got: #f
+----------------------------------------------+
[📑 suite] niri actions
[🧪 test] the argument-free actions are plain subcommands
✅ got: (niri msg action close-window niri msg action fullscreen-window niri msg action toggle-windowed-fullscreen niri msg action toggle-overview niri msg action focus-workspace-previous niri msg action focus-window-previous niri msg action screenshot niri msg action screenshot-screen niri msg action screenshot-window niri msg action power-off-monitors niri msg action power-on-monitors niri msg action unset-workspace-name)
[🧪 test] a workspace can be focused by referencemkdir: created directory '/tmp/maak-test-processes-6712'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/out.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed directory '/tmp/maak-test-processes-6712'
✅ got: niri msg action focus-workspace 2
[🧪 test] a workspace name stays one argument
✅ got: niri msg action focus-workspace 'my space'
[🧪 test] a column and a window take their index
✅ got: (niri msg action focus-column 1 niri msg action focus-window 42)
[🧪 test] a monitor is named as it is
✅ got: niri msg action focus-monitor DP-1
[🧪 test] moving a window carries its id and focus decision
✅ got: niri msg action move-window-to-workspace --window-id 7 --focus false 3
[🧪 test] moving a column names the workspace
✅ got: niri msg action move-column-to-workspace 4
[🧪 test] windows and columns move to a monitor
✅ got: (niri msg action move-window-to-monitor HDMI-A-1 niri msg action move-column-to-monitor HDMI-A-1)
[🧪 test] width changes carry their optional id
✅ got: (niri msg action set-window-width --id 5 +10% niri msg action set-column-width 50%)
[🧪 test] a workspace can be named and unnamed
✅ got: niri msg action set-workspace-name web
[🧪 test] spawn separates niri's flags from the program
✅ got: niri msg action spawn -- foot -e htop
[🧪 test] spawn-sh keeps the line for the shell
✅ got: niri msg action spawn-sh -- 'echo hi'
[🧪 test] quit skips the confirmation by default
✅ got: niri msg action quit --skip-confirmation
[🧪 test] spawn refuses an empty program list
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
[🧪 test] spawn refuses arguments that are not strings
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
+----------------------------------------------+
[📑 suite] niri outputs
[🧪 test] turning an output on and off
✅ got: (niri msg output DP-1 on niri msg output DP-1 off)
[🧪 test] an output mode is passed through
✅ got: niri msg output DP-1 mode 1920x1080@60
[🧪 test] scale, transform and position reach the right actions
✅ got: (niri msg output DP-1 scale 1.5 niri msg output DP-1 transform 90 niri msg output DP-1 position 0 1080)
ℹ️ info - ran 4 tasks in: 0 seconds, 99770 microseconds
running unit tests from file: dsl.scm, entrypoint: spec
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/stage-env.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/pipeline-env.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/override.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/printed.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
ONE
TWO
removed '/tmp/maak-test-processes-6712/teed.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/teed.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/printed.txt'
removed '/tmp/maak-test-processes-6712/kept.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
✅ got: niri msg action focus-workspace 2
[🧪 test] a workspace name stays one argument
✅ got: niri msg action focus-workspace 'my space'
[🧪 test] a column and a window take their index
✅ got: (niri msg action focus-column 1 niri msg action focus-window 42)
[🧪 test] a monitor is named as it is
✅ got: niri msg action focus-monitor DP-1
[🧪 test] moving a window carries its id and focus decision
✅ got: niri msg action move-window-to-workspace --window-id 7 --focus false 3
[🧪 test] moving a column names the workspace
✅ got: niri msg action move-column-to-workspace 4
[🧪 test] windows and columns move to a monitor
✅ got: (niri msg action move-window-to-monitor HDMI-A-1 niri msg action move-column-to-monitor HDMI-A-1)
[🧪 test] width changes carry their optional id
✅ got: (niri msg action set-window-width --id 5 +10% niri msg action set-column-width 50%)
[🧪 test] a workspace can be named and unnamed
✅ got: niri msg action set-workspace-name web
[🧪 test] spawn separates niri's flags from the program
✅ got: niri msg action spawn -- foot -e htop
[🧪 test] spawn-sh keeps the line for the shell
✅ got: niri msg action spawn-sh -- 'echo hi'
[🧪 test] quit skips the confirmation by default
✅ got: niri msg action quit --skip-confirmation
[🧪 test] spawn refuses an empty program list
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
[🧪 test] spawn refuses arguments that are not strings
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
+----------------------------------------------+
[📑 suite] niri outputs
[🧪 test] turning an output on and off
✅ got: (niri msg output DP-1 on niri msg output DP-1 off)
[🧪 test] an output mode is passed through
✅ got: niri msg output DP-1 mode 1920x1080@60
[🧪 test] scale, transform and position reach the right actions
✅ got: (niri msg output DP-1 scale 1.5 niri msg output DP-1 transform 90 niri msg output DP-1 position 0 1080)
ℹ️ info - ran 4 tasks in: 0 seconds, 99770 microseconds
running unit tests from file: dsl.scm, entrypoint: spec
✅ got: niri msg action focus-workspace 2
[🧪 test] a workspace name stays one argument
✅ got: niri msg action focus-workspace 'my space'
[🧪 test] a column and a window take their index
✅ got: (niri msg action focus-column 1 niri msg action focus-window 42)
[🧪 test] a monitor is named as it is
✅ got: niri msg action focus-monitor DP-1
[🧪 test] moving a window carries its id and focus decision
✅ got: niri msg action move-window-to-workspace --window-id 7 --focus false 3
[🧪 test] moving a column names the workspace
✅ got: niri msg action move-column-to-workspace 4
[🧪 test] windows and columns move to a monitor
✅ got: (niri msg action move-window-to-monitor HDMI-A-1 niri msg action move-column-to-monitor HDMI-A-1)
[🧪 test] width changes carry their optional id
✅ got: (niri msg action set-window-width --id 5 +10% niri msg action set-column-width 50%)
[🧪 test] a workspace can be named and unnamed
✅ got: niri msg action set-workspace-name web
[🧪 test] spawn separates niri's flags from the program
✅ got: niri msg action spawn -- foot -e htop
[🧪 test] spawn-sh keeps the line for the shell
✅ got: niri msg action spawn-sh -- 'echo hi'
[🧪 test] quit skips the confirmation by default
✅ got: niri msg action quit --skip-confirmation
[🧪 test] spawn refuses an empty program list
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
[🧪 test] spawn refuses arguments that are not strings
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
+----------------------------------------------+
[📑 suite] niri outputs
[🧪 test] turning an output on and off
✅ got: (niri msg output DP-1 on niri msg output DP-1 off)
[🧪 test] an output mode is passed through
✅ got: niri msg output DP-1 mode 1920x1080@60
[🧪 test] scale, transform and position reach the right actions
✅ got: (niri msg output DP-1 scale 1.5 niri msg output DP-1 transform 90 niri msg output DP-1 position 0 1080)
ℹ️ info - ran 4 tasks in: 0 seconds, 99770 microseconds
running unit tests from file: dsl.scm, entrypoint: spec
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/keep.log'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/*.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712/sub'
removed '/tmp/maak-test-processes-6712/sub/a.txt'
removed directory '/tmp/maak-test-processes-6712/sub'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/keep.txt'
removed directory '/tmp/maak-test-processes-6712'
mkdir: created directory '/tmp/maak-test-processes-6712'
removed '/tmp/maak-test-processes-6712/a.txt'
removed '/tmp/maak-test-processes-6712/keep.log'
removed directory '/tmp/maak-test-processes-6712'
✅ got: niri msg action focus-workspace 2
[🧪 test] a workspace name stays one argument
✅ got: niri msg action focus-workspace 'my space'
[🧪 test] a column and a window take their index
✅ got: (niri msg action focus-column 1 niri msg action focus-window 42)
[🧪 test] a monitor is named as it is
✅ got: niri msg action focus-monitor DP-1
[🧪 test] moving a window carries its id and focus decision
✅ got: niri msg action move-window-to-workspace --window-id 7 --focus false 3
[🧪 test] moving a column names the workspace
✅ got: niri msg action move-column-to-workspace 4
[🧪 test] windows and columns move to a monitor
✅ got: (niri msg action move-window-to-monitor HDMI-A-1 niri msg action move-column-to-monitor HDMI-A-1)
[🧪 test] width changes carry their optional id
✅ got: (niri msg action set-window-width --id 5 +10% niri msg action set-column-width 50%)
[🧪 test] a workspace can be named and unnamed
✅ got: niri msg action set-workspace-name web
[🧪 test] spawn separates niri's flags from the program
✅ got: niri msg action spawn -- foot -e htop
[🧪 test] spawn-sh keeps the line for the shell
✅ got: niri msg action spawn-sh -- 'echo hi'
[🧪 test] quit skips the confirmation by default
✅ got: niri msg action quit --skip-confirmation
[🧪 test] spawn refuses an empty program list
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
[🧪 test] spawn refuses arguments that are not strings
✅ success catching error: %exception: (#<&maak-error message: "niri-spawn expects a non-empty list of strings, starting with the program" hint: "Write (niri-spawn (list \"foot\")).">)
+----------------------------------------------+
[📑 suite] niri outputs
[🧪 test] turning an output on and off
✅ got: (niri msg output DP-1 on niri msg output DP-1 off)
[🧪 test] an output mode is passed through
✅ got: niri msg output DP-1 mode 1920x1080@60
[🧪 test] scale, transform and position reach the right actions
✅ got: (niri msg output DP-1 scale 1.5 niri msg output DP-1 transform 90 niri msg output DP-1 position 0 1080)
ℹ️ info - ran 4 tasks in: 0 seconds, 99770 microseconds
running unit tests from file: dsl.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Pretty multiline strings
[🧪 test] dedent removes the common indentation
✅ got: hello
✅ got: a
b
[🧪 test] dedent drops surrounding blank lines
✅ got: a
b
[🧪 test] dedent keeps interior blank lines
✅ got: a
b
[🧪 test] dedent expands tabs
✅ got: a
b
[🧪 test] dedent of a single word is the word
✅ got: word
[🧪 test] indent adds spaces to every line
✅ got: a
b
[🧪 test] indent can leave the first line flush
✅ got: a
b
[🧪 test] the text macro joins and dedents its lines
✅ got: a
b
✅ got: x
y
[🧪 test] string-lines splits on newlines
✅ got: (a b)
[🧪 test] unlines joins with newlines
✅ got: a
b
[🧪 test] unwords joins with spaces
✅ got: a b
[🧪 test] blank-line? recognises whitespace
✅ got: #t
✅ got: #t
✅ got: #f
[🧪 test] leading-whitespace-count counts spaces and tabs
✅ got: 3
✅ got: 2
✅ got: 0
+----------------------------------------------+
[📑 suite] Load paths
[🧪 test] split-load-path splits on colons
✅ got: (a b)
[🧪 test] split-load-path drops empty entries
✅ got: (a b)
[🧪 test] split-load-path handles the empty cases
✅ got: ()
✅ got: ()
[🧪 test] with-load-path adds the directories
✅ got: #t
[🧪 test] with-load-path restores the load path
✅ got: #f
[🧪 test] with-load-path restores the load path after an error
✅ success catching error: misc-error: (#f deliberate failure () #f)
✅ got: #f
[🧪 test] add-load-path! records the directory
✅ got: /tmp/maak-test-add
✅ got: #t
✅ got: #t
[🧪 test] add-load-paths! adds every directory
✅ got: #t
✅ got: #t
+----------------------------------------------+
[📑 suite] Maak errors
[🧪 test] make-maak-error builds a typed error
✅ got: #t
✅ got: message
✅ got: hint
✅ got: #f
[🧪 test] raise-maak-error raises a catchable maak error
✅ got: boom
[🧪 test] raise-maak-error carries its hint
✅ got: try this
[🧪 test] find-maak-error returns #f for a foreign error
✅ got: #f
[🧪 test] raise-maak-error is catchable with assert-error
✅ success catching error: %exception: (#<&maak-error message: "nope" hint: #f>)
+----------------------------------------------+
[📑 suite] Programs, arguments and jobs
[🧪 test] run returns #t when the program exits with 0
✅ got: #t
[🧪 test] run keeps a space inside one argument
✅ got: #t
[🧪 test] run returns #f when a failure is allowed
✅ got: #f
[🧪 test] run raises when a command fails
✅ success catching error: %exception: (#<&maak-error message: "command failed (exit code 3): sh -c 'exit 3'" hint: "Fix the command above, or run `maak --dry-run' to inspect it first.">)
[🧪 test] run refuses an empty argument list
✅ success catching error: %exception: (#<&maak-error message: "run expects a non-empty list of strings, starting with the program" hint: "Write (run (list \"mkdir\" \"-p\" dir)) instead of one long command.">)
[🧪 test] run refuses an argument that is not a string
✅ success catching error: %exception: (#<&maak-error message: "run expects a non-empty list of strings, starting with the program" hint: "Write (run (list \"mkdir\" \"-p\" dir)) instead of one long command.">)
[🧪 test] a dry run does not start the program
✅ got: #f
[🧪 test] an async run returns a job with a pid
✅ got: #t
[🧪 test] wait-job is #t for a successful job
✅ got: #t
[🧪 test] wait-job is #f for a failing job
✅ got: #f
[🧪 test] job-exit-code reports the exit code
✅ got: 4
[🧪 test] a job can be waited on twice
✅ got: #t
[🧪 test] job-done? does not wait for a running job
✅ got: #f
[🧪 test] job-done? is true once the job has finished
✅ got: #t
[🧪 test] a background shell command is a job too
✅ got: #t
[🧪 test] job-command keeps the command as written
✅ got: sh -c 'exit 0'
+----------------------------------------------+
[📑 suite] Pipelines and shell expansion
[🧪 test] a pipeline feeds each stage into the next
✅ got: hello
[🧪 test] a failing stage fails the whole pipeline
✅ got: #f
[🧪 test] a pipeline raises when a stage fails
✅ success catching error: %exception: (#<&maak-error message: "pipeline failed: stage 1 (false) exited with code 1" hint: "Fix the failing stage above, or run `maak --dry-run' to inspect the pipeline first.">)
[🧪 test] a pipeline with no stages is refused
✅ success catching error: %exception: (#<&maak-error message: "run-pipeline expects a non-empty list of stages: argument lists or (stage ...) forms" hint: "Write (run-pipeline (list (list \"cat\" file) (stage (list \"grep\" pattern) #:env '(\"LC_ALL=C\")))).">)
[🧪 test] a pipeline with an empty stage is refused
✅ success catching error: %exception: (#<&maak-error message: "run-pipeline expects a non-empty list of stages: argument lists or (stage ...) forms" hint: "Write (run-pipeline (list (list \"cat\" file) (stage (list \"grep\" pattern) #:env '(\"LC_ALL=C\")))).">)
[🧪 test] a dry run does not start the pipeline
✅ got: #f
[🧪 test] a stage whose program is missing fails the pipeline
✅ got: #f
[🧪 test] a stage takes environment variables of its own
✅ got: stage
[🧪 test] a pipeline gives its environment to every stage
✅ got: shared
[🧪 test] a stage's environment wins over the pipeline's
✅ got: stage
[🧪 test] a dry run shows a stage's environment and sudo
✅ got: #t
[🧪 test] a captured pipeline returns what every stage wrote
✅ got: (one
two
ONE
TWO
)
[🧪 test] a capture of more than a pipeful loses nothing
✅ got: 20000
[🧪 test] a captured pipeline prints nothing itself
✅ got:
[🧪 test] a capture leaves no temporary file behind
✅ got: #f
[🧪 test] a captured pipeline reports the stages that failed
✅ got: #f
[🧪 test] a stage's tee file keeps what the stage wrote
✅ got: one
two
[🧪 test] the stage after a tee reads the same bytes
✅ got: one
[🧪 test] a tee on the last stage prints what it keeps
✅ got: hello
[🧪 test] a tee that cannot be written is refused before the pipeline
✅ success catching error: %exception: (#<&maak-error message: "stage 1 (printf 'x\n') cannot record its output to /tmp/maak-test-processes-6712/missing/log.txt: No such file or directory: \"/tmp/maak-test-processes-6712/missing/log.txt\"" hint: "Point #:tee at a file the task may write, or drop it and read the pipeline's output another way.">)
[🧪 test] a stage refuses a tee that is not a file name
✅ success catching error: %exception: (#<&maak-error message: "stage expects #:tee to name a file, got 42" hint: "Write (stage (list \"grep\" pattern) #:tee \"clean.txt\").">)
[🧪 test] a background pipeline cannot capture its outputmkdir: created directory '/tmp/maak-test-archive-dry-run-6712-1'
removed directory '/tmp/maak-test-archive-dry-run-6712-1'
mkdir: created directory '/tmp/maak-test-archive-tar-create-6712-2'
mkdir: created directory '/tmp/maak-test-archive-tar-create-6712-2/tree'
removed '/tmp/maak-test-archive-tar-create-6712-2/tree/a.txt'
removed '/tmp/maak-test-archive-tar-create-6712-2/tree/b.txt'
removed directory '/tmp/maak-test-archive-tar-create-6712-2/tree'
removed '/tmp/maak-test-archive-tar-create-6712-2/p.tar.gz'
removed directory '/tmp/maak-test-archive-tar-create-6712-2'
mkdir: created directory '/tmp/maak-test-archive-tar-exclude-6712-3'
mkdir: created directory '/tmp/maak-test-archive-tar-exclude-6712-3/tree'
removed '/tmp/maak-test-archive-tar-exclude-6712-3/tree/a.txt'
removed '/tmp/maak-test-archive-tar-exclude-6712-3/tree/b.log'
removed directory '/tmp/maak-test-archive-tar-exclude-6712-3/tree'
removed '/tmp/maak-test-archive-tar-exclude-6712-3/p.tar.gz'
removed directory '/tmp/maak-test-archive-tar-exclude-6712-3'
mkdir: created directory '/tmp/maak-test-archive-tar-tree-6712-4'
mkdir: created directory '/tmp/maak-test-archive-tar-tree-6712-4/tree'
removed '/tmp/maak-test-archive-tar-tree-6712-4/tree/a.txt'
removed directory '/tmp/maak-test-archive-tar-tree-6712-4/tree'
removed '/tmp/maak-test-archive-tar-tree-6712-4/p.tar.gz'
removed directory '/tmp/maak-test-archive-tar-tree-6712-4'
mkdir: created directory '/tmp/maak-test-archive-tar-outside-6712-5'
mkdir: created directory '/tmp/maak-test-archive-tar-outside-6712-5/tree'
removed '/tmp/maak-test-archive-tar-outside-6712-5/tree/a.txt'
removed directory '/tmp/maak-test-archive-tar-outside-6712-5/tree'
removed '/tmp/maak-test-archive-tar-outside-6712-5/p.tar.gz'
removed directory '/tmp/maak-test-archive-tar-outside-6712-5'
mkdir: created directory '/tmp/maak-test-archive-tar-extract-6712-6'
mkdir: created directory '/tmp/maak-test-archive-tar-extract-6712-6/tree'
mkdir: created directory '/tmp/maak-test-archive-tar-extract-6712-6/out'
removed '/tmp/maak-test-archive-tar-extract-6712-6/tree/a.txt'
removed directory '/tmp/maak-test-archive-tar-extract-6712-6/tree'
removed '/tmp/maak-test-archive-tar-extract-6712-6/p.tar.gz'
removed '/tmp/maak-test-archive-tar-extract-6712-6/out/a.txt'
removed directory '/tmp/maak-test-archive-tar-extract-6712-6/out'
removed directory '/tmp/maak-test-archive-tar-extract-6712-6'
mkdir: created directory '/tmp/maak-test-archive-tar-strip-6712-7'
mkdir: created directory '/tmp/maak-test-archive-tar-strip-6712-7/tree'
mkdir: created directory '/tmp/maak-test-archive-tar-strip-6712-7/tree/p'
mkdir: created directory '/tmp/maak-test-archive-tar-strip-6712-7/out'
removed '/tmp/maak-test-archive-tar-strip-6712-7/tree/p/a.txt'
removed directory '/tmp/maak-test-archive-tar-strip-6712-7/tree/p'
removed directory '/tmp/maak-test-archive-tar-strip-6712-7/tree'
removed '/tmp/maak-test-archive-tar-strip-6712-7/p.tar.gz'
removed '/tmp/maak-test-archive-tar-strip-6712-7/out/a.txt'
removed directory '/tmp/maak-test-archive-tar-strip-6712-7/out'
removed directory '/tmp/maak-test-archive-tar-strip-6712-7'
mkdir: created directory '/tmp/maak-test-archive-tar-xz-6712-8'
mkdir: created directory '/tmp/maak-test-archive-tar-xz-6712-8/tree'
removed '/tmp/maak-test-archive-tar-xz-6712-8/tree/a.txt'
removed directory '/tmp/maak-test-archive-tar-xz-6712-8/tree'
removed '/tmp/maak-test-archive-tar-xz-6712-8/p.tar.xz'
removed directory '/tmp/maak-test-archive-tar-xz-6712-8'
mkdir: created directory '/tmp/maak-test-archive-tar-list-6712-9'
mkdir: created directory '/tmp/maak-test-archive-tar-list-6712-9/tree'
a.txt
removed '/tmp/maak-test-archive-tar-list-6712-9/tree/a.txt'
removed directory '/tmp/maak-test-archive-tar-list-6712-9/tree'
removed '/tmp/maak-test-archive-tar-list-6712-9/p.tar.gz'
removed directory '/tmp/maak-test-archive-tar-list-6712-9'
mkdir: created directory '/tmp/maak-test-archive-tar-cwd-6712-10'
mkdir: created directory '/tmp/maak-test-archive-tar-cwd-6712-10/tree'
adding: a.txt (stored 0%)
removed '/tmp/maak-test-archive-tar-cwd-6712-10/tree/a.txt'
removed directory '/tmp/maak-test-archive-tar-cwd-6712-10/tree'
removed '/tmp/maak-test-archive-tar-cwd-6712-10/p.tar.gz'
removed '/tmp/maak-test-archive-tar-cwd-6712-10/p.zip'
removed directory '/tmp/maak-test-archive-tar-cwd-6712-10'
mkdir: created directory '/tmp/maak-test-archive-zip-create-6712-11'
mkdir: created directory '/tmp/maak-test-archive-zip-create-6712-11/tree'
adding: a.txt (stored 0%)
removed '/tmp/maak-test-archive-zip-create-6712-11/tree/a.txt'
removed directory '/tmp/maak-test-archive-zip-create-6712-11/tree'
removed '/tmp/maak-test-archive-zip-create-6712-11/p.zip'
removed directory '/tmp/maak-test-archive-zip-create-6712-11'
mkdir: created directory '/tmp/maak-test-archive-zip-extract-6712-12'
mkdir: created directory '/tmp/maak-test-archive-zip-extract-6712-12/tree'
adding: a.txt (stored 0%)
mkdir: created directory '/tmp/maak-test-archive-zip-extract-6712-12/out'
Archive: /tmp/maak-test-archive-zip-extract-6712-12/p.zip
extracting: /tmp/maak-test-archive-zip-extract-6712-12/out/a.txt
removed '/tmp/maak-test-archive-zip-extract-6712-12/tree/a.txt'
removed directory '/tmp/maak-test-archive-zip-extract-6712-12/tree'
removed '/tmp/maak-test-archive-zip-extract-6712-12/p.zip'
removed '/tmp/maak-test-archive-zip-extract-6712-12/out/a.txt'
removed directory '/tmp/maak-test-archive-zip-extract-6712-12/out'
removed directory '/tmp/maak-test-archive-zip-extract-6712-12'
mkdir: created directory '/tmp/maak-test-archive-zip-exclude-6712-13'
mkdir: created directory '/tmp/maak-test-archive-zip-exclude-6712-13/tree'
adding: a.txt (stored 0%)
removed '/tmp/maak-test-archive-zip-exclude-6712-13/tree/a.txt'
removed '/tmp/maak-test-archive-zip-exclude-6712-13/tree/b.log'
removed directory '/tmp/maak-test-archive-zip-exclude-6712-13/tree'
removed '/tmp/maak-test-archive-zip-exclude-6712-13/p.zip'
removed directory '/tmp/maak-test-archive-zip-exclude-6712-13'
mkdir: created directory '/tmp/maak-test-archive-zip-recursive-6712-14'
mkdir: created directory '/tmp/maak-test-archive-zip-recursive-6712-14/tree'
mkdir: created directory '/tmp/maak-test-archive-zip-recursive-6712-14/tree/src'
adding: src/ (stored 0%)
adding: src/a.txt (stored 0%)
removed '/tmp/maak-test-archive-zip-recursive-6712-14/tree/src/a.txt'
removed directory '/tmp/maak-test-archive-zip-recursive-6712-14/tree/src'
removed directory '/tmp/maak-test-archive-zip-recursive-6712-14/tree'
removed '/tmp/maak-test-archive-zip-recursive-6712-14/p.zip'
removed directory '/tmp/maak-test-archive-zip-recursive-6712-14'
mkdir: created directory '/tmp/maak-test-archive-zip-list-6712-15'
mkdir: created directory '/tmp/maak-test-archive-zip-list-6712-15/tree'
adding: a.txt (stored 0%)
Archive: /tmp/maak-test-archive-zip-list-6712-15/p.zip
Length Date Time Name
--------- ---------- ----- ----
3 11-10-2026 20:43 a.txt
--------- -------
3 1 file
removed '/tmp/maak-test-archive-zip-list-6712-15/tree/a.txt'
removed directory '/tmp/maak-test-archive-zip-list-6712-15/tree'
removed '/tmp/maak-test-archive-zip-list-6712-15/p.zip'
removed directory '/tmp/maak-test-archive-zip-list-6712-15'
✅ success catching error: %exception: (#<&maak-error message: "a background pipeline cannot capture its output" hint: "Wait for the job and capture a foreground pipeline, or give the stage a file with (stage argv #:tee file).">)
[🧪 test] a dry run shows the tee a stage writes to
✅ got: #t
[🧪 test] a dry run of a captured pipeline returns an empty result
[DRY-RUN]: printf 'x
'
✅ got: ()
[🧪 test] a stage refuses an empty argument list
✅ success catching error: %exception: (#<&maak-error message: "stage expects a non-empty list of strings, starting with the program" hint: "Write (stage (list \"grep\" pattern) #:env '(\"LC_ALL=C\")).">)
[🧪 test] a pipeline refuses a stage that is not an argument list
✅ success catching error: %exception: (#<&maak-error message: "run-pipeline expects a non-empty list of stages: argument lists or (stage ...) forms" hint: "Write (run-pipeline (list (list \"cat\" file) (stage (list \"grep\" pattern) #:env '(\"LC_ALL=C\")))).">)
[🧪 test] an async pipeline returns a job
✅ got: #t
[🧪 test] a failing async pipeline fails its job
✅ got: #f
[🧪 test] run expands a wildcard when asked to
✅ got: #t
[🧪 test] run takes a wildcard literally without the opt-in
✅ got: #t
+----------------------------------------------+
[📑 suite] File helpers
[🧪 test] rm-rf removes a directory and its contents
✅ got: #t
[🧪 test] rm-rf is a dry run under dry-run?
✅ got: #t
[🧪 test] rm-rf expands a wildcard when asked to
✅ got: #t
ℹ️ info - ran 6 tasks in: 1 seconds, 188294 microseconds
running unit tests from file: archive.scm, entrypoint: spec
+----------------------------------------------+
[📑 suite] Archive argument lists
[🧪 test] a .tar.gz name selects gzip
✅ got: (tar -c -z -f p.tar.gz src)
[🧪 test] a .tar.xz name selects xz
✅ got: (tar -c -J -f p.tar.xz src)
[🧪 test] a .tar name selects no compression
✅ got: (tar -c -f p.tar src)
[🧪 test] a .tar.zst name selects zstd
✅ got: (tar -c --zstd -f p.tar.zst src)
[🧪 test] the short extension names select their compressor
✅ got: ((tar -c -z -f p.tgz src) (tar -c -j -f p.tbz2 src) (tar -c -J -f p.txz src) (tar -c --zstd -f p.tzst src))
[🧪 test] a compression symbol is accepted too
✅ got: (-z)
[🧪 test] an explicit compression wins over the extension
✅ got: (tar -c -j -f p.tar.gz src)
[🧪 test] gzip is accepted by name and by alias
✅ got: (-z)
[🧪 test] bzip2 is accepted by name and by alias
✅ got: (-j)
[🧪 test] xz has a single spelling
✅ got: (-J)
[🧪 test] zstd is accepted by name and by alias
✅ got: (--zstd)
[🧪 test] no compression is the empty flag list
✅ got: ()
[🧪 test] an unknown compression is refused
✅ success catching error: %exception: (#<&maak-error message: "unknown tar compression: rar" hint: "Use one of: none, gz, bz2, xz, zstd.">)
[🧪 test] tar options precede the files
✅ got: (tar -c -z -v -f p.tar.gz -C src --exclude=*.o .)
[🧪 test] tar extraction names the tree and the strip count
✅ got: (tar -x -f p.tar.gz -C out --strip-components=1)
[🧪 test] tar extraction is verbose when asked
✅ got: (tar -x -v -f p.tar.gz)
[🧪 test] tar extraction refuses a negative strip count
✅ success catching error: %exception: (#<&maak-error message: "tar-extract expects #:strip-components to be a non-negative integer, got -1" hint: "Use 0 to keep the archive's paths, or 1 to drop its top-level directory.">)
[🧪 test] tar listing is a separate argv
✅ got: (tar -t -f p.tar.gz)
[🧪 test] zip passes exclude patterns after the files
✅ got: (zip -r p.zip src -x *.o *.go)
[🧪 test] zip can store bare names and be quiet
✅ got: (zip -q -r -j p.zip a.txt)
[🧪 test] zip extraction defaults to overwriting
✅ got: (unzip -o p.zip -d out)
[🧪 test] zip extraction can keep existing files
✅ got: (unzip -n p.zip)
[🧪 test] zip listing is its own argv
✅ got: (unzip -l p.zip)
[🧪 test] an empty tar name is refused
✅ success catching error: %exception: (#<&maak-error message: "tar-create expects the archive file to write" hint: "Write (tar-create \"project-1.0.tar.gz\" (list \"src\" \"README.org\")).">)
[🧪 test] an empty zip name is refused
✅ success catching error: %exception: (#<&maak-error message: "zip-create expects the archive file to write" hint: "Write (zip-create \"project-1.0.zip\" (list \"src\" \"README.org\")).">)
[🧪 test] an empty file list is refused by tar
✅ success catching error: %exception: (#<&maak-error message: "tar-create expects at least one file to put in the archive" hint: "Name the paths to pack, as in (list \"src\" \"README.org\").">)
[🧪 test] an empty file list is refused by zip
✅ success catching error: %exception: (#<&maak-error message: "zip-create expects at least one file to put in the archive" hint: "Name the paths to pack, as in (list \"src\" \"README.org\").">)
[🧪 test] a dry run prints the command it would run
✅ got: tar -c -z -f /tmp/maak-test-archive-dry-run-6712-1/p.tar.gz src
+----------------------------------------------+
[📑 suite] Real tar archives
[🧪 test] a created tarball lists its files
✅ got: (#t #t)
[🧪 test] an excluded file is not in the tarball
✅ got: (#t #f)
[🧪 test] packing a tree does not fail on the tarball being written
✅ got: #t
[🧪 test] the tarball lands in the task directory, not the packed tree
✅ got: (#t #f)
[🧪 test] a tarball can be extracted
✅ got: hello
[🧪 test] a strip count removes the top-level directory
✅ got: deep
[🧪 test] an xz tarball round-trips
✅ got: #t
[🧪 test] tar-list succeeds on a real archive
✅ got: #t
[🧪 test] packing a tree leaves the working directory where it was
✅ got: /etc/byggsteg/job-clone/maak/trunk
+----------------------------------------------+
[📑 suite] Real zip archives
[🧪 test] a created zip lists its files
✅ got: #t
[🧪 test] a zip can be extracted
✅ got: hello
[🧪 test] an excluded file is not in the zip
✅ got: (#t #f)
[🧪 test] a directory tree is added recursively
✅ got: #t
[🧪 test] zip-list succeeds on a real archive
✅ got: #t
ℹ️ info - ran 3 tasks in: 1 seconds, -324619 microseconds
finished running tests
--------------------------------------------------------------
Maak 0.14.0: the infinitely extensible command runner
Loading tasks from Maak file: /etc/byggsteg/job-clone/maak/trunk/maak.scm
Executing Maak tasks: test
--------------------------------------------------------------
=> Running Maak task: test
Run the project's unit test suite with Veritas.
The specs live under test/veritas/unit and are located by the Veritas runner,
which needs both the library sources and the test tree on the load path.
Executing: env VERITAS_TEST_MODULE=veritas VERITAS_TEST_TOP_DIR=test VERITAS_TEST_TYPE=unit VERITAS_RUN_BENCHMARKS=false guix shell -m manifest.scm -- guile -L ./src -L ./test -c '(exit ((@ (veritas runner) run-tests)))'