2026-04-22 14:13.06: New job: test hannesm/duration https://github.com/hannesm/duration.git#refs/heads/main (7bf34d3c03586b9a8680a617f2b3a30f16513710) (linux-x86_64:fedora-42-5.4_opam-2.5) Base: ocaml/opam:fedora-42-ocaml-5.4@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb 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:fedora-42-ocaml-5.4@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb # fedora-42-5.4_opam-2.5 USER 1000:1000 ENV CLICOLOR_FORCE="1" ENV OPAMCOLOR="always" WORKDIR /src RUN sudo dnf install -y findutils 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:fedora-42-ocaml-5.4@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb-fedora-42-5.4_opam-2.5-479d0115ba77288130e28315e39467a5" 2026-04-22 14:13.06: Using OBuilder spec: ((from ocaml/opam:fedora-42-ocaml-5.4@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb) (comment fedora-42-5.4_opam-2.5) (user (uid 1000) (gid 1000)) (env CLICOLOR_FORCE 1) (env OPAMCOLOR always) (workdir /src) (run (network host) (shell "sudo dnf install -y findutils")) (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:50.58: Waiting for worker… 2026-04-22 15:53.08: Got resource from pool OCluster Building on eumache.caelum.ci.dev All commits already cached HEAD is now at 7bf34d3 changes for 0.3.1 (from ocaml/opam:fedora-42-ocaml-5.4@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb) Unable to find image 'ocaml/opam:fedora-42-ocaml-5.4@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb' locally docker.io/ocaml/opam@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb: Pulling from ocaml/opam bcbfb8588268: Already exists 7c86f07d981d: Pulling fs layer e523f6cbdc73: Pulling fs layer e196c832855a: Pulling fs layer 7c86f07d981d: Waiting e523f6cbdc73: Waiting c24dcc89d23e: Pulling fs layer e196c832855a: Waiting cd9def049d81: Pulling fs layer c24dcc89d23e: Waiting e360f9824a3f: Pulling fs layer cd9def049d81: Waiting fbeadbd8287f: Pulling fs layer b5be9212d8a5: Pulling fs layer e360f9824a3f: Waiting fbeadbd8287f: Waiting 58850ac9f02f: Pulling fs layer 94de074660d5: Pulling fs layer b5be9212d8a5: Waiting 58850ac9f02f: Waiting c6d785172de9: Pulling fs layer 5642a0bc3a02: Pulling fs layer 94de074660d5: Waiting c6d785172de9: Waiting 677ac3b3af73: Pulling fs layer 97f4a46fa01c: Pulling fs layer 5642a0bc3a02: Waiting 887c8b3bd767: Pulling fs layer 677ac3b3af73: Waiting 887c8b3bd767: Waiting 97f4a46fa01c: Waiting 8572bae05e44: Pulling fs layer a801ab04175f: Pulling fs layer 8572bae05e44: Waiting 8eb7359ab813: Pulling fs layer ea7dd170751f: Pulling fs layer 8eb7359ab813: Waiting 4f4fb700ef54: Pulling fs layer a801ab04175f: Waiting 4eeb3f6c741a: Pulling fs layer ea7dd170751f: Waiting 4f4fb700ef54: Waiting d8096e11e5a7: Pulling fs layer b45c71862e05: Pulling fs layer 4eeb3f6c741a: Waiting 3d3025681a79: Pulling fs layer d8096e11e5a7: Waiting 3619e9f4de7b: Pulling fs layer e1d8131f324a: Pulling fs layer 98ffe2fff5c0: Pulling fs layer 3d3025681a79: Waiting e1d8131f324a: Waiting b45c71862e05: Waiting ecf008026c3e: Pulling fs layer 3619e9f4de7b: Waiting b7768b04427d: Pulling fs layer 98ffe2fff5c0: Waiting ecf008026c3e: Waiting aad28dcc458f: Pulling fs layer b7768b04427d: Waiting 2972bd6e2f3d: Pulling fs layer ca68011eb393: Pulling fs layer ae07445296b0: Pulling fs layer 2972bd6e2f3d: Waiting ca68011eb393: Waiting f042b21668eb: Pulling fs layer 45040ee99e59: Pulling fs layer ae07445296b0: Waiting f042b21668eb: Waiting 9ffc20870c04: Pulling fs layer 45040ee99e59: Waiting 5238c2dafd46: Pulling fs layer 9ffc20870c04: Waiting d98d556ee1fb: Pulling fs layer fd7b54172364: Pulling fs layer 5238c2dafd46: Waiting d98d556ee1fb: Waiting bb0d31b2f870: Pulling fs layer 0f27e5b0a211: Pulling fs layer e4629b699694: Pulling fs layer fd7b54172364: Waiting bb0d31b2f870: Waiting e80cce26268d: Pulling fs layer e4629b699694: Waiting e80cce26268d: Waiting 0f27e5b0a211: Waiting 7c86f07d981d: Download complete 7c86f07d981d: Pull complete e196c832855a: Verifying Checksum e196c832855a: Download complete c24dcc89d23e: Download complete cd9def049d81: Verifying Checksum cd9def049d81: Download complete e360f9824a3f: Verifying Checksum e360f9824a3f: Download complete fbeadbd8287f: Verifying Checksum fbeadbd8287f: Download complete b5be9212d8a5: Verifying Checksum b5be9212d8a5: Download complete 58850ac9f02f: Verifying Checksum 58850ac9f02f: Download complete 94de074660d5: Verifying Checksum 94de074660d5: Download complete c6d785172de9: Verifying Checksum c6d785172de9: Download complete 5642a0bc3a02: Verifying Checksum 5642a0bc3a02: Download complete 677ac3b3af73: Verifying Checksum 677ac3b3af73: Download complete 97f4a46fa01c: Verifying Checksum 97f4a46fa01c: Download complete 887c8b3bd767: Verifying Checksum 887c8b3bd767: Download complete 8572bae05e44: Verifying Checksum 8572bae05e44: Download complete a801ab04175f: Download complete 8eb7359ab813: Download complete e523f6cbdc73: Verifying Checksum e523f6cbdc73: Download complete ea7dd170751f: Download complete 4f4fb700ef54: Download complete 4eeb3f6c741a: Download complete d8096e11e5a7: Download complete b45c71862e05: Verifying Checksum b45c71862e05: Download complete 3619e9f4de7b: Verifying Checksum 3619e9f4de7b: Download complete 3d3025681a79: Verifying Checksum 3d3025681a79: Download complete e523f6cbdc73: Pull complete e1d8131f324a: Verifying Checksum e1d8131f324a: Download complete 98ffe2fff5c0: Download complete ecf008026c3e: Verifying Checksum ecf008026c3e: Download complete b7768b04427d: Download complete aad28dcc458f: Verifying Checksum aad28dcc458f: Download complete ca68011eb393: Verifying Checksum ca68011eb393: Download complete 2972bd6e2f3d: Verifying Checksum 2972bd6e2f3d: Download complete f042b21668eb: Verifying Checksum f042b21668eb: Download complete 9ffc20870c04: Verifying Checksum 9ffc20870c04: Download complete 45040ee99e59: Verifying Checksum 45040ee99e59: Download complete 5238c2dafd46: Download complete d98d556ee1fb: Verifying Checksum d98d556ee1fb: Download complete bb0d31b2f870: Verifying Checksum bb0d31b2f870: Download complete e4629b699694: Verifying Checksum e4629b699694: Download complete e80cce26268d: Download complete e196c832855a: Pull complete c24dcc89d23e: Pull complete cd9def049d81: Pull complete e360f9824a3f: Pull complete fbeadbd8287f: Pull complete b5be9212d8a5: Pull complete 58850ac9f02f: Pull complete 94de074660d5: Pull complete c6d785172de9: Pull complete 5642a0bc3a02: Pull complete 677ac3b3af73: Pull complete 97f4a46fa01c: Pull complete 887c8b3bd767: Pull complete 8572bae05e44: Pull complete a801ab04175f: Pull complete 8eb7359ab813: Pull complete ea7dd170751f: Pull complete 4f4fb700ef54: Pull complete 4eeb3f6c741a: Pull complete d8096e11e5a7: Pull complete b45c71862e05: Pull complete 3d3025681a79: Pull complete 3619e9f4de7b: Pull complete e1d8131f324a: Pull complete 98ffe2fff5c0: Pull complete ecf008026c3e: Pull complete b7768b04427d: Pull complete aad28dcc458f: Pull complete 2972bd6e2f3d: Pull complete ca68011eb393: Pull complete fd7b54172364: Verifying Checksum fd7b54172364: Download complete ae07445296b0: Verifying Checksum ae07445296b0: Download complete ae07445296b0: Pull complete f042b21668eb: Pull complete 45040ee99e59: Pull complete 9ffc20870c04: Pull complete 5238c2dafd46: Pull complete d98d556ee1fb: Pull complete fd7b54172364: Pull complete bb0d31b2f870: Pull complete 0f27e5b0a211: Pull complete e4629b699694: Pull complete e80cce26268d: Pull complete Digest: sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb Status: Downloaded newer image for ocaml/opam@sha256:c9a78c1c1c51199def01f859dee97442731545f8963dbec1979d2c2db9c959bb 2026-04-22 15:53.09 ---> using "423398002419b3482a8b9665338c10f3f6c6b1984e842901c7828810d9f1719f" from cache /: (comment fedora-42-5.4_opam-2.5) /: (user (uid 1000) (gid 1000)) /: (env CLICOLOR_FORCE 1) /: (env OPAMCOLOR always) /: (workdir /src) /src: (run (network host) (shell "sudo dnf install -y findutils")) Updating and loading repositories: Fedora 42 - x86_64 - Updates 100% | 41.7 KiB/s | 16.4 KiB | 00m00s Fedora 42 - x86_64 100% | 75.8 KiB/s | 21.4 KiB | 00m00s Fedora 42 openh264 (From Cisco) - x86_ 100% | 6.9 KiB/s | 986.0 B | 00m00s Repositories loaded. Package "findutils-1:4.10.0-5.fc42.x86_64" is already installed. Nothing to do. 2026-04-22 15:53.09 ---> using "1427494dc45be5d05dbedbb8c6284d5e83d9273a70f2daf74a61f90a98d0153e" from cache /src: (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam")) 2026-04-22 15:53.09 ---> using "19628ecee2b7021c05d076acb8b575d724060ee9d27e8253ec58be2a65f4ddd0" 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. Continue? [Y/n] y 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. Format upgrade done. <><> Updating repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><> [default] Initialised 2026-04-22 15:53.09 ---> using "00f7701599ad8380429df556869d2f9cb63297eff82a94fac2e05a284e8da899" 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.0 2026-04-22 15:53.09 ---> using "e55eb9acff13ea939a36766f3c838462b852eaadd915ca3606d1a3083dc268bf" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2026-04-22 15:53.09 ---> using "6c2e1647892afca68a954ba31371313f5c7a85b2327e123f87d1fdd112f8c4bd" 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 42844088d7..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 default (at git+file:///home/opam/opam-repository): [WARNING] opam is out-of-date. Please consider updating it (https://opam.ocaml.org/doc/Install.html) default (at git+file:///home/opam/opam-repository): [INFO] opam 2.5.1 includes security fixes; please consider upgrading (https://opam.ocaml.org/doc/Install.html) 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:53.09 ---> using "36036cdbd63f65f9eca29a3b51cd2e26346aca2e24094b6d59fb63fb74267869" from cache /src: (copy (src duration.opam) (dst ./)) 2026-04-22 15:53.09 ---> saved as "41736fc83d91a8d7188576b672269f793d355aeee010c1d6417ac7abdd1fcf98" /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:53.10 ---> saved as "afe798ba4275138c2861366e1b602d4e1e94569dd8c2848575543b61c699ce36" /src: (run (shell "echo '(lang dune 3.0)' > './dune-project'")) 2026-04-22 15:53.10 ---> saved as "805176e46d5bc08bac5f060240da755b332b0ce123848115c522ae85f3132715" /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/sbin/sudo "yum" "makecache" - Updating and loading repositories: - Repositories loaded. - Metadata cache created. <><> 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:53.33 ---> saved as "ab785f9278934df779787dde346c773182124a7b3da3210171d0fdb4029d5414" /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 ocamlbuild.0.16.1 (cached) -> retrieved ocamlfind.1.9.8 (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:54.52 ---> saved as "98bdb10b8624c85183566159c97f08c2b48faac388b6b1b06d9d83adc0af09f1" /src: (copy (src .) (dst /src)) 2026-04-22 15:54.52 ---> saved as "dd92ba55d00c0c73f85935e84b099bffcaa2ea94f5d0bedb5554791de78993d7" /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 `8NTTHCN7'. [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.006s. 40 tests run. 2026-04-22 15:54.53 ---> saved as "af4bcae5359222175c73d4aec1c5b4503f0eb425122058da63b59f8059a841f8" Job succeeded 2026-04-22 15:54.53: Job succeeded