Organisationshannesmduration7bf34d (main)debian-13-5.4_arm64_opam-2.5

debian-13-5.4_arm64_opam-2.5

Logs

Show full logs
2026-04-22 14:13.06: New job: test hannesm/duration https://github.com/hannesm/duration.git#refs/heads/main (7bf34d3c03586b9a8680a617f2b3a30f16513710) (linux-arm64:debian-13-5.4_arm64_opam-2.5)
Base: ocaml/opam:debian-13-ocaml-5.4@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981
Opam project build

To reproduce locally:

git clone --recursive "https://github.com/hannesm/duration.git" -b "main" && cd "duration" && git reset --hard 7bf34d3c
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-5.4@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981
# debian-13-5.4_arm64_opam-2.5
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam
RUN opam init --reinit -ni
RUN uname -rs && opam exec -- ocaml -version && opam --version
WORKDIR /src
RUN sudo chown opam /src
RUN cd ~/opam-repository && (git cat-file -e 036883c5402b41e0d35f6b200245cc7c3a302395 || git fetch origin master) && git reset -q --hard 036883c5402b41e0d35f6b200245cc7c3a302395 && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 duration.opam ./
RUN opam pin add -yn duration.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base cmdliner.2.1.1 dune.3.22.2 fmt.0.11.0 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.14.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.5 --depext-only -y duration.dev $DEPS
RUN opam install $DEPS
COPY --chown=1000:1000 . /src
RUN opam exec -- dune build @install @check @runtest && rm -rf _build

END-OF-DOCKERFILE
docker build .
END-REPRO-BLOCK

2026-04-22 14:13.06: Using cache hint "hannesm/duration-ocaml/opam:debian-13-ocaml-5.4@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981-debian-13-5.4_arm64_opam-2.5-479d0115ba77288130e28315e39467a5"
2026-04-22 14:13.06: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-5.4@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981)
 (comment debian-13-5.4_arm64_opam-2.5)
 (user (uid 1000) (gid 1000))
 (env CLICOLOR_FORCE 1)
 (env OPAMCOLOR always)
 (workdir /src)
 (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam"))
 (run (shell "opam init --reinit -ni"))
 (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
 (workdir /src)
 (run (shell "sudo chown opam /src"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "cd ~/opam-repository && (git cat-file -e 036883c5402b41e0d35f6b200245cc7c3a302395 || git fetch origin master) && git reset -q --hard 036883c5402b41e0d35f6b200245cc7c3a302395 && git log --no-decorate -n1 --oneline && opam update -u"))
 (copy (src duration.opam) (dst ./))
 (run (network host)
      (shell "opam pin add -yn duration.dev './'"))
 (run (shell "echo '(lang dune 3.0)' > './dune-project'"))
 (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base cmdliner.2.1.1 dune.3.22.2 fmt.0.11.0 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.14.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4")
 (env CI true)
 (env OCAMLCI true)
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y duration.dev $DEPS"))
 (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "opam install $DEPS"))
 (copy (src .) (dst /src))
 (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
)

2026-04-22 14:13.06: Waiting for resource in pool OCluster
2026-04-22 15:05.08: Waiting for worker…
2026-04-22 15:21.07: Got resource from pool OCluster
Building on kydoime.caelum.ci.dev
All commits already cached
HEAD is now at 7bf34d3 changes for 0.3.1

(from ocaml/opam:debian-13-ocaml-5.4@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981)
Unable to find image 'ocaml/opam:debian-13-ocaml-5.4@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981' locally
docker.io/ocaml/opam@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981: Pulling from ocaml/opam
912041a7b9f6: Pulling fs layer
384913182f58: Pulling fs layer
e7afd92310f2: Pulling fs layer
4c463b0e2a83: Pulling fs layer
414acffd690a: Pulling fs layer
e9fe6906cc38: Pulling fs layer
de3b3e62a756: Pulling fs layer
3099becd7ce0: Pulling fs layer
070a3c5c3800: Pulling fs layer
0a1f5b6ab287: Pulling fs layer
9c0a2ac17ad8: Pulling fs layer
bd2582e07236: Pulling fs layer
97e17cd4d04c: Pulling fs layer
f448a6398a51: Pulling fs layer
457e4400863c: Pulling fs layer
fca49b31ca13: Pulling fs layer
14e2b0fb3b32: Pulling fs layer
3274c4c203d0: Pulling fs layer
c94da4bc4f13: Pulling fs layer
b0b816efbd05: Pulling fs layer
dd657d165857: Pulling fs layer
4f4fb700ef54: Pulling fs layer
e9fe6906cc38: Waiting
1939844c1e42: Pulling fs layer
de3b3e62a756: Waiting
a12f397df222: Pulling fs layer
61a60d8f7b0a: Pulling fs layer
3099becd7ce0: Waiting
070a3c5c3800: Waiting
27115b0e59d9: Pulling fs layer
0a1f5b6ab287: Waiting
ee225e26bcf0: Pulling fs layer
9c0a2ac17ad8: Waiting
bd2582e07236: Waiting
05b5a741b2da: Pulling fs layer
97e17cd4d04c: Waiting
4c463b0e2a83: Waiting
82107d8efc45: Pulling fs layer
dcf25205b3b2: Pulling fs layer
414acffd690a: Waiting
f448a6398a51: Waiting
dd1d2b63e706: Pulling fs layer
457e4400863c: Waiting
89f96c977b1d: Pulling fs layer
fca49b31ca13: Waiting
64836cc68637: Pulling fs layer
14e2b0fb3b32: Waiting
4f4fb700ef54: Waiting
05682ec10158: Pulling fs layer
3274c4c203d0: Waiting
bb5304ad554a: Pulling fs layer
1939844c1e42: Waiting
c94da4bc4f13: Waiting
a12f397df222: Waiting
bdeefdd5c13a: Pulling fs layer
b0b816efbd05: Waiting
61a60d8f7b0a: Waiting
8fc5309d3aa8: Pulling fs layer
dd657d165857: Waiting
587f1186af6b: Pulling fs layer
baa1f11944d3: Pulling fs layer
27115b0e59d9: Waiting
0c53051b4d52: Pulling fs layer
ee225e26bcf0: Waiting
89f96c977b1d: Waiting
05b5a741b2da: Waiting
9e4c409346b6: Pulling fs layer
64836cc68637: Waiting
82107d8efc45: Waiting
63f3735f26e9: Pulling fs layer
dcf25205b3b2: Waiting
d83dffd5b939: Pulling fs layer
dd1d2b63e706: Waiting
05682ec10158: Waiting
ab7b906a152e: Pulling fs layer
5bed40dbb244: Pulling fs layer
baa1f11944d3: Waiting
bb5304ad554a: Waiting
8fc5309d3aa8: Waiting
235b11023dc5: Pulling fs layer
0c53051b4d52: Waiting
bdeefdd5c13a: Waiting
b948046d8c24: Pulling fs layer
587f1186af6b: Waiting
9e4c409346b6: Waiting
5bed40dbb244: Waiting
235b11023dc5: Waiting
d83dffd5b939: Waiting
63f3735f26e9: Waiting
b948046d8c24: Waiting
ab7b906a152e: Waiting
384913182f58: Verifying Checksum
384913182f58: Download complete
e7afd92310f2: Verifying Checksum
e7afd92310f2: Download complete
912041a7b9f6: Verifying Checksum
912041a7b9f6: Download complete
414acffd690a: Verifying Checksum
414acffd690a: Download complete
4c463b0e2a83: Verifying Checksum
4c463b0e2a83: Download complete
3099becd7ce0: Download complete
de3b3e62a756: Verifying Checksum
de3b3e62a756: Download complete
0a1f5b6ab287: Verifying Checksum
0a1f5b6ab287: Download complete
070a3c5c3800: Verifying Checksum
070a3c5c3800: Download complete
bd2582e07236: Verifying Checksum
9c0a2ac17ad8: Verifying Checksum
9c0a2ac17ad8: Download complete
912041a7b9f6: Pull complete
384913182f58: Pull complete
e7afd92310f2: Pull complete
f448a6398a51: Verifying Checksum
f448a6398a51: Download complete
e9fe6906cc38: Download complete
97e17cd4d04c: Verifying Checksum
97e17cd4d04c: Download complete
4c463b0e2a83: Pull complete
fca49b31ca13: Verifying Checksum
fca49b31ca13: Download complete
457e4400863c: Verifying Checksum
457e4400863c: Download complete
14e2b0fb3b32: Verifying Checksum
14e2b0fb3b32: Download complete
414acffd690a: Pull complete
3274c4c203d0: Verifying Checksum
3274c4c203d0: Download complete
b0b816efbd05: Download complete
c94da4bc4f13: Verifying Checksum
c94da4bc4f13: Download complete
4f4fb700ef54: Download complete
1939844c1e42: Verifying Checksum
dd657d165857: Verifying Checksum
dd657d165857: Download complete
a12f397df222: Verifying Checksum
a12f397df222: Download complete
61a60d8f7b0a: Verifying Checksum
61a60d8f7b0a: Download complete
27115b0e59d9: Verifying Checksum
27115b0e59d9: Download complete
ee225e26bcf0: Verifying Checksum
ee225e26bcf0: Download complete
05b5a741b2da: Verifying Checksum
05b5a741b2da: Download complete
82107d8efc45: Verifying Checksum
82107d8efc45: Download complete
dcf25205b3b2: Verifying Checksum
dcf25205b3b2: Download complete
dd1d2b63e706: Verifying Checksum
89f96c977b1d: Verifying Checksum
89f96c977b1d: Download complete
64836cc68637: Verifying Checksum
64836cc68637: Download complete
05682ec10158: Verifying Checksum
05682ec10158: Download complete
587f1186af6b: Download complete
0c53051b4d52: Verifying Checksum
0c53051b4d52: Download complete
9e4c409346b6: Verifying Checksum
9e4c409346b6: Download complete
63f3735f26e9: Verifying Checksum
63f3735f26e9: Download complete
d83dffd5b939: Verifying Checksum
d83dffd5b939: Download complete
ab7b906a152e: Verifying Checksum
ab7b906a152e: Download complete
5bed40dbb244: Download complete
235b11023dc5: Download complete
e9fe6906cc38: Pull complete
b948046d8c24: Verifying Checksum
b948046d8c24: Download complete
de3b3e62a756: Pull complete
8fc5309d3aa8: Verifying Checksum
8fc5309d3aa8: Download complete
3099becd7ce0: Pull complete
070a3c5c3800: Pull complete
bb5304ad554a: Verifying Checksum
bb5304ad554a: Download complete
0a1f5b6ab287: Pull complete
9c0a2ac17ad8: Pull complete
bd2582e07236: Pull complete
97e17cd4d04c: Pull complete
f448a6398a51: Pull complete
457e4400863c: Pull complete
fca49b31ca13: Pull complete
14e2b0fb3b32: Pull complete
3274c4c203d0: Pull complete
c94da4bc4f13: Pull complete
b0b816efbd05: Pull complete
dd657d165857: Pull complete
4f4fb700ef54: Pull complete
1939844c1e42: Pull complete
a12f397df222: Pull complete
61a60d8f7b0a: Pull complete
27115b0e59d9: Pull complete
ee225e26bcf0: Pull complete
05b5a741b2da: Pull complete
82107d8efc45: Pull complete
dcf25205b3b2: Pull complete
dd1d2b63e706: Pull complete
89f96c977b1d: Pull complete
64836cc68637: Pull complete
05682ec10158: Pull complete
bb5304ad554a: Pull complete
bdeefdd5c13a: Pull complete
8fc5309d3aa8: Pull complete
587f1186af6b: Pull complete
baa1f11944d3: Pull complete
0c53051b4d52: Pull complete
9e4c409346b6: Pull complete
63f3735f26e9: Pull complete
d83dffd5b939: Pull complete
ab7b906a152e: Pull complete
5bed40dbb244: Pull complete
235b11023dc5: Pull complete
b948046d8c24: Pull complete
Digest: sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981
Status: Downloaded newer image for ocaml/opam@sha256:9e336bd0d3030e5c8bf370816f5f12a9a305f14093690ecfcb61804cf309f981
2026-04-22 15:21.09 ---> using "fedff45d71f4e2a7219b04789e723fe5dc928d6bd0c027a3b2fc4ad43336df83" from cache

/: (comment debian-13-5.4_arm64_opam-2.5)

/: (user (uid 1000) (gid 1000))

/: (env CLICOLOR_FORCE 1)

/: (env OPAMCOLOR always)

/: (workdir /src)

/src: (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam"))
2026-04-22 15:21.09 ---> using "2b92c518bc1a34fc4f618b52856237a94786e68f750d863a8d6f584d753cda16" from cache

/src: (run (shell "opam init --reinit -ni"))
Configuring from /home/opam/.opamrc and then from built-in defaults.
Checking for available remotes: rsync and local, git.
  - you won't be able to use mercurial repositories unless you install the hg command on your system.
  - you won't be able to use darcs repositories unless you install the darcs command on your system.

This version of opam requires an update to the layout of /home/opam/.opam from version 2.0 to version 2.2, which can't be reverted.
You may want to back it up before going further.

Continue? [Y/n] y
Format upgrade done.

<><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><>
[default] Initialised
2026-04-22 15:21.09 ---> using "d605141c553345cb16d517d1744672971ce851dddb26488685a94b2fb5d78853" from cache

/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 6.8.0-107-generic
The OCaml toplevel, version 5.4.1
2.5.1
2026-04-22 15:21.09 ---> using "3559373d7fa50fbee667544be91f891f29a3cc7d7c5628c2c46262b5e4f93c74" from cache

/src: (workdir /src)

/src: (run (shell "sudo chown opam /src"))
2026-04-22 15:21.09 ---> using "3774ca1ecb4fa65a25868b4a7b15652de324e19cef52c484899c3233dcfb5b85" from cache

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "cd ~/opam-repository && (git cat-file -e 036883c5402b41e0d35f6b200245cc7c3a302395 || git fetch origin master) && git reset -q --hard 036883c5402b41e0d35f6b200245cc7c3a302395 && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
 * branch                  master     -> FETCH_HEAD
   d78d992b37..80ba534fc6  master     -> origin/master
036883c540 Merge pull request #29788 from dbuenzli/b0-publish-cmdliner.2.1.1

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] synchronised from git+file:///home/opam/opam-repository

Everything as up-to-date as possible
However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.5.0"), which will ask permission to downgrade or uninstall the conflicting packages.
Nothing to do.
# To update the current shell environment, run: eval $(opam env)
2026-04-22 15:21.09 ---> using "d6d1c014130c96f2da1ee83936344b9bd95d3e8e6aaf3f8de480215b5a15def9" from cache

/src: (copy (src duration.opam) (dst ./))
2026-04-22 15:21.10 ---> saved as "0a2100a271d76230ec0776de38a64a57aabc1149e7d073c92a79ca6b6cd1a2cf"

/src: (run (network host)
           (shell "opam pin add -yn duration.dev './'"))
[duration.dev] synchronised (file:///src)
duration is now pinned to file:///src (version dev)
2026-04-22 15:21.12 ---> saved as "03e8acf17ba2ec32423e32e22f6ce2272f34ce23443e8020494c96003a0c5172"

/src: (run (shell "echo '(lang dune 3.0)' > './dune-project'"))
2026-04-22 15:21.12 ---> saved as "c58bf61077a23a3b0584bb5b9609b71ecd5214b317284b0ad0427dd1a460ed90"

/src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base cmdliner.2.1.1 dune.3.22.2 fmt.0.11.0 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 re.1.14.0 stdlib-shims.0.3.0 topkg.1.1.1 uutf.1.0.4")

/src: (env CI true)

/src: (env OCAMLCI true)

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y duration.dev $DEPS"))
+ /usr/bin/sudo "apt-get" "update"
- Hit:1 http://deb.debian.org/debian trixie InRelease
- Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
- Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
- Get:4 http://deb.debian.org/debian-security trixie-security/main arm64 Packages [126 kB]
- Fetched 217 kB in 0s (1573 kB/s)
- Reading package lists...

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[duration.dev] synchronised (file:///src)

[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.4.1).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.1).
[NOTE] Package ocaml is already installed (current version is 5.4.1).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
# To update the current shell environment, run: eval $(opam env)
2026-04-22 15:21.22 ---> saved as "15fec5301e039bcf57870da7e8af14273ea4e9ae04525df7a2a3c17453b72c2a"

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "opam install $DEPS"))
[NOTE] Package ocaml-options-vanilla is already installed (current version is 1).
[NOTE] Package ocaml-config is already installed (current version is 3).
[NOTE] Package ocaml-compiler is already installed (current version is 5.4.1).
[NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.1).
[NOTE] Package ocaml is already installed (current version is 5.4.1).
[NOTE] Package base-unix is already installed (current version is base).
[NOTE] Package base-threads is already installed (current version is base).
[NOTE] Package base-nnp is already installed (current version is base).
[NOTE] Package base-effects is already installed (current version is base).
[NOTE] Package base-domains is already installed (current version is base).
[NOTE] Package base-bigarray is already installed (current version is base).
The following actions will be performed:
=== install 12 packages
  - install alcotest           1.9.1
  - install astring            0.8.5
  - install cmdliner           2.1.1
  - install dune               3.22.2
  - install fmt                0.11.0
  - install ocaml-syntax-shims 1.0.0
  - install ocamlbuild         0.16.1
  - install ocamlfind          1.9.8
  - install re                 1.14.0
  - install stdlib-shims       0.3.0
  - install topkg              1.1.1
  - install uutf               1.0.4

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved cmdliner.2.1.1  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved uutf.1.0.4  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved dune.3.22.2  (cached)
-> installed cmdliner.2.1.1
-> installed ocamlfind.1.9.8
-> installed ocamlbuild.0.16.1
-> installed topkg.1.1.1
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed dune.3.22.2
-> installed stdlib-shims.0.3.0
-> installed ocaml-syntax-shims.1.0.0
-> installed re.1.14.0
-> installed alcotest.1.9.1
Done.
# To update the current shell environment, run: eval $(opam env)
2026-04-22 15:22.09 ---> saved as "dd45e604ff25c0083801605143999730f12a76650ce2c4391ed6a25f2f57e650"

/src: (copy (src .) (dst /src))
2026-04-22 15:22.09 ---> saved as "9381fff5ce7ddfd9a13f0fb226d1f3a9813b0629161e7aeae16285bda49680e8"

/src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build"))
(cd _build/default && ./tests.exe)
Testing `Duration tests'.
This run has ID `38T7H29L'.

  [OK]          Duration          0   of_us is good.
  [OK]          Duration          1   to_us is good.
  [OK]          Duration          2   inverse of/to_us.
  [OK]          Duration          3   of_us is good.
  [OK]          Duration          4   to_us is good.
  [OK]          Duration          5   inverse of/to_us.
  [OK]          Duration          6   of_ms is good.
  [OK]          Duration          7   to_ms is good.
  [OK]          Duration          8   inverse of/to_ms.
  [OK]          Duration          9   of_ms is good.
  [OK]          Duration         10   to_ms is good.
  [OK]          Duration         11   inverse of/to_ms.
  [OK]          Duration         12   of_sec is good.
  [OK]          Duration         13   to_sec is good.
  [OK]          Duration         14   inverse of/to_sec.
  [OK]          Duration         15   of_sec is good.
  [OK]          Duration         16   to_sec is good.
  [OK]          Duration         17   inverse of/to_sec.
  [OK]          Duration         18   of_min is good.
  [OK]          Duration         19   to_min is good.
  [OK]          Duration         20   inverse of/to_min.
  [OK]          Duration         21   of_hour is good.
  [OK]          Duration         22   to_hour is good.
  [OK]          Duration         23   inverse of/to_hour.
  [OK]          Duration         24   of_day is good.
  [OK]          Duration         25   to_day is good.
  [OK]          Duration         26   inverse of/to_day.
  [OK]          Duration         27   of_year is good.
  [OK]          Duration         28   to_year is good.
  [OK]          Duration         29   inverse of/to_year.
  [OK]          Duration         30   of_f is good.
  [OK]          Duration         31   to_f is good.
  [OK]          Duration         32   inverse of/to_f.
  [OK]          Duration         33   of_string_exn.
  [OK]          Duration         34   of_string_exn: composite.
  [OK]          Duration         35   of_string_exn: duplicate metrics.
  [OK]          Duration         36   of_string_exn: invalid metric.
  [OK]          Duration         37   of_string_exn: malformed input.
  [OK]          Duration         38   of_string_exn: out of range.
  [OK]          Duration         39   of_string_exn: empty string.

Full test results in `/src/_build/default/_build/_tests/Duration tests'.
Test Successful in 0.003s. 40 tests run.
2026-04-22 15:22.10 ---> saved as "60e47fafe1f15a8aafd6353e5f0b8614aba1edca62194a903c7be3797f7edb2e"
Job succeeded
2026-04-22 15:22.10: Job succeeded