2026-04-14 08:11.30: New job: test hannesm/duration https://github.com/hannesm/duration.git#refs/heads/main (0b278aa46102707d3c8b4633dd408862b30f6643) (linux-arm64:debian-13-5.4_arm64_opam-2.5) Base: ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a Opam project build To reproduce locally: git clone --recursive "https://github.com/hannesm/duration.git" -b "main" && cd "duration" && git reset --hard 0b278aa4 cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a # 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 5f7bb1a6e69f1ea15d8b2b08eeaa70a162c6fd41 || git fetch origin master) && git reset -q --hard 5f7bb1a6e69f1ea15d8b2b08eeaa70a162c6fd41 && 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.0 dune.3.22.2 fmt.0.11.0 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 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-14 08:11.30: Using cache hint "hannesm/duration-ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a-debian-13-5.4_arm64_opam-2.5-381a1fa91cfe9ab0899a8da557fb82c2" 2026-04-14 08:11.30: Using OBuilder spec: ((from ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a) (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 5f7bb1a6e69f1ea15d8b2b08eeaa70a162c6fd41 || git fetch origin master) && git reset -q --hard 5f7bb1a6e69f1ea15d8b2b08eeaa70a162c6fd41 && 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.0 dune.3.22.2 fmt.0.11.0 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 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-14 08:11.30: Waiting for resource in pool OCluster 2026-04-14 08:41.44: Waiting for worker… 2026-04-14 09:02.53: Got resource from pool OCluster Building on kydoime.caelum.ci.dev All commits already cached HEAD is now at 0b278aa changes for 0.3.0 (from ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a) Unable to find image 'ocaml/opam:debian-13-ocaml-5.4@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a' locally docker.io/ocaml/opam@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a: Pulling from ocaml/opam ac9148dc57ca: Pulling fs layer 7888403f6ebd: Pulling fs layer c624d8e138d3: Pulling fs layer bae5329cb92a: Pulling fs layer 6228156e24ec: Pulling fs layer d851fec6b77f: Pulling fs layer 45e3afcdcfef: Pulling fs layer b3e7f2150c0a: Pulling fs layer 91048a8ba3a7: Pulling fs layer 26a15cffb83a: Pulling fs layer 3c2f2520de0f: Pulling fs layer 9f731cc5daa6: Pulling fs layer 0809377d5f3c: Pulling fs layer ec4e42e8f98c: Pulling fs layer 065e3401ccf2: Pulling fs layer bce3ceded749: Pulling fs layer c4a4a6ab703b: Pulling fs layer 6228156e24ec: Waiting aa84bc2cf05b: Pulling fs layer 0fb96351134e: Pulling fs layer d851fec6b77f: Waiting 45e3afcdcfef: Waiting 91048a8ba3a7: Waiting a1735f92ccde: Pulling fs layer b3e7f2150c0a: Waiting dce836972d90: Pulling fs layer 8a0c641e2184: Pulling fs layer bae5329cb92a: Waiting 4f4fb700ef54: Pulling fs layer 44a2b50d619a: Pulling fs layer 26a15cffb83a: Waiting e27f63ab21e8: Pulling fs layer 3c2f2520de0f: Waiting 826c3a0f7d41: Pulling fs layer ec4e42e8f98c: Waiting 7fe544c7b3e6: Pulling fs layer 9f731cc5daa6: Waiting 0809377d5f3c: Waiting 065e3401ccf2: Waiting efa4af957d6d: Pulling fs layer bce3ceded749: Waiting a2fa2f09a7e4: Pulling fs layer c4a4a6ab703b: Waiting a1735f92ccde: Waiting aa84bc2cf05b: Waiting 3e0efbdba3cc: Pulling fs layer dce836972d90: Waiting 4f299997ffd7: Pulling fs layer 0fb96351134e: Waiting 8a0c641e2184: Waiting f868b4e81e65: Pulling fs layer 87577251fd14: Pulling fs layer 4f4fb700ef54: Waiting a2fa2f09a7e4: Waiting 7fe544c7b3e6: Waiting 826c3a0f7d41: Waiting e27f63ab21e8: Waiting f868b4e81e65: Waiting 5e9e2e42ec71: Pulling fs layer 44a2b50d619a: Waiting 4f299997ffd7: Waiting 99812197be51: Pulling fs layer 87577251fd14: Waiting 5e9e2e42ec71: Waiting 8b48f92b9c03: Pulling fs layer 99812197be51: Waiting 3e0efbdba3cc: Waiting 6336fa3f0edf: Pulling fs layer 8b48f92b9c03: Waiting f03483f6ff47: Pulling fs layer 26c2642c44cf: Pulling fs layer 35e7bc3e512e: Pulling fs layer fb2e4e264f0c: Pulling fs layer aa2081614483: Pulling fs layer 6336fa3f0edf: Waiting 526a1409cb54: Pulling fs layer 26c2642c44cf: Waiting fb2e4e264f0c: Waiting f03483f6ff47: Waiting 3a2eac8aba41: Pulling fs layer 663c0b5229f0: Pulling fs layer aa2081614483: Waiting f07447d54e12: Pulling fs layer 663c0b5229f0: Waiting 8eca58e2e466: Pulling fs layer 269ed2830268: Pulling fs layer f07447d54e12: Waiting 35e7bc3e512e: Waiting 269ed2830268: Waiting 8eca58e2e466: Waiting 526a1409cb54: Waiting 3a2eac8aba41: Waiting 7888403f6ebd: Verifying Checksum 7888403f6ebd: Download complete c624d8e138d3: Download complete 6228156e24ec: Download complete bae5329cb92a: Download complete ac9148dc57ca: Verifying Checksum ac9148dc57ca: Download complete 45e3afcdcfef: Verifying Checksum 45e3afcdcfef: Download complete b3e7f2150c0a: Verifying Checksum b3e7f2150c0a: Download complete 26a15cffb83a: Verifying Checksum 26a15cffb83a: Download complete 91048a8ba3a7: Verifying Checksum 91048a8ba3a7: Download complete 3c2f2520de0f: Verifying Checksum 3c2f2520de0f: Download complete ac9148dc57ca: Pull complete 7888403f6ebd: Pull complete c624d8e138d3: Pull complete 9f731cc5daa6: Verifying Checksum 9f731cc5daa6: Download complete bae5329cb92a: Pull complete 6228156e24ec: Pull complete 0809377d5f3c: Verifying Checksum 0809377d5f3c: Download complete ec4e42e8f98c: Verifying Checksum ec4e42e8f98c: Download complete 065e3401ccf2: Download complete bce3ceded749: Verifying Checksum bce3ceded749: Download complete c4a4a6ab703b: Download complete aa84bc2cf05b: Verifying Checksum aa84bc2cf05b: Download complete 0fb96351134e: Verifying Checksum 0fb96351134e: Download complete a1735f92ccde: Verifying Checksum a1735f92ccde: Download complete dce836972d90: Download complete 4f4fb700ef54: Verifying Checksum 4f4fb700ef54: Download complete 8a0c641e2184: Verifying Checksum 8a0c641e2184: Download complete 44a2b50d619a: Verifying Checksum 44a2b50d619a: Download complete e27f63ab21e8: Verifying Checksum e27f63ab21e8: Download complete 7fe544c7b3e6: Download complete 826c3a0f7d41: Download complete efa4af957d6d: Verifying Checksum efa4af957d6d: Download complete a2fa2f09a7e4: Verifying Checksum a2fa2f09a7e4: Download complete d851fec6b77f: Verifying Checksum d851fec6b77f: Download complete 3e0efbdba3cc: Verifying Checksum 3e0efbdba3cc: Download complete 4f299997ffd7: Verifying Checksum 4f299997ffd7: Download complete f868b4e81e65: Verifying Checksum f868b4e81e65: Download complete 87577251fd14: Verifying Checksum 87577251fd14: Download complete 5e9e2e42ec71: Verifying Checksum 5e9e2e42ec71: Download complete 99812197be51: Verifying Checksum 99812197be51: Download complete 6336fa3f0edf: Verifying Checksum 6336fa3f0edf: Download complete 26c2642c44cf: Verifying Checksum 26c2642c44cf: Download complete 35e7bc3e512e: Verifying Checksum 35e7bc3e512e: Download complete fb2e4e264f0c: Verifying Checksum fb2e4e264f0c: Download complete aa2081614483: Download complete 526a1409cb54: Download complete 3a2eac8aba41: Verifying Checksum 3a2eac8aba41: Download complete f03483f6ff47: Verifying Checksum f03483f6ff47: Download complete f07447d54e12: Verifying Checksum f07447d54e12: Download complete 8eca58e2e466: Verifying Checksum 8eca58e2e466: Download complete 269ed2830268: Verifying Checksum 269ed2830268: Download complete d851fec6b77f: Pull complete 45e3afcdcfef: Pull complete b3e7f2150c0a: Pull complete 91048a8ba3a7: Pull complete 26a15cffb83a: Pull complete 663c0b5229f0: Verifying Checksum 663c0b5229f0: Download complete 3c2f2520de0f: Pull complete 9f731cc5daa6: Pull complete 0809377d5f3c: Pull complete ec4e42e8f98c: Pull complete 065e3401ccf2: Pull complete bce3ceded749: Pull complete c4a4a6ab703b: Pull complete aa84bc2cf05b: Pull complete 0fb96351134e: Pull complete a1735f92ccde: Pull complete dce836972d90: Pull complete 8a0c641e2184: Pull complete 4f4fb700ef54: Pull complete 44a2b50d619a: Pull complete e27f63ab21e8: Pull complete 826c3a0f7d41: Pull complete 7fe544c7b3e6: Pull complete efa4af957d6d: Pull complete a2fa2f09a7e4: Pull complete 3e0efbdba3cc: Pull complete 4f299997ffd7: Pull complete f868b4e81e65: Pull complete 87577251fd14: Pull complete 5e9e2e42ec71: Pull complete 99812197be51: Pull complete 8b48f92b9c03: Download complete 8b48f92b9c03: Pull complete 6336fa3f0edf: Pull complete f03483f6ff47: Pull complete 26c2642c44cf: Pull complete 35e7bc3e512e: Pull complete fb2e4e264f0c: Pull complete aa2081614483: Pull complete 526a1409cb54: Pull complete 3a2eac8aba41: Pull complete 663c0b5229f0: Pull complete f07447d54e12: Pull complete 8eca58e2e466: Pull complete 269ed2830268: Pull complete Digest: sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a Status: Downloaded newer image for ocaml/opam@sha256:c1830cb89505d82ce4f4b4097f1d002748603cb00382aa65e938776c377fa13a 2026-04-14 09:02.53 ---> using "d3aef2d93064c0f54a54ca210e09e3e24634a77abbb58d114299d90d4843ce0d" 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-14 09:02.53 ---> using "26fbe6c6f6005ce5948b37f283839b24f93e5ed4d96bbb09998ab7c0ef2162df" 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-14 09:02.53 ---> using "7c4abe0c556bf71da30fbdbef06c92f36bad545e3ab8919a0691b5d347cee360" 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.0 2.5.0 2026-04-14 09:02.53 ---> using "6cb0208b5c98d92a52f29957d4c163cc844d1602926f5fdab97837e3ced98827" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2026-04-14 09:02.53 ---> using "d6529484688c91d5d67aa4125460c67769e01fb0c9a9c84795637f03b8c38f5b" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e 5f7bb1a6e69f1ea15d8b2b08eeaa70a162c6fd41 || git fetch origin master) && git reset -q --hard 5f7bb1a6e69f1ea15d8b2b08eeaa70a162c6fd41 && git log --no-decorate -n1 --oneline && opam update -u")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD ffb54b9bdd..5f7bb1a6e6 master -> origin/master 5f7bb1a6e6 Merge pull request #29704 from shonfeder/release-dune-3.22.2 <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository Everything as up-to-date as possible (run with --verbose to show unavailable upgrades). 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-14 09:02.53 ---> using "1e407fcfb0a9f9ee605b614b3c5f5611d39075a59c54b1e090f283158ed1d6a7" from cache /src: (copy (src duration.opam) (dst ./)) 2026-04-14 09:02.53 ---> saved as "deaf809f60fcb903bd43295c8767b392c17c58b2a5d1122aafc47685fa2ad26e" /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-14 09:02.55 ---> saved as "c08a3036101998e2deb93285e800a045bd436931f63252e8a221e2c9c79a0cdd" /src: (run (shell "echo '(lang dune 3.0)' > './dune-project'")) 2026-04-14 09:02.55 ---> saved as "57f286d82a2f97e3d972d51bb33eb10525021f7e8a1f26e7a0d67ddcc9694774" /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.0 dune.3.22.2 fmt.0.11.0 ocaml.5.4.0 ocaml-base-compiler.5.4.0 ocaml-compiler.5.4.0 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" - Get:1 http://deb.debian.org/debian trixie InRelease [140 kB] - 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 trixie/main arm64 Packages [9607 kB] - Get:5 http://deb.debian.org/debian-security trixie-security/main arm64 Packages [122 kB] - Fetched 9960 kB in 1s (8288 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.0). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0). [NOTE] Package ocaml is already installed (current version is 5.4.0). [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-14 09:03.05 ---> saved as "0dce5c168eb8af3e3ef751a6f93107f73a11295c26e0154c293c20055d4f653e" /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.0). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.0). [NOTE] Package ocaml is already installed (current version is 5.4.0). [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.0 - 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.0 (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.0 -> 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-14 09:03.47 ---> saved as "abf2b0015fc735d2bc0b828093137355719aedf6b5b0acbc4e87ec1f469a1869" /src: (copy (src .) (dst /src)) 2026-04-14 09:03.47 ---> saved as "7c68068586f255f7b14e3f9345b26c897fb0b2d79026a4a182683e00a16ec2a1" /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 `5HR06SZJ'. [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-14 09:03.48 ---> saved as "0748177ed8e884a70de56d9073ff832e905f2a93ec58d49d8c4646b2ddb6aca7" Job succeeded 2026-04-14 09:03.48: Job succeeded