veritas-2ef1913d-cc31

job succeeded

starting new job...
rundir='/etc/byggsteg/job-clone//veritas/trunk succeeded43 lines · 0.4s
branch='trunk'
if ! command -v git >/dev/null 2>&1; then
  echo 'byggsteg: git is not on this deployment PATH, so the clone cannot be updated' >&2
  exit 1
fi
if ! cd "$dir"; then
  echo "byggsteg: cannot enter the clone $dir" >&2
  exit 1
fi
root=$(git rev-parse --show-toplevel 2>/dev/null)
if [ "$root" != "$(pwd -P)" ]; then
  echo "byggsteg: $dir is not a git checkout; remove it and the next run clones it again" >&2
  exit 1
fi
if ! origin=$(git remote get-url origin 2>/dev/null); then
  echo "byggsteg: $dir has no origin remote to fetch $branch from" >&2
  exit 1
fi
before=$(git rev-parse --short HEAD 2>/dev/null) || before=none
attempt=1
while :; do
  if GIT_TERMINAL_PROMPT=0 git fetch --quiet origin "+refs/heads/$branch:refs/remotes/origin/$branch"; then
    break
  fi
  if [ "$attempt" -ge 3 ]; then
    echo "byggsteg: could not fetch $branch from $origin after 3 attempts; is the branch still there, and is the remote reachable?" >&2
    exit 1
  fi
  echo "byggsteg: fetching $branch from $origin failed; retrying in $((attempt * 2))s" >&2
  sleep $((attempt * 2))
  attempt=$((attempt + 1))
done
if ! git checkout --quiet --force -B "$branch" FETCH_HEAD; then
  echo "byggsteg: fetched $branch from $origin but could not check it out" >&2
  exit 1
fi
after=$(git rev-parse --short HEAD)
if [ "$before" = "$after" ]; then
  echo "byggsteg: $branch was already at $after"
else
  echo "byggsteg: $branch moved from $before to $after"
fi


byggsteg: trunk was already at 49f4311
setupuname -a succeeded1 lines · 0.0s
Linux wolk-jjba 7.2.11-gnu #1 SMP PREEMPT_DYNAMIC 1 x86_64 GNU/Linux
setupgit log --name-status HEAD^..HEAD succeeded28 lines · 0.0s
commit 49f43113632fa80188b3897b3f3d755d8dbf6879
Author: Josep Bigorra <jjbigorra@gmail.com>
Date:   Tue Nov 10 20:56:03 2026 +0100

    chore: Release v1.4.3
    
    The repository carries .github/FUNDING.yml with a custom funding URL that
    points at Buy Me a Coffee (buymeacoffee.com/jjbigorra), so GitHub shows a
    Sponsor button on it.  The version copies follow: default.nix, the manual
    page, the Arch, Debian and openSUSE recipes, and the CLI's own version
    string.
    
    maak test-fast is green (33 files, 85 suites, 305 tests, 549 assertions).
    maak test, which also measures coverage, fails one assertion in
    coverage.scm locally ("collecting coverage leaves the VM engine as it
    found it": log level regular instead of debug); CI runs the suite without
    VERITAS_COVERAGE and was green on the previous commit, so the release
    rests on test-fast.
    
    🤖 Generated with ECA (deepseek/deepseek-flash)
    
    Co-Authored-By: eca-agent <git@eca.dev>

M       NEWS.org
M       default.nix
M       man/veritas.1
M       packaging/arch/PKGBUILD
M       packaging/debian/changelog
M       packaging/opensuse/veritas.spec
M       src/veritas/cli.scm
testmaak test succeeded1859 lines · 4m 17s
removed 'reports/lcov/veritas.info'
removed 'reports/lcov/coverage-summary.json'
removed 'reports/lcov/cobertura.xml'
removed 'reports/lcov/jacoco.xml'
removed directory 'reports/lcov'


--------------------------------------------------------------

Maak 0.14.0: the infinitely extensible command runner

Loading tasks from Maak file: /etc/byggsteg/job-clone/veritas/trunk/maak.scm

Executing Maak tasks: test


--------------------------------------------------------------

=> Running Maak task: test

  Run the test suite with coverage of the sources.

Executing: rm -rfv reports/lcov
removed 'reports/html/index.html'
removed directory 'reports/html'

scanning directories for unit tests...
scanning present working directory for unit tests...

shuffled the files with seed 172801034 (replay with VERITAS_SEED=172801034)

found unit tests: (generator/bounds.scm matchers.scm assertions.scm simple.scm coverage.scm mock.scm nesting.scm batteries.scm numeric/a/num.scm diff.scm references.scm rerun.scm flexible-bodies.scm retries.scm container.scm lists.scm cli.scm property.scm introduction.scm partition.scm impact.scm determinism.scm jobs.scm traces.scm table.scm counts.scm generator/simple.scm snapshot.scm bdd.scm timeout.scm shuffle.scm generator/more.scm structural-match.scm)


running unit tests from file: generator/bounds.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 11.0% of 3418 lines (377 covered) in 13 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] collection generators
  [🧪 test] generate-symbol respects min and max length
    ✅ got: #t
  [🧪 test] generate-string yields printable strings
    ✅ got: #t
  [🧪 test] generate-list respects min and max length
    ✅ got: #t
  [🧪 test] generate-string respects min and max length
    ✅ got: #t
+----------------------------------------------+
[📑 suite] integer generators
  [🧪 test] the same seed yields the same value
    ✅ got: 2
  [🧪 test] generate-integer respects its bound
    ✅ got: #t
  [🧪 test] generate-integer default bound is respected
    ✅ got: #t
+----------------------------------------------+
[📑 suite] character generators
  [🧪 test] generate-char yields printable ASCII
    ✅ got: #t
ℹ️ info - ran 3 tasks in: 2 seconds, 257003 microseconds
ℹ️ info - counted 1 file, 3 suites, 8 tests and 8 assertions

running unit tests from file: matchers.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 15.2% of 3418 lines (520 covered) in 13 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] matcher edge cases and failures
  [🧪 test] not-matches
    [pass] got: hello
    [fail] error, expect: #<regexp 7eff72cac0c0>, got: hello
    ✅ got: #t
    ✅ got: #f
  [🧪 test] not-contains
    [pass] got: 9
    [fail] error, expect: (1 2), got: 2
    ✅ got: #t
    ✅ got: #f
  [🧪 test] vector containment
    [pass] got: 2
    [fail] error, expect: #(1 2 3), got: 9
    ✅ got: #t
    ✅ got: #f
  [🧪 test] matches accepts a compiled regexp
    [pass] got: hello
    [fail] error, expect: #<regexp 7eff740fb900>, got: hello
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-raises failure paths
    [fail] did not raise an expected error
    [fail] did not raise an expected error
    [pass] raised an error as expected
    ✅ got: #f
    ✅ got: #f
    ✅ got: #t
  [🧪 test] length on vectors and strings
    [pass] got: #(1 2 3)
    [pass] got: hello
    [fail] error, expect: 4, got: hello
    ✅ got: #t
    ✅ got: #t
    ✅ got: #f
  [🧪 test] length and emptiness of unsized values
    [fail] error, expect: 1, got: 42
    [fail] error, expect: #t, got: 42
    [fail] error, expect: #t, got: ()
    [pass] got: #(1)
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
    ✅ got: #t
  [🧪 test] in-range boundaries are inclusive
    [pass] got: 1
    [pass] got: 10
    [fail] error, expect: (1 . 10), got: 11
    ✅ got: #t
    ✅ got: #t
    ✅ got: #f
  [🧪 test] one-of
    [pass] got: green
    [fail] error, expect: (red green), got: blue
    ✅ got: #t
    ✅ got: #f
  [🧪 test] hash tables are containers too
    [pass] got: a
    [fail] error, expect: #<hash-table 7eff73fcb420 1/31>, got: b
    ✅ got: #t
    ✅ got: #f
+----------------------------------------------+
[📑 suite] passing matchers
  [🧪 test] raising errors
    ✅ raised an error as expected
    ✅ raised an error as expected
    ✅ raised an error as expected
  [🧪 test] regular expressions
    ✅ got: hello
    ✅ got: abc
    ✅ got: hello
  [🧪 test] containment
    ✅ got: b
    ✅ got: world
    ✅ got: 2
    ✅ got: z
    ✅ got: z
  [🧪 test] emptiness and length
    ✅ got: ()
    ✅ got: 
    ✅ got: #()
    ✅ got: (1)
    ✅ got: a
    ✅ got: (1 2 3)
    ✅ got: hello
  [🧪 test] ranges and membership
    ✅ got: 5
    ✅ got: 0
    ✅ got: green
+----------------------------------------------+
[📑 suite] matcher result wiring
  [🧪 test] failing matchers are reported as failures
    [pass] got: 2
    [fail] error, expect: (1), got: 2
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-raises fails when nothing is raised
    [fail] did not raise an expected error
    ✅ got: #f
ℹ️ info - ran 3 tasks in: 5 seconds, -139515 microseconds
ℹ️ info - counted 1 file, 3 suites, 17 tests and 49 assertions

running unit tests from file: assertions.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 18.4% of 3418 lines (628 covered) in 13 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] boolean assertions
  [🧪 test] assert-false
    [pass] got: #f
    [fail] error, expect: #f, got: #t
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-true
    [pass] got: #t
    [fail] error, expect: #t, got: #f
    ✅ got: #t
    ✅ got: #f
+----------------------------------------------+
[📑 suite] equality, identity and value assertions
  [🧪 test] assert-not-eqv
    [pass] got: 2
    [fail] error, expect: 1, got: 1
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-eq
    [pass] got: foo
    [fail] error, expect: (1), got: (1)
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-not-eq
    [pass] got: (1)
    [fail] error, expect: x, got: x
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-not-equal
    [pass] got: (1 3)
    [fail] error, expect: (1 2), got: (1 2)
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-equal
    [pass] got: 1
    [fail] error, expect: 1, got: 2
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-eqv
    [pass] got: 42
    [fail] error, expect: 1, got: 2
    ✅ got: #t
    ✅ got: #f
+----------------------------------------------+
[📑 suite] approximate assertions
  [🧪 test] assert-approximate
    [pass] got: 3.141
    [fail] error, expect: 3.14, got: 3.5
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-not-approximate
    [pass] got: 3.5
    [fail] error, expect: 3.14, got: 3.141
    ✅ got: #t
    ✅ got: #f
  [🧪 test] is-approximate?
    ✅ got: #t
    ✅ got: #f
+----------------------------------------------+
[📑 suite] error assertions
  [🧪 test] assert-no-error
    [pass] success running without errors
    [fail] caught error: numerical-overflow: (divide Numerical overflow #f #f)
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-raises accepts any error by default
    [pass] raised an error as expected
    [fail] did not raise an expected error
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-raises honours a predicate
    [pass] raised an error as expected
    [fail] did not raise an expected error
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-raises honours an expected error key
    [pass] raised an error as expected
    [fail] did not raise an expected error
    ✅ got: #t
    ✅ got: #f
  [🧪 test] assert-error
    [pass] success catching error: numerical-overflow: (divide Numerical overflow #f #f)
    [fail] did not catch any error
    ✅ got: #t
    ✅ got: #f
+----------------------------------------------+
[📑 suite] delayed evaluation of got
  [🧪 test] lazy values are evaluated when the assertion runs
    [pass] got: 144
    [pass] got: 6
    [pass] got: 1
    [pass] got: 2
    [pass] got: 2
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
+----------------------------------------------+
[📑 suite] latin aliases
  [🧪 test] boolean aliases
    [pass] got: #t
    [fail] error, expect: #t, got: #f
    [pass] got: #f
    [fail] error, expect: #f, got: #t
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
  [🧪 test] proba is the core assert combinator
    [pass] got: 3
    [fail] error, expect: 3, got: 4
    ✅ got: #t
    ✅ got: #f
  [🧪 test] error aliases
    [pass] success catching error: numerical-overflow: (divide Numerical overflow #f #f)
    [fail] did not catch any error
    [pass] success running without errors
    [fail] caught error: numerical-overflow: (divide Numerical overflow #f #f)
    [pass] raised an error as expected
    [fail] did not raise an expected error
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
  [🧪 test] equality aliases
    [pass] got: (1 2)
    [fail] error, expect: (1 2), got: (1 3)
  lists differ at index 1 (expected 2, got 3); lengths 2 and 2
    [pass] got: foo
    [fail] error, expect: (1), got: (1)
    [pass] got: 42
    [fail] error, expect: 1, got: 2
    [pass] got: (1 3)
    [fail] error, expect: (1 2), got: (1 2)
    [pass] got: (1)
    [fail] error, expect: x, got: x
    [pass] got: 2
    [fail] error, expect: 1, got: 1
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
  [🧪 test] approximate aliases
    [pass] got: 3.141
    [fail] error, expect: 3.14, got: 3.5
    [pass] got: 3.5
    [fail] error, expect: 3.14, got: 3.141
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
  [🧪 test] matcher aliases
    [pass] got: 2
    [fail] error, expect: (1 2), got: 9
    [pass] got: 9
    [fail] error, expect: (1 2), got: 2
    [pass] got: hello
    [fail] error, expect: #<regexp 7eff718a4d00>, got: hello
    [pass] got: hello
    [fail] error, expect: #<regexp 7eff718a4080>, got: hello
    [pass] got: ()
    [fail] error, expect: #t, got: (1)
    [pass] got: (1)
    [fail] error, expect: #t, got: ()
    [pass] got: (1 2 3)
    [fail] error, expect: 4, got: (1 2 3)
    [pass] got: 5
    [fail] error, expect: (1 . 10), got: 11
    [pass] got: green
    [fail] error, expect: (red green), got: blue
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
    ✅ got: #t
    ✅ got: #f
ℹ️ info - ran 6 tasks in: 5 seconds, -260224 microseconds
ℹ️ info - counted 1 file, 6 suites, 23 tests and 85 assertions

running unit tests from file: simple.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 18.8% of 3418 lines (642 covered) in 13 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] Error Handling Tests
  [🧪 test] Division by Zero Error
    [⚙️ assert] Should signal error on division by zero
    ✅ success catching error: misc-error: (#f Division by zero () #f)
  [🧪 test] No Error on Valid Division
    [⚙️ assert] Should not signal error on valid division
    ✅ success running without errors
    [⚙️ assert] Valid division result
    ✅ got: 5
+----------------------------------------------+
[📑 suite] Predicate Tests
  [🧪 test] List Predicates
    [⚙️ assert] Empty list should be null
    ✅ got: #t
    [⚙️ assert] Non-empty list should not be null
    ✅ got: #f
    [⚙️ assert] Pair should be a pair
    ✅ got: #t
    [⚙️ assert] Empty list should not be a pair
    ✅ got: #f
+----------------------------------------------+
[📑 suite] Complex Data Structure Tests
  [🧪 test] Vector Operations
    [⚙️ assert] Vector length
    ✅ got: 3
    [⚙️ assert] Vector ref at index 1
    ✅ got: 2
    [⚙️ assert] Vector ref at index 0
    ✅ got: 1
  [🧪 test] Association List Lookups
    [⚙️ assert] Lookup 'name' in alist
    ✅ got: Alice
    [⚙️ assert] Lookup 'age' in alist
    ✅ got: 30
    [⚙️ assert] Lookup non-existent key should be #f
    ✅ got: #f
  [🧪 test] some test without suite;;; note: source file ./src/veritas/runner.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/runner.go
;;; note: source file ./src/veritas/runner.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/runner.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/runner.scm.go
;;; note: source file ./src/veritas/prelude.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/prelude.go
;;; note: source file ./src/veritas/prelude.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/prelude.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/prelude.scm.go
;;; note: source file ./src/veritas/model.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/model.go
;;; note: source file ./src/veritas/model.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/model.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/model.scm.go
;;; note: source file ./src/veritas/reporter.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/reporter.go
;;; note: source file ./src/veritas/reporter.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/reporter.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/reporter.scm.go
;;; note: source file ./src/veritas/veritas.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/veritas.go
;;; note: source file ./src/veritas/veritas.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/veritas.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/veritas.scm.go
;;; note: source file ./src/veritas/assert.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/assert.go
;;; note: source file ./src/veritas/assert.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/assert.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/assert.scm.go
;;; note: source file ./src/veritas/shuffle.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/shuffle.go
;;; note: source file ./src/veritas/shuffle.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/shuffle.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/shuffle.scm.go
;;; note: source file ./src/veritas/generator.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/generator.go
;;; note: source file ./src/veritas/generator.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/generator.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/generator.scm.go
;;; note: source file ./src/veritas/coverage.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/coverage.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/coverage.scm.go

    ✅ got: 1
+----------------------------------------------+
[📑 suite] Basic Suite
  [🧪 test] Do some assertions
    ✅ got: 1
    ✅ got: 1
    ✅ got: 1
  [🧪 test] Check that function calls work
    ✅ got: 42
+----------------------------------------------+
[📑 suite] str
  [🧪 test] String Operation Tests
    ✅ got: hello world
    ✅ got: #t
    ✅ got: #f
ℹ️ info - ran 6 tasks in: 1 seconds, 157457 microseconds
ℹ️ info - counted 1 file, 5 suites, 9 tests and 21 assertions

running unit tests from file: coverage.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 42.6% of 3418 lines (1455 covered) in 13 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] Coverage filtering
  [🧪 test] the include filter is what keeps dependencies out
    ✅ got: #t
    ✅ got: #f
    ✅ got: #f
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] an explicit refusal beats a file that asks for coverage
    ✅ got: #t
    ✅ got: #t
    ✅ got: #f
    ✅ got: #f
    ✅ got: #t
    ✅ got: #t
    ✅ got: #f
    ✅ got: #f
  [🧪 test] a recorded path becomes an absolute one
    ✅ got: /tmp/veritas/x.scm
    ✅ got: /tmp/veritas/sub/x.scm
    ✅ got: /tmp/veritas/x.scm
    ✅ got: /tmp/veritas-coverage-rG91y0/resolved.scm
+----------------------------------------------+
[📑 suite] Coverage measurement
  [🧪 test] lines that ran are counted, lines that did not are zero
    ✅ got: 1
    ✅ got: /tmp/veritas-coverage-ciI2zB/veritas-coverage-fixture-20770.scm
    ✅ got: #t
    ✅ got: 0
    ✅ got: 0
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] collecting coverage leaves the VM engine as it found it
    ✅ got: debug
    ✅ got: debug
  [🧪 test] an empty collection is an empty report, not a covered one
    ✅ got: 0
    ✅ got: 0.0
+----------------------------------------------+
[📑 suite] Coverage reports
  [🧪 test] an LCOV file survives a round trip
    ✅ got: TN:
SF:/project/a.scm
DA:1,2
DA:2,0
LH:1
LF:2
end_of_record
SF:/project/b.scm
DA:5,1
LH:1
LF:1
end_of_record

    ✅ got: 2
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: 0
  [🧪 test] reports merge by taking the highest count
    ✅ got: 5
    ✅ got: 0
    ✅ got: 1
    ✅ got: 2
    ✅ got: 1
    ✅ got: 2
  [🧪 test] the HTML report is one page with every file in it
    ✅ got: /tmp/veritas-coverage-0MqXEn/html/index.html
    ✅ got: #t
    ✅ got: 3
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #f
  [🧪 test] the Cobertura document describes packages, classes and lines
    ✅ got: 0.6667
    ✅ got: 2
    ✅ got: 3
    ✅ got: 0.0
    ✅ got: #t
    ✅ got: src
    ✅ got: src/a.scm
    ✅ got: 3
    ✅ got: 2
    ✅ got: 0
  [🧪 test] the JaCoCo document carries per-line and per-class counters
    ✅ got: veritas
    ✅ got: src
    ✅ got: src/a
    ✅ got: a.scm
    ✅ got: 3
    ✅ got: 0
    ✅ got: 1
    ✅ got: 1
    ✅ got: 0
    ✅ got: 1
    ✅ got: 2
  [🧪 test] the JSON summary holds the totals and the uncovered lines
    ✅ got: #t
    ✅ got: 3
    ✅ got: 2
    ✅ got: 66.67
    ✅ got: /project/a.scm
    ✅ got: #(2)
  [🧪 test] the reports of one run add up
    ✅ got: 2
    ✅ got: 1
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: 3
+----------------------------------------------+
[📑 suite] Coverage from a run
  [🧪 test] veritas-run writes the coverage of what its tests exercise
ℹ️ info - Code coverage: 42.9% of 7 lines (3 covered) in 1 file
ℹ️ info - Coverage reports written to /tmp/veritas-coverage-5NmOg7/lcov/veritas.info, /tmp/veritas-coverage-5NmOg7/html/index.html, /tmp/veritas-coverage-5NmOg7/lcov/coverage-summary.json, /tmp/veritas-coverage-5NmOg7/lcov/cobertura.xml, /tmp/veritas-coverage-5NmOg7/lcov/jacoco.xml
  [🧪 test] calls the fixture
    ✅ got: pos
ℹ️ info - ran 1 tasks in: 27 seconds, -338070 microseconds
ℹ️ info - counted 1 file, 0 suites, 1 test and 1 assertion
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
ℹ️ info - ran 4 tasks in: 105 seconds, -115060 microseconds
ℹ️ info - counted 1 file, 4 suites, 14 tests and 14 assertions

running unit tests from file: mock.scm, entrypoint: spec


ℹ️ info - Code coverage: 43.5% of 3482 lines (1516 covered) in 14 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] test doubles
  [🧪 test] a spy records the calls and the results
    ✅ got: 3
    ✅ got: 7
    ✅ got: #t
    ✅ got: ((1 2) (3 4))
    ✅ got: (3 7)
    ✅ got: 2
    ✅ got: #t
    ✅ got: #f
  [🧪 test] a stub ignores its arguments and returns a value
    ✅ got: 0
    ✅ got: 0
    ✅ got: (() (some arguments))
    ✅ got: 2
  [🧪 test] assertions read the spy when they run
    [assert] send was called
    [fail] error, expect: #t, got: #f
    ✅ got: #f
    [assert] send was called
    [pass] got: #t
    ✅ got: #t
    [assert] send was called with (ada thanks)
    [pass] got: ((ada thanks))
    ✅ got: #t
    [assert] send was called with (ada)
    [fail] error, expect: (ada), got: ((ada thanks))
    ✅ got: #f
    [assert] send was called 1 time(s)
    [pass] got: 1
    ✅ got: #t
    [assert] send was called 2 time(s)
    [fail] error, expect: 2, got: 1
    ✅ got: #f
  [🧪 test] a spy is an ordinary procedure
    ✅ got: (2 4 6)
    ✅ got: 3
  [🧪 test] a binding is replaced and restored
    ✅ got: 42
    ✅ got: 0
    ✅ got: 42
    ✅ got: #t
  [🧪 test] a call that reads the binding at run time sees the replacement
    ✅ got: 0
  [🧪 test] a binding is restored even when the body raises
    ✅ got: 42
ℹ️ info - ran 1 tasks in: 1 seconds, -221104 microseconds
ℹ️ info - counted 1 file, 1 suite, 7 tests and 7 assertions

running unit tests from file: nesting.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 44.0% of 3500 lines (1540 covered) in 15 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] table nesting
  [🧪 test] 3 squared is 9
    ✅ got: 9
+----------------------------------------------+
[📑 suite] inner table
  [🧪 test] 2 squared is 4
    ✅ got: 4
  [🧪 test] 3 squared is 9
    ✅ got: 9
  [🧪 test] 1 squared is 1
    ✅ got: 1
  [🧪 test] 2 squared is 4
    ✅ got: 4
  [🧪 test] 1 squared is 1
    ✅ got: 1
+----------------------------------------------+
[📑 suite] depth 1
+----------------------------------------------+
[📑 suite] depth 2
+----------------------------------------------+
[📑 suite] depth 3
+----------------------------------------------+
[📑 suite] depth 4
  [🧪 test] leaf test
    ✅ got: 24
  [🧪 test] test at depth 3
    ✅ got: #t
  [🧪 test] test at depth 2
    ✅ got: (a b)
  [🧪 test] test at depth 1
    ✅ got: y
+----------------------------------------------+
[📑 suite] sequential nesting
+----------------------------------------------+
[📑 suite] sequential child
+----------------------------------------------+
[📑 suite] sequential grandchild
  [🧪 test] deep sequential test
    ✅ got: 6
ℹ️ info - ran 3 tasks in: 1 seconds, 125811 microseconds
ℹ️ info - counted 1 file, 9 suites, 11 tests and 11 assertions

running unit tests from file: batteries.scm, entrypoint: spec


ℹ️ info - Code coverage: 42.2% of 3649 lines (1540 covered) in 18 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] batteries included
  [🧪 test] one import reaches the assertion library
    ✅ got: 2
    ✅ got: (1 2)
  [🧪 test] one import reaches the runner
    ✅ got: #t
    ✅ got: #t
  [🧪 test] one import reaches the doubles
    ✅ got: #t
    ✅ got: #t
  [🧪 test] one import reaches the table helpers
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] one import reaches the generators
    ✅ got: #t
    ✅ got: #t
  [🧪 test] one import reaches the BDD steps
    ✅ got: #t
    ✅ got: #t
  [🧪 test] one import reaches the snapshot helpers
    ✅ got: #t
    ✅ got: #t
  [🧪 test] one import reaches the trace recorder
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] one import reaches the retry count
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 1 seconds, 106287 microseconds
ℹ️ info - counted 1 file, 1 suite, 9 tests and 19 assertions

running unit tests from file: numeric/a/num.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 42.2% of 3649 lines (1540 covered) in 18 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] Predicate Tests
  [🧪 test] Even Number Checks
    [⚙️ assert] 4 should be even
    ✅ got: #t
    [⚙️ assert] 7 should not be even
    ✅ got: #f
    [⚙️ assert] 0 should be even
    ✅ got: #t
    [⚙️ assert] 1 should not be even
    ✅ got: #f
+----------------------------------------------+
[📑 suite] Basic Suite
  [🧪 test] Basic Numeric Tests
    ✅ got: 1
    [⚙️ assert] checks if addition works
    ✅ got: 4
    [⚙️ assert] arithmetic approximation
    ✅ got: 0.99999999999
    [⚙️ assert] arithmetic approximation
    ✅ got: 0.99999999999
    [⚙️ assert] arithmetic approximation
    ✅ got: 0.9999999
    ✅ got: 0
    ✅ got: 1
ℹ️ info - ran 2 tasks in: 1 seconds, -230839 microseconds
ℹ️ info - counted 1 file, 2 suites, 2 tests and 11 assertions
🔬 debug - assertion-results: (#t #t #t #t #t #t #t #t #t #t #t)

running unit tests from file: diff.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 43.0% of 3649 lines (1568 covered) in 18 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] value diffs
  [🧪 test] strings name the first differing character
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] lists name the first differing index and both values
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] values that are not lists, vectors or strings have no diff
    ✅ got: #f
    ✅ got: #f
  [🧪 test] assert-equal prints the diff after the values
    ✅ got: #t
    ✅ got: #t
  [🧪 test] a list that is a prefix says which one is longer
    ✅ got: #t
    ✅ got: #t
  [🧪 test] equal values have no diff
    ✅ got: #f
    ✅ got: #f
ℹ️ info - ran 1 tasks in: 1 seconds, -142104 microseconds
ℹ️ info - counted 1 file, 1 suite, 6 tests and 14 assertions

running unit tests from file: references.scm, entrypoint: spec


ℹ️ info - Code coverage: 46.6% of 3649 lines (1699 covered) in 18 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] source references
  [🧪 test] a test result names the file the test was declared in
    ✅ got: references.scm
  [🧪 test] a suite passes its own declaration site down to its tests
    ✅ got: references.scm
  [🧪 test] the JUnit document writes the file of a test
    ✅ got: file="
    ✅ got: references.scm
  [🧪 test] a location string is reported for the running test
    ✅ got: references.scm
ℹ️ info - ran 1 tasks in: 0 seconds, 690421 microseconds
ℹ️ info - counted 1 file, 1 suite, 4 tests and 4 assertions

running unit tests from file: rerun.scm, entrypoint: spec


ℹ️ info - Code coverage: 47.0% of 3649 lines (1715 covered) in 18 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] rerunning what failed
  [🧪 test] a failing test is named and a passing one is not
    ✅ got: (the failing one)
  [🧪 test] names are found at any depth, through nested suites
    ✅ got: (the failing one)
  [🧪 test] a run that passed records nothing to rerun
    ✅ got: ()
  [🧪 test] the record round-trips through the report file
    ✅ got: (the failing one)
    ✅ got: (the failing one)
  [🧪 test] an empty record is a record, so nothing is rerun
    ✅ got: ()
    ✅ got: ()
    ✅ got: #f
    ✅ got: #f
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 1 seconds, -314803 microseconds
ℹ️ info - counted 1 file, 1 suite, 5 tests and 5 assertions

running unit tests from file: flexible-bodies.scm, entrypoint: spec


ℹ️ info - Code coverage: 48.6% of 3649 lines (1774 covered) in 18 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] flexible bodies
  [🧪 test] a let body contributes every assertion it builds
    ✅ got: (#t #t #t)
    ✅ got: (#t #t #t)
  [🧪 test] a failing assertion inside a let body is reported
    ✅ got: (#t #f #t)
  [🧪 test] a statement after the assertions does not hide them
    ✅ got: (#t)
  [🧪 test] when and cond bodies are read the same way
    ✅ got: (#t #t)
    ✅ got: (#t #t)
  [🧪 test] a list of assertions is a list of cases
    ✅ got: (#t #t #t)
    ✅ got: (#t #t)
  [🧪 test] an assertion used as an input is not run twice
    ✅ got: (#t #t)
  [🧪 test] a body that builds no assertions is a failure
    ✅ got: (#f)
    ✅ got: (#f)
  [🧪 test] a let around several tests contributes every test
    ✅ got: (#t #t)
    ✅ got: (#t #t)
  [🧪 test] a let around the steps contributes every step
    ✅ got: (#t #t #t)
    ✅ got: (#t #t #t)
  [🧪 test] the body waits for the run
    ✅ got: #f
    ✅ got: (#t)
    ✅ got: #t
  [🧪 test] hooks bracket the body and are visible to it
    ✅ got: (#t #t)
    ✅ got: done
  [🧪 test] a deadline still covers a let body
    ✅ got: (#t)
  [🧪 test] the procedures behind the macros take built cases
    ✅ got: (#t #t #t)
    ✅ got: (#t)
ℹ️ info - ran 1 tasks in: 2 seconds, 141632 microseconds
ℹ️ info - counted 1 file, 1 suite, 13 tests and 23 assertions

running unit tests from file: retries.scm, entrypoint: spec


ℹ️ info - Code coverage: 48.9% of 3649 lines (1784 covered) in 18 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] retries
  [🧪 test] a flaky test passes on its second attempt
    ✅ got: 2
    ✅ got: #t
  [🧪 test] a test that never passes is still a failure after a retry
    ✅ got: 2
    ✅ got: #f
  [🧪 test] without retries a test runs once
    ✅ got: 1
  [🧪 test] the retry count can be set for a whole run
    ✅ got: 3
+----------------------------------------------+
[📑 suite] flaky in the JUnit document
  [🧪 test] a retried pass carries flaky=true
    ✅ got: 2
    ✅ got: flaky="true"
+----------------------------------------------+
[📑 suite] flaky in the JSON reporter
  [🧪 test] the flaky line carries its own level
    ✅ got: "level":"flaky"
ℹ️ info - ran 3 tasks in: 1 seconds, -96001 microseconds
ℹ️ info - counted 1 file, 3 suites, 6 tests and 6 assertions

running unit tests from file: container.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 50.0% of 3818 lines (1910 covered) in 19 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] container lifecycle against a fake runtime
  [🧪 test] runtime detection honours the environment
    ✅ got: /tmp/veritas-fake-container-runtime.sh
    ✅ got: #t
  [🧪 test] container-exec returns output
    ✅ got: exec-ok
  [🧪 test] container-run returns an id
    ✅ got: fake-container
  [🧪 test] run-command reports status and output
    ✅ got: (3 hi
)
  [🧪 test] container-running? detects a running container
    ✅ got: #t
  [🧪 test] wait-for-command succeeds
    ✅ got: #t
  [🧪 test] with-container cleans up after the thunk
    ✅ got: fake-container
    ✅ got: run -d alpine
rm -f fake-container

  [🧪 test] wait-for-log succeeds on a matching line
    ✅ got: #t
  [🧪 test] assert-container-running reports success
    [⚙️ assert] the probe is running
    ✅ container assert-running-probe is running
  [🧪 test] container-build shells out to the runtime
    ✅ got: built
  [🧪 test] run-command! raises on failure
    ✅ raised an error as expected
  [🧪 test] container-logs returns logs
    ✅ got: line1
ready
  [🧪 test] a yielding thunk keeps its container until it is done
    [⚙️ assert] the container is still running after the thunk yielded
    ✅ got: #t
+----------------------------------------------+
[📑 suite] container command construction and readiness
  [🧪 test] wait-until returns as soon as the predicate holds
    ✅ got: #t
  [🧪 test] container-run forwards name, env, ports and volumes
    ✅ got: --name svc
    ✅ got: -e A=1
    ✅ got: -p 8080:80
    ✅ got: -v /tmp:/data
  [🧪 test] container-exec-status returns status and output
    ✅ got: 0
    ✅ got: exec-ok

  [🧪 test] wait-until raises once the timeout is exceeded
    ✅ raised an error as expected
ℹ️ info - ran 2 tasks in: 2 seconds, -259532 microseconds
ℹ️ info - counted 1 file, 2 suites, 17 tests and 23 assertions

running unit tests from file: lists.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 50.0% of 3818 lines (1910 covered) in 19 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] List Manipulation Tests
  [🧪 test] Get First Element
    [⚙️ assert] First element of a number list
    ✅ got: 1
    [⚙️ assert] First element of a symbol list
    ✅ got: a
    [⚙️ assert] First element of an empty list should be #f
    ✅ got: #f
  [🧪 test] List Concatenation
    [⚙️ assert] Concatenate two non-empty lists
    ✅ got: (1 2 3 4 5)
    [⚙️ assert] Concatenate empty list with non-empty
    ✅ got: (a b)
    [⚙️ assert] Concatenate non-empty list with empty
    ✅ got: (x y)
    [⚙️ assert] Concatenate two empty lists
    ✅ got: ()
  [🧪 test] List Length
    [⚙️ assert] Length of empty list
    ✅ got: 0
    [⚙️ assert] Length of list with 3 elements
    ✅ got: 3
    [⚙️ assert] Length of list with one element
    ✅ got: 1
ℹ️ info - ran 1 tasks in: 1 seconds, -191393 microseconds
ℹ️ info - counted 1 file, 1 suite, 3 tests and 10 assertions

running unit tests from file: cli.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 47.7% of 4039 lines (1926 covered) in 20 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] CLI metadata
  [🧪 test] version and man page name are present
    ✅ got: 1.4.0
    ✅ got: veritas(1)
  [🧪 test] option grammar declares the expected options
    [⚙️ assert] scan-dir is a known option
    ✅ got: #t
    [⚙️ assert] test-top-dir is a known option
    ✅ got: #t
    [⚙️ assert] test-type is a known option
    ✅ got: #t
    [⚙️ assert] entrypoint is a known option
    ✅ got: #t
    [⚙️ assert] test-module is a known option
    ✅ got: #t
    [⚙️ assert] reporter is a known option
    ✅ got: #t
    [⚙️ assert] only-test is a known option
    ✅ got: #t
    [⚙️ assert] only-suite is a known option
    ✅ got: #t
    [⚙️ assert] only-tag is a known option
    ✅ got: #t
    [⚙️ assert] only-failed is a known option
    ✅ got: #t
    [⚙️ assert] no-only-failed is a known option
    ✅ got: #t
    [⚙️ assert] seed is a known option
    ✅ got: #t
    [⚙️ assert] partition is a known option
    ✅ got: #t
    [⚙️ assert] jobs is a known option
    ✅ got: #t
    [⚙️ assert] coverage is a known option
    ✅ got: #t
    [⚙️ assert] no-coverage is a known option
    ✅ got: #t
    [⚙️ assert] coverage-dir is a known option
    ✅ got: #t
    [⚙️ assert] coverage-html-dir is a known option
    ✅ got: #t
    [⚙️ assert] coverage-include is a known option
    ✅ got: #t
    [⚙️ assert] coverage-exclude is a known option
    ✅ got: #t
    [⚙️ assert] shuffle is a known option
    ✅ got: #t
    [⚙️ assert] no-shuffle is a known option
    ✅ got: #t
    [⚙️ assert] benchmarks is a known option
    ✅ got: #t
    [⚙️ assert] no-benchmarks is a known option
    ✅ got: #t
    [⚙️ assert] help is a known option
    ✅ got: #t
    [⚙️ assert] version is a known option
    ✅ got: #t
  [🧪 test] help text documents every flag
    [⚙️ assert] help mentions --scan-dir
    ✅ got: --scan-dir
    [⚙️ assert] help mentions --test-top-dir
    ✅ got: --test-top-dir
    [⚙️ assert] help mentions --test-type
    ✅ got: --test-type
    [⚙️ assert] help mentions --entrypoint
    ✅ got: --entrypoint
    [⚙️ assert] help mentions --test-module
    ✅ got: --test-module
    [⚙️ assert] help mentions --reporter
    ✅ got: --reporter
    [⚙️ assert] help mentions --only-test
    ✅ got: --only-test
    [⚙️ assert] help mentions --only-suite
    ✅ got: --only-suite
    [⚙️ assert] help mentions --only-tag
    ✅ got: --only-tag
    [⚙️ assert] help mentions --only-failed
    ✅ got: --only-failed
    [⚙️ assert] help mentions --no-only-failed
    ✅ got: --no-only-failed
    [⚙️ assert] help mentions --seed
    ✅ got: --seed
    [⚙️ assert] help mentions --partition
    ✅ got: --partition
    [⚙️ assert] help mentions --jobs
    ✅ got: --jobs
    [⚙️ assert] help mentions --coverage
    ✅ got: --coverage
    [⚙️ assert] help mentions --no-coverage
    ✅ got: --no-coverage
    [⚙️ assert] help mentions --coverage-dir
    ✅ got: --coverage-dir
    [⚙️ assert] help mentions --coverage-html-dir
    ✅ got: --coverage-html-dir
    [⚙️ assert] help mentions --coverage-include
    ✅ got: --coverage-include
    [⚙️ assert] help mentions --coverage-exclude
    ✅ got: --coverage-exclude
    [⚙️ assert] help mentions --shuffle
    ✅ got: --shuffle
    [⚙️ assert] help mentions --no-shuffle
    ✅ got: --no-shuffle
    [⚙️ assert] help mentions --benchmarks
    ✅ got: --benchmarks
    [⚙️ assert] help mentions --no-benchmarks
    ✅ got: --no-benchmarks
    [⚙️ assert] help mentions --help
    ✅ got: --help
    [⚙️ assert] help mentions --version
    ✅ got: --version
+----------------------------------------------+
[📑 suite] CLI driver
  [🧪 test] --help exits successfully
    ✅ got: 0
  [🧪 test] --version exits successfully
    ✅ got: 0
ℹ️ info - ran 2 tasks in: 2 seconds, 53520 microseconds
ℹ️ info - counted 1 file, 2 suites, 5 tests and 56 assertions

running unit tests from file: property.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 50.5% of 4039 lines (2041 covered) in 20 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] properties
  [🧪 test] a property that fails reports the shrunk input
    ✅ got: #f
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] a property is a test task
    ✅ got: test
  [🧪 test] a property that holds reports a passing assertion
    ✅ got: reverse of reverse is the original list
    ✅ got: 1
    ✅ got: #t
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 1 seconds, 27013 microseconds
ℹ️ info - counted 1 file, 1 suite, 3 tests and 10 assertions

running unit tests from file: introduction.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 50.6% of 4039 lines (2042 covered) in 20 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] Testing Logic and List Operations
  [🧪 test] List Summation
    [⚙️ assert] Sum of elements 1 through 5 should be 15
    ✅ got: 15
    [⚙️ assert] Sum of an empty list should be 0
    ✅ got: 0
  [🧪 test] Number Classification Logic
    [⚙️ assert] 99 should be classified as positive
    ✅ got: positive
    [⚙️ assert] -1 should be classified as negative
    ✅ got: negative
    [⚙️ assert] 0 should be classified as zero
    ✅ got: zero
+----------------------------------------------+
[📑 suite] Getting Started with Assertions
  [🧪 test] Basic String and Predicate Tests
    [⚙️ assert] Greeting should be personalized
    ✅ got: Hello, Veritas!
    [⚙️ assert] 10 should be greater than 5
    ✅ got: #t
    [⚙️ assert] String comparison should be case-sensitive
    ✅ got: #f
    [⚙️ assert] Greeting should contain the provided name
    ✅ got: #t
+----------------------------------------------+
[📑 suite] Error and Exception Handling
  [🧪 test] Valid summation should not throw an error
    [⚙️ assert] Should not fail with a valid list of numbers
    ✅ success running without errors
  [🧪 test] Summing a list with non-numeric elements
    [⚙️ assert] Should fail when list contains non-numbers
    ✅ success catching error: wrong-type-arg: (+ Wrong type argument in position ~A: ~S (2 a) (a))
+----------------------------------------------+
[📑 suite] Lifecycle hooks bracket their assertions
  [🧪 test] a #:before hook prepares state its own cases can see
    [⚙️ assert] #:before has already run
    ✅ got: (suite-before-all test-before)
  [🧪 test] the #:after of the test before it already ran
    ✅ got: (suite-before-all test-before test-after)
+----------------------------------------------+
[📑 suite] Advanced Veritas Features
ℹ️ info - TRANSIRE RUBICONEM
ℹ️ info - ALEA IACTA EST
  [🧪 test] Addition ValidationInitializing...
    ✅ got: 4
  [🧪 test] A test with a complex computation block
ℹ️ info - before test runs
ℹ️ info - after test runs
    [⚙️ assert] Complex computation inside an assertion
    ✅ got: 144
+----------------------------------------------+
[🚄 benchmark]
Computation of the factorial of 10000


[🏃 run #0]
%     cumulative   self             
time   seconds     seconds  procedure
100.00     58.99      0.02  veritas/unit/introduction.scm:174:0:factorial
  0.00      0.02      0.00  veritas/veritas.scm:998:93
---
Sample count: 1
Total time: 0.02345404 seconds (0.0 seconds in GC)

[🏃 run #1]
%     cumulative   self             
time   seconds     seconds  procedure
100.00    109.65      0.04  veritas/unit/introduction.scm:174:0:factorial
  0.00      0.04      0.00  veritas/veritas.scm:998:93
---
Sample count: 2
Total time: 0.037654395 seconds (0.013822828 seconds in GC)

ℹ️ info - ran 6 tasks in: 1 seconds, 272175 microseconds
ℹ️ info - counted 1 file, 5 suites, 9 tests and 15 assertions

running unit tests from file: partition.scm, entrypoint: spec


ℹ️ info - Code coverage: 51.1% of 4039 lines (2065 covered) in 20 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] partitioning a run
  [🧪 test] a partition string is parsed, and refused when impossible
    ✅ got: (2 . 3)
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
    ✅ got: #f
  [🧪 test] the partitions of a list are disjoint and complete
    ✅ got: (f0 f1 f2 f3 f4 f5 f6)
    ✅ got: ()
    ✅ got: ()
    ✅ got: ()
  [🧪 test] the split is round-robin over the sorted list
    ✅ got: (a c)
    ✅ got: (b d)
    ✅ got: ()
  [🧪 test] one partition of one is the whole list
    ✅ got: (a b)
ℹ️ info - ran 1 tasks in: 1 seconds, -121068 microseconds
ℹ️ info - counted 1 file, 1 suite, 4 tests and 4 assertions

running unit tests from file: impact.scm, entrypoint: spec


ℹ️ info - Code coverage: 53.9% of 4039 lines (2178 covered) in 20 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] change-aware selection
  [🧪 test] a file's module name comes from its path
    ✅ got: (veritas reporter)
    ✅ got: (acme password)
  [🧪 test] imports are read from a module body
    ✅ got: ((acme password) (veritas veritas))
  [🧪 test] a changed module selects its own test and its importers
    ✅ got: (/tmp/veritas-impact-suite/test/acme/unit/password-spec.scm /tmp/veritas-impact-suite/test/acme/unit/password.scm /tmp/veritas-impact-suite/test/acme/unit/web.scm)
  [🧪 test] an unrelated test is left out
    ✅ got: #f
  [🧪 test] a changed test file selects itself
    ✅ got: (/tmp/veritas-impact-suite/test/acme/unit/other.scm)warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
;;; note: source file ./src/veritas/mock.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/mock.go
;;; note: source file ./src/veritas/mock.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/mock.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/mock.scm.go
;;; note: source file ./src/veritas/table.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/table.go
;;; note: source file ./src/veritas/table.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/table.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/table.scm.go
;;; note: source file ./src/veritas/snapshot.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/snapshot.go
;;; note: source file ./src/veritas/snapshot.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/snapshot.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/snapshot.scm.go
;;; note: source file ./src/veritas/bdd.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/bdd.go
;;; note: source file ./src/veritas/bdd.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/bdd.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/bdd.scm.go
;;; note: source file ./src/veritas/container.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/container.go
;;; note: source file ./src/veritas/container.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/container.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/container.scm.go
;;; note: source file ./src/veritas/cli.scm
;;;       newer than compiled /gnu/store/21afi1i81zcsj3g9fjxxaxrkfxm3gfjp-profile/lib/guile/3.0/site-ccache/veritas/cli.go
;;; note: source file ./src/veritas/cli.scm
;;;       newer than compiled /run/current-system/profile/lib/guile/3.0/site-ccache/veritas/cli.go
;;; found fresh local cache at /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/src/veritas/cli.scm.go
;;; note: source file ./tmp-jobs-suite/veritas/probe/pass.scm
;;;       newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/tmp-jobs-suite/veritas/probe/pass.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling ./tmp-jobs-suite/veritas/probe/pass.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/tmp-jobs-suite/veritas/probe/pass.scm.go
;;; note: source file ./tmp-jobs-suite/veritas/probe/exit-one.scm
;;;       newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/tmp-jobs-suite/veritas/probe/exit-one.scm.go
;;; compiling ./tmp-jobs-suite/veritas/probe/exit-one.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/tmp-jobs-suite/veritas/probe/exit-one.scm.go
;;; note: source file ./tmp-jobs-suite/veritas/probe/raise.scm
;;;       newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/tmp-jobs-suite/veritas/probe/raise.scm.go
;;; compiling 
  [🧪 test] a test that names a changed data file is selected
    ✅ got: (/tmp/veritas-impact-suite/test/acme/unit/data-reader.scm)
  [🧪 test] a data file the test does not name selects nothing
    ✅ got: ()
  [🧪 test] no change selects nothing
    ✅ got: ()
ℹ️ info - ran 1 tasks in: 1 seconds, 223348 microseconds
ℹ️ info - counted 1 file, 1 suite, 8 tests and 9 assertions

running unit tests from file: determinism.scm, entrypoint: spec


ℹ️ info - Code coverage: 54.4% of 4039 lines (2196 covered) in 20 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] determinism
  [🧪 test] a suite runs its tests in declaration order, run after run
+----------------------------------------------+
[📑 suite] flat
+----------------------------------------------+
[📑 suite] flat
    ✅ got: 3
    ✅ got: (0 1 2)
  [🧪 test] a child that finishes first does not jump ahead of a slow one
    ✅ got: (waits signals)
  [🧪 test] three runs of one suite produce the same JUnit document
    ✅ got: ((tests . 3) (failures . 0) (errors . 0) (skipped . 0) (xml . <testsuite name="test/veritas/unit/determinism.scm" tests="3" failures="0" errors="0" skipped="0">
<testcase name="before" classname="test/veritas/unit/determinism.scm" file="test/veritas/unit/determinism.scm" suite="outer"/>
<testcase name="inside" classname="test/veritas/unit/determinism.scm" file="test/veritas/unit/determinism.scm" suite="outer &gt; inner"/>
<testcase name="after" classname="test/veritas/unit/determinism.scm" file="test/veritas/unit/determinism.scm" suite="outer"/>
</testsuite>
))
    ✅ got: ((tests . 3) (failures . 0) (errors . 0) (skipped . 0) (xml . <testsuite name="test/veritas/unit/determinism.scm" tests="3" failures="0" errors="0" skipped="0">
<testcase name="before" classname="test/veritas/unit/determinism.scm" file="test/veritas/unit/determinism.scm" suite="outer"/>
<testcase name="inside" classname="test/veritas/unit/determinism.scm" file="test/veritas/unit/determinism.scm" suite="outer &gt; inner"/>
<testcase name="after" classname="test/veritas/unit/determinism.scm" file="test/veritas/unit/determinism.scm" suite="outer"/>
</testsuite>
))
  [🧪 test] a seeded shuffle gives the same order twice
    ✅ got: (2 4 5 1 3)
    ✅ got: 5
  [🧪 test] timestamps come from the clock seam
    ✅ got: 2026-01-01T00:00:00Z
    ✅ got: 2026-01-01T00:00:00Z
    ✅ got: 
{"timestamp":"2026-01-01T00:00:00Z","level":"fail","message":"same"}
ℹ️ info - ran 1 tasks in: 3 seconds, -512916 microseconds
ℹ️ info - counted 1 file, 1 suite, 5 tests and 5 assertions

running unit tests from file: jobs.scm, entrypoint: spec


ℹ️ info - Code coverage: 58.7% of 4049 lines (2378 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] worker processes
  [🧪 test] a job count is a whole number of processes
    ✅ got: 4
    ✅ got: 1
    ✅ got: #f
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] the records of several runs merge into one
    ✅ got: (a b)
    ✅ got: ()
    ✅ got: #f
    ✅ got: (a)
  [🧪 test] a record can be written where a worker puts it
    ✅ got: (the failing one)
    ✅ got: (the failing one)
    ✅ got: ()
    ✅ got: #t
  [🧪 test] JUnit data merges by summing and concatenating
    ✅ got: 5
    ✅ got: 1
    ✅ got: 0
    ✅ got: 0
    ✅ got: <testsuite name="s2"/>
<testsuite name="s3"/>

  [🧪 test] JUnit data written by a worker can be read back and merged
    ✅ got: 1
    ✅ got: #f
    ✅ got: #f
  [🧪 test] a JUnit document is written from merged data
    ✅ got: tests="5" failures="1" errors="0" skipped="0" time="0.5"
    ✅ got: <testsuite name="s2"/>
<testsuite name="s3"/>

  [🧪 test] a file that passes is reported as passed

running probe tests from file: pass.scm, entrypoint: spec


    ✅ got: #t
  [🧪 test] a file that exits is reported as failed, not as the end of the run

running probe tests from file: exit-one.scm, entrypoint: spec


the file exit-one.scm failed

    ✅ got: #f
  [🧪 test] a file that raises is reported as failed

running probe tests from file: raise.scm, entrypoint: spec


the file raise.scm raised misc-error: (#f "the fixture raised" () #f)

    ✅ got: #f
  [🧪 test] the files after a failing one still run

running probe tests from file: pass.scm, entrypoint: spec



running probe tests from file: exit-one.scm, entrypoint: spec


the file exit-one.scm failed


running probe tests from file: pass.scm, entrypoint: spec


    ✅ got: (exit-one.scm)
    ✅ got: 2
+----------------------------------------------+
[📑 suite] JUnit reports and CI annotations
  [🧪 test] the step summary gets a row per file and one header
    ✅ got: | test/a.scm | 2 | 3 | 4 |
    ✅ got: | test/b.scm | 0 | 0 | 0 |
    ✅ got: 6
  [🧪 test] GitHub annotations name the failing test and its file
    ✅ got: ::error file=test/cart.scm,title=cart > pays%2C twice::totals differ

  [🧪 test] the JUnit document places a test in its file and times it
    ✅ got: <testsuite name="test/cart.scm" tests="2" failures="1" errors="0" skipped="0" time="0.750">
<testcase name="pays" classname="test/cart.scm" file="test/cart.scm" suite="checkout" time="0.250"/>
<testcase name="refuses &lt;&amp;&gt;" classname="test/cart.scm" file="test/cart.scm" suite="checkout" time="0.500">
<failure message="refused">
&lt;no&gt;
</failure>
</testcase>
</testsuite>
<testsuite name="veritas" tests="1" failures="0" errors="1" skipped="0" time="0.000">
<testcase name="veritas" classname="veritas" time="0.000">
<error message="boom"/>
</testcase>
</testsuite>

    ✅ got: 3
    ✅ got: 1
    ✅ got: 1
    ✅ got: <testsuites name="veritas" tests="3" failures="1" errors="1" skipped="0" time="1">
    ✅ got: <testsuite name="test/cart.scm" tests="2" failures="1" errors="0" skipped="0" time="0.750">
<testcase name="pays" classname="test/cart.scm" file="test/cart.scm" suite="checkout" time="0.250"/>
<testcase name="refuses &lt;&amp;&gt;" classname="test/cart.scm" file="test/cart.scm" suite="checkout" time="0.500">
<failure message="refused">
&lt;no&gt;
</failure>
</testcase>
</testsuite>
<testsuite name="veritas" tests="1" failures="0" errors="1" skipped="0" time="0.000">
<testcase name="veritas" classname="veritas" time="0.000">
<error message="boom"/>
</testcase>
</testsuite>

ℹ️ info - ran 2 tasks in: 101 seconds, 585169 microseconds
ℹ️ info - counted 1 file, 2 suites, 13 tests and 13 assertions

running unit tests from file: traces.scm, entrypoint: spec


ℹ️ info - Code coverage: 59.7% of 4049 lines (2419 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] traces
  [🧪 test] a traced test records its start, its assertions and its end
    ✅ got: (test-start assertion assertion test-end)
    ✅ got: #t
    ✅ got: #t
    ✅ got: 1 attempt(s)
  [🧪 test] a trace survives a round trip through a file
    ✅ got: 2
    ✅ got: test-start
    ✅ got: test-end
  [🧪 test] the rendered timeline names the steps
    ✅ got: test-start
    ✅ got: test-end
  [🧪 test] tracing off records nothing
    ✅ got: ()
  [🧪 test] a missing trace file reads as no frames
    ✅ got: ()
ℹ️ info - ran 1 tasks in: 1 seconds, -12555 microseconds
ℹ️ info - counted 1 file, 1 suite, 5 tests and 5 assertions

running unit tests from file: table.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 59.8% of 4049 lines (2422 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] string reversal is involutive
  [🧪 test] reversing "veritas" twice is identity
    ✅ got: veritas
  [🧪 test] reversing "" twice is identity
    ✅ got: 
  [🧪 test] reversing "a" twice is identity
    ✅ got: a
  [🧪 test] reversing "ab" twice is identity
    ✅ got: ab
  [🧪 test] reversing "racecar" twice is identity
    ✅ got: racecar
+----------------------------------------------+
[📑 suite] integer addition
  [🧪 test] 1 + 2 = 3
    ✅ got: 3
  [🧪 test] 10 + 20 = 30
    ✅ got: 30
  [🧪 test] 0 + 0 = 0
    ✅ got: 0
  [🧪 test] 100 + -100 = 0
    ✅ got: 0
  [🧪 test] -1 + 1 = 0
    ✅ got: 0
+----------------------------------------------+
[📑 suite] collection emptiness
+----------------------------------------------+
[📑 suite] string ""
  [🧪 test] emptiness matches
    ✅ got: #t
+----------------------------------------------+
[📑 suite] string "x"
  [🧪 test] emptiness matches
    ✅ got: #f
+----------------------------------------------+
[📑 suite] grouped squares
+----------------------------------------------+
[📑 suite] n = 2
  [🧪 test] square is correct
    ✅ got: 4
+----------------------------------------------+
[📑 suite] n = 1
  [🧪 test] square is correct
    ✅ got: 1
+----------------------------------------------+
[📑 suite] n = 3
  [🧪 test] square is correct
    ✅ got: 9
+----------------------------------------------+
[📑 suite] cases->table names the columns
  [🧪 test] indexes every case by the key
    ✅ got: ((:a :a 1) (:b :b 2))
ℹ️ info - ran 5 tasks in: 2 seconds, -391237 microseconds
ℹ️ info - counted 1 file, 10 suites, 16 tests and 16 assertions

running unit tests from file: counts.scm, entrypoint: spec


ℹ️ info - Code coverage: 60.4% of 4049 lines (2447 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] Global counts
  [🧪 test] the summary reads as one line
    ✅ got: 1 file, 2 suites, 3 tests and 4 assertions
  [🧪 test] a benchmark and a task that raised are counted as nothing
    ✅ got: ((files . 0) (suites . 0) (tests . 0) (assertions . 0) (flaky . 0))
    ✅ got: ((files . 0) (suites . 0) (tests . 0) (assertions . 0) (flaky . 0))
  [🧪 test] a test that passed on a retry is counted as flaky
    ✅ got: 1
    ✅ got: 0
    ✅ got: flaky
  [🧪 test] counts add up
    ✅ got: ((files . 0) (suites . 4) (tests . 6) (assertions . 8) (flaky . 0))
  [🧪 test] a nested tree counts its suites, its tests and its assertions
    ✅ got: 2
    ✅ got: 3
    ✅ got: 4
    ✅ got: 0
  [🧪 test] counts survive a trip through a file
    ✅ got: ((files . 1) (suites . 2) (tests . 3) (assertions . 4) (flaky . 0))
  [🧪 test] the run of a single file counts that file
    ✅ got: 1
ℹ️ info - ran 1 tasks in: 1 seconds, 245261 microseconds
ℹ️ info - counted 1 file, 1 suite, 7 tests and 13 assertions

running unit tests from file: generator/simple.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 60.4% of 4049 lines (2447 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] Basic Suite
  [🧪 test] Basic Generation
(? U I w d q O - ( f ' g x " j z { ' & 0 c N  )
(& U N i o b & j b 3 H ' > o P # g 9 ()
    ✅ success running without errors
(6 3 50 44 22 28 20 45 60 15 24 18)
(39 48)
    ✅ success running without errors
75
9
    ✅ success running without errors
")Gd!L9)w2G9m8| {_-Z.!jeB:[Z[<sx}IqBp:#@^~v +Re{|BJAz>UBcq}\\10bHT"
""
    ✅ success running without errors
ℹ️ info - ran 1 tasks in: 1 seconds, -139068 microseconds
ℹ️ info - counted 1 file, 1 suite, 1 test and 4 assertions

running unit tests from file: snapshot.scm, entrypoint: spec


ℹ️ info - Code coverage: 62.2% of 4049 lines (2518 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] snapshots
  [🧪 test] the first run writes the snapshot and passes
    [assert] greeting
    [pass] wrote snapshot ./tmp-snapshot-suite/greeting.snap
    ✅ got: #t
    ✅ got: #t
    ✅ got: (hello world)
  [🧪 test] the second run matches
    [assert] greeting
    [pass] matches snapshot ./tmp-snapshot-suite/greeting.snap
    ✅ got: #t
  [🧪 test] a mismatch fails and leaves the snapshot alone
    [assert] greeting
    [fail] snapshot mismatch for ./tmp-snapshot-suite/greeting.snap
expected: (hello world)
     got: (hello there)
(rerun with VERITAS_UPDATE_SNAPSHOTS=true to accept the new value)
    ✅ got: #f
    ✅ got: (hello world)
  [🧪 test] an update rewrites the snapshot and passes
    [assert] greeting
    [pass] updated snapshot ./tmp-snapshot-suite/greeting.snap
    ✅ got: #t
    ✅ got: (hello there)
    ✅ got: #f
  [🧪 test] a procedure is called when the assertion runs
    [assert] a call counter
    [pass] wrote snapshot ./tmp-snapshot-suite/a-call-counter.snap
    ✅ got: #t
    ✅ got: 1
    ✅ got: 1
  [🧪 test] a snapshot that cannot be read fails instead of being rewritten
    [assert] damaged
    [fail] could not read snapshot ./tmp-snapshot-suite/damaged.snap: read-error: (#f ./tmp-snapshot-suite/damaged.snap:1:12: unexpected end of input while searching for: ~A ()) #f)
    ✅ got: #f
    ✅ got: (unbalanced
  [🧪 test] names become file names
    ✅ got: ./tmp-snapshot-suite/the-rendered-cart.snap
    ✅ got: ./tmp-snapshot-suite/spaces.snap
  [🧪 test] a snapshot without a name is refused
    ✅ got: #t
  [🧪 test] the cleanup removes a tree, nested files included
    ✅ got: #t
    ✅ got: ()
    ✅ got: #f
ℹ️ info - ran 1 tasks in: 1 seconds, 196374 microseconds
ℹ️ info - counted 1 file, 1 suite, 9 tests and 9 assertions

running unit tests from file: bdd.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 63.0% of 4049 lines (2552 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] Scenario: steps run in declaration order
  [🧪 test] Given no recorded events
    ✅ success running without errors
  [🧪 test] When the first event is recorded
    ✅ success running without errors
  [🧪 test] Then the order is preserved
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] Scenario: summing a list of numbers
  [🧪 test] Given a list of three numbers
    ✅ got: 3
  [🧪 test] When the numbers are summed
    ✅ got: 6
  [🧪 test] Then the total is correct
    ✅ got: 6
  [🧪 test] And the list is non-empty
    ✅ got: (1 2 3)
  [🧪 test] But the list does not contain four
    ✅ got: 4
+----------------------------------------------+
[📑 suite] Scenario: a scenario written in latin
  [🧪 test] Given a list of two numbers
    ✅ got: 2
  [🧪 test] When the numbers are summed
    ✅ got: 30
  [🧪 test] Then the total is thirty
    ✅ got: 30
  [🧪 test] And the values are positive
    ✅ got: #t
  [🧪 test] But the list is not empty
    ✅ got: (10 20)
+----------------------------------------------+
[📑 suite] Scenario: a scenario written with PascalCase steps
  [🧪 test] Given a list of two numbers
    ✅ got: 2
  [🧪 test] When the numbers are summed
    ✅ got: 30
  [🧪 test] Then the total is thirty
    ✅ got: 30
+----------------------------------------------+
[📑 suite] Scenario: scenario steps keep declaration order
  [🧪 test] Given the first step records itself
    ✅ success running without errors
  [🧪 test] When the second step records itself
    ✅ success running without errors
  [🧪 test] Then the third step records itself
    ✅ success running without errors
  [🧪 test] And the recorded order is Given, When, Then
    ✅ success running without errors
+----------------------------------------------+
[📑 suite] Scenario: outer scenario
+----------------------------------------------+
[📑 suite] Scenario: inner scenario
  [🧪 test] Given inner given
    ✅ got: #t
  [🧪 test] Then inner then
    ✅ got: 2
  [🧪 test] Then outer then
    ✅ got: #t
ℹ️ info - ran 6 tasks in: 2 seconds, 123889 microseconds
ℹ️ info - counted 1 file, 7 suites, 23 tests and 23 assertions

running unit tests from file: timeout.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 63.2% of 4049 lines (2557 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] deadlines
  [🧪 test] a test within its deadline passes
    ✅ got: (#t #t)
  [🧪 test] a suite within its deadline passes
    ✅ got: (#t)
  [🧪 test] an assertion within its deadline passes
    ✅ got: (#t)
  [🧪 test] no deadline means no deadline
    ✅ got: (#t)
  [🧪 test] an overrunning test is reported as a failure
    ✅ got: (#f)
  [🧪 test] the timeout failure explains itself
    [⚙️ assert] the failure mentions the timeout
    ✅ got: overrunning test timed out after 0.3 seconds
  [🧪 test] an overrunning suite is reported as a failure
    ✅ got: (#f)
  [🧪 test] an overrunning lazy assertion is reported as a failure
    ✅ got: (#f)
  [🧪 test] an overrunning thunk assertion is reported as a failure
    ✅ got: (#f)
  [🧪 test] an overrunning scenario is reported as a failure
    ✅ got: (#f)
  [🧪 test] an overrunning benchmark is reported as a failure
    ✅ got: (#f)
  [🧪 test] the fiber of an overrunning test is aborted
    [⚙️ assert] the spin counter stopped growing
    ✅ got: #t
  [🧪 test] the fiber of an overrunning suite is aborted
    [⚙️ assert] the spin counter stopped growing
    ✅ got: #t
  [🧪 test] the fiber of an overrunning thunk assertion is aborted
    [⚙️ assert] the spin counter stopped growing
    ✅ got: #t
  [🧪 test] a blocked unit does not stall the run
    [⚙️ assert] the deadline returned promptly
    ✅ got: #t
  [🧪 test] a unit that raises still raises
    [⚙️ assert] the raised error reached the caller
    ✅ success catching error: misc-error: (#f boom () #f)
ℹ️ info - ran 1 tasks in: 5 seconds, 37388 microseconds
ℹ️ info - counted 1 file, 1 suite, 16 tests and 16 assertions

running unit tests from file: shuffle.scm, entrypoint: spec


ℹ️ info - Code coverage: 63.5% of 4049 lines (2570 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] seeded shuffling
  [🧪 test] the same seed gives the same order
    ✅ got: (2 4 5 1 3)
  [🧪 test] two different seeds are not forced to agree
    ✅ got: (1 2 3 4 5)
    ✅ got: (1 2 3 4 5)
  [🧪 test] short lists come back untouched
    ✅ got: ()
    ✅ got: (1)
  [🧪 test] a fresh seed is a usable seed
    ✅ got: #t
    ✅ got: (1 2 3)
  [🧪 test] an explicit seed is used and remembered
    ✅ got: 7
    ✅ got: 7
  [🧪 test] seeded-shuffle follows the run's seed
    ✅ got: (4 3 1 2)
ℹ️ info - ran 1 tasks in: 1 seconds, 20014 microseconds
ℹ️ info - counted 1 file, 1 suite, 6 tests and 6 assertions

running unit tests from file: generator/more.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 65.2% of 4049 lines (2641 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] collection generators
  [🧪 test] tuples hold one value per generator
    ✅ got: #t
  [🧪 test] a constant generator returns its value
    ✅ got: fixed
  [🧪 test] vectors come from their element generator
    ✅ got: #t
  [🧪 test] one-of picks from its choices
    ✅ got: #t
+----------------------------------------------+
[📑 suite] primitive generators
  [🧪 test] naturals are inclusive and respect their bound
    ✅ got: #t
  [🧪 test] booleans are booleans and both values appear
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] reals stay inside their range
    ✅ got: #t
+----------------------------------------------+
[📑 suite] fake data generators
  [🧪 test] names have a first and a last part
    ✅ got: #t
    ✅ got: #t
  [🧪 test] emails look like emails
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] beers and cars are names, not empty strings
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
  [🧪 test] first and last names are strings
    ✅ got: #t
    ✅ got: #t
+----------------------------------------------+
[📑 suite] generator shrinkers
  [🧪 test] a generator with no shrinker offers no candidates
    ✅ got: ()
  [🧪 test] integers shrink toward zero
    ✅ got: #t
    ✅ got: #t
  [🧪 test] strings shrink to shorter strings
    ✅ got: #t
    ✅ got: #t
  [🧪 test] lists shrink to shorter lists
    ✅ got: #t
    ✅ got: #t
    ✅ got: #t
ℹ️ info - ran 4 tasks in: 2 seconds, 67931 microseconds
ℹ️ info - counted 1 file, 4 suites, 15 tests and 28 assertions

running unit tests from file: structural-match.scm, entrypoint: spec


ℹ️ info - shuffled with seed 172801034 (replay with VERITAS_SEED=172801034)
ℹ️ info - Code coverage: 65.3% of 4055 lines (2647 covered) in 23 files
ℹ️ info - Coverage reports written to reports/lcov/veritas.info, reports/html/index.html, reports/lcov/coverage-summary.json, reports/lcov/cobertura.xml, reports/lcov/jacoco.xml
+----------------------------------------------+
[📑 suite] structural matching
  [🧪 test] name and timeout are accepted
    [assert] a one element list
    [pass] value (1) matches (x)
    ✅ got: #t
  [🧪 test] predicates and literals work in a pattern
    [pass] value (10 4) matches (a (? even?))
    [fail] value (10 5) does not match (a (? even?))
    ✅ got: #t
    ✅ got: #f
  [🧪 test] a fixed pattern rejects a longer list
    [fail] value (1 2 3) does not match (a b)
    ✅ got: #f
  [🧪 test] a failure says what did not match
    ✅ got: #t
  [🧪 test] a rest pattern matches a list
    [pass] value (1 2 3) matches (a b ...)
    ✅ got: #t
  [🧪 test] a quoted pattern is read as the pattern itself
    [pass] value (1 2) matches (a b)
    ✅ got: #t
ℹ️ info - ran 1 tasks in: 2 seconds, -851237 microseconds
ℹ️ info - counted 1 file, 1 suite, 6 tests and 7 assertions
global totals: 33 files, 85 suites, 305 tests and 549 assertions


finished running tests
./tmp-jobs-suite/veritas/probe/raise.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.7/etc/byggsteg/job-clone/veritas/trunk/tmp-jobs-suite/veritas/probe/raise.scm.go
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.
warning: mutating the process environment while multiple threads are running;
         further behavior unspecified.

Executing: env VERITAS_TEST_TYPE=unit VERITAS_RUN_BENCHMARKS=true VERITAS_COVERAGE=true VERITAS_COVERAGE_EXCLUDE=test:override guix shell -m manifest.scm -- guile -L ./src -L ./test -c '((@ (veritas runner) run-tests))'
deploysudo maak deploy succeeded77 lines · 2.2s
--------------------------------------------------------------

Maak 0.14.0: the infinitely extensible command runner

Loading tasks from Maak file: /etc/byggsteg/job-clone/veritas/trunk/maak.scm

Executing Maak tasks: deploy


--------------------------------------------------------------

=> Running Maak task: deploy

  Publish the API docs.
API documentation saved to doc/api
;;; note: source file /etc/byggsteg/job-clone/veritas/trunk/src/veritas/cli.scm
;;;       newer than compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/veritas/trunk/src/veritas/cli.scm.go
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /etc/byggsteg/job-clone/veritas/trunk/src/veritas/cli.scm
;;; compiled /root/.cache/guile/ccache/3.0-LE-8-4.6/etc/byggsteg/job-clone/veritas/trunk/src/veritas/cli.scm.go
index.texi:5271: warning: @end should only appear at the beginning of a line
index.texi:5286: warning: @end should only appear at the beginning of a line
index.texi:5305: warning: @end should only appear at the beginning of a line
index.texi:5320: warning: @end should only appear at the beginning of a line
index.texi:5336: warning: @end should only appear at the beginning of a line
index.texi:5352: warning: @end should only appear at the beginning of a line
index.texi: warning: must specify a title with a title command or @top

  Execute command:
guix time-machine --channels=channels.scm -- shell -m manifest.scm -- documenta api ./src/veritas

Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- documenta api ./src/veritas

  Execute command:
guix time-machine --channels=channels.scm -- shell -m manifest.scm -- texi2any -v --html --css-ref=https://jointhefreeworld.org/static/css/jointhefreeworld.css -o index_html ./doc/api/index.texi

Executing: guix time-machine --channels=channels.scm -- shell -m manifest.scm -- texi2any -v --html --css-ref=https://jointhefreeworld.org/static/css/jointhefreeworld.css -o index_html ./doc/api/index.texi
renamed './index_html' -> './doc/api-dist'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/API.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fall.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fassert.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fbdd.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fcli.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fcontainer.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fcoverage.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fdiff.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fgenerator.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fimpact.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fmock.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fmodel.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fprelude.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fproperty.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005freporter.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005frunner.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fshuffle.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fsnapshot.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005ftable.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005ftrace.html'
removed '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fveritas.html'
removed directory '/srv/http/jointhefreeworld.org/api-docs/veritas'
mkdir: created directory '/srv/http/jointhefreeworld.org/api-docs/veritas'
renamed 'doc/api-dist/API.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/API.html'
renamed 'doc/api-dist/veritas_005fall.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fall.html'
renamed 'doc/api-dist/veritas_005fassert.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fassert.html'
renamed 'doc/api-dist/veritas_005fbdd.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fbdd.html'
renamed 'doc/api-dist/veritas_005fcli.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fcli.html'
renamed 'doc/api-dist/veritas_005fcontainer.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fcontainer.html'
renamed 'doc/api-dist/veritas_005fcoverage.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fcoverage.html'
renamed 'doc/api-dist/veritas_005fdiff.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fdiff.html'
renamed 'doc/api-dist/veritas_005fgenerator.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fgenerator.html'
renamed 'doc/api-dist/veritas_005fimpact.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fimpact.html'
renamed 'doc/api-dist/veritas_005fmock.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fmock.html'
renamed 'doc/api-dist/veritas_005fmodel.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fmodel.html'
renamed 'doc/api-dist/veritas_005fprelude.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fprelude.html'
renamed 'doc/api-dist/veritas_005fproperty.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fproperty.html'
renamed 'doc/api-dist/veritas_005freporter.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005freporter.html'
renamed 'doc/api-dist/veritas_005frunner.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005frunner.html'
renamed 'doc/api-dist/veritas_005fshuffle.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fshuffle.html'
renamed 'doc/api-dist/veritas_005fsnapshot.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fsnapshot.html'
renamed 'doc/api-dist/veritas_005ftable.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005ftable.html'
renamed 'doc/api-dist/veritas_005ftrace.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005ftrace.html'
renamed 'doc/api-dist/veritas_005fveritas.html' -> '/srv/http/jointhefreeworld.org/api-docs/veritas/veritas_005fveritas.html'

Executing: mv -v doc/api-dist/* /srv/http/jointhefreeworld.org/api-docs/veritas
removed 'doc/api/index.texi'
removed directory 'doc/api'
removed directory 'doc/api-dist'
removed directory 'doc'
build diagnostics9 warnings, 0 errors
inspect the job's lambda expression
(lambda()
  `((task . ("maak-test" "maak-deploy"))
    (project . "veritas")
    (branch-name . "trunk")
    (clone-url . "https://github.com/jjba23/veritas.git")))