Organisationsmiragearp7843ef ()debian-13-4.14_riscv64_opam-2.4

debian-13-4.14_riscv64_opam-2.4

Logs

Show full logs
2025-11-05 03:01.17: New job: test mirage/arp https://github.com/mirage/arp.git#refs/pull/33/head (7843efa46fbac5a1b0c7a2475fc5eaa4dfbaa7e3) (linux-riscv64:debian-13-4.14_riscv64_opam-2.4)
Base: ocaml/opam:debian-13-ocaml-4.14@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4
Opam project build

To reproduce locally:

git clone --recursive "https://github.com/mirage/arp.git" && cd "arp" && git fetch origin "refs/pull/33/head" && git reset --hard 7843efa4
cat > Dockerfile <<'END-OF-DOCKERFILE'
FROM ocaml/opam:debian-13-ocaml-4.14@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4
# debian-13-4.14_riscv64_opam-2.4
USER 1000:1000
ENV CLICOLOR_FORCE="1"
ENV OPAMCOLOR="always"
WORKDIR /src
RUN sudo ln -f /usr/bin/opam-2.4 /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 60c74a29f5d280ca9330c57b890e2e8c0fbc444c || git fetch origin master) && git reset -q --hard 60c74a29f5d280ca9330c57b890e2e8c0fbc444c && git log --no-decorate -n1 --oneline && opam update -u
COPY --chown=1000:1000 arp.opam ./
RUN opam pin add -yn arp.dev './'
RUN echo '(lang dune 3.0)' > './dune-project'
ENV DEPS="alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-bytes.base base-threads.base base-unix.base bos.0.2.1 cmdliner.2.0.0 cppo.1.8.0 csexp.1.5.2 cstruct.6.2.0 domain-name.0.5.0 dune.3.20.2 dune-configurator.3.20.2 duration.0.2.1 ethernet.3.2.0 fmt.0.11.0 fpath.0.7.3 ipaddr.5.6.1 logs.0.9.0 lru.0.3.1 lwt.5.9.2 macaddr.5.6.1 mirage-net.4.0.0 mirage-sleep.4.1.0 mirage-vnetif.0.6.2 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 psq.0.2.1 re.1.14.0 rresult.0.7.0 seq.base stdlib-shims.0.3.0 topkg.1.1.0 uutf.1.0.4"
ENV CI="true"
ENV OCAMLCI="true"
RUN opam update --depexts && opam install --cli=2.4 --depext-only -y arp.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

2025-11-05 03:01.17: Using cache hint "mirage/arp-ocaml/opam:debian-13-ocaml-4.14@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4-debian-13-4.14_riscv64_opam-2.4-28f10c67b9b49ec094a2e57382c1ba38"
2025-11-05 03:01.17: Using OBuilder spec:
((from ocaml/opam:debian-13-ocaml-4.14@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4)
 (comment debian-13-4.14_riscv64_opam-2.4)
 (user (uid 1000) (gid 1000))
 (env CLICOLOR_FORCE 1)
 (env OPAMCOLOR always)
 (workdir /src)
 (run (shell "sudo ln -f /usr/bin/opam-2.4 /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 60c74a29f5d280ca9330c57b890e2e8c0fbc444c || git fetch origin master) && git reset -q --hard 60c74a29f5d280ca9330c57b890e2e8c0fbc444c && git log --no-decorate -n1 --oneline && opam update -u"))
 (copy (src arp.opam) (dst ./))
 (run (network host)
      (shell "opam pin add -yn arp.dev './'"))
 (run (network host)
      (shell "echo '(lang dune 3.0)' > './dune-project'"))
 (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-bytes.base base-threads.base base-unix.base bos.0.2.1 cmdliner.2.0.0 cppo.1.8.0 csexp.1.5.2 cstruct.6.2.0 domain-name.0.5.0 dune.3.20.2 dune-configurator.3.20.2 duration.0.2.1 ethernet.3.2.0 fmt.0.11.0 fpath.0.7.3 ipaddr.5.6.1 logs.0.9.0 lru.0.3.1 lwt.5.9.2 macaddr.5.6.1 mirage-net.4.0.0 mirage-sleep.4.1.0 mirage-vnetif.0.6.2 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 psq.0.2.1 re.1.14.0 rresult.0.7.0 seq.base stdlib-shims.0.3.0 topkg.1.1.0 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.4 --depext-only -y arp.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"))
)

2025-11-05 03:01.17: Waiting for resource in pool OCluster
2025-11-05 03:01.18: Waiting for worker…
2025-11-05 03:01.18: Got resource from pool OCluster
Building on riscv-bm-03.sw.ci.dev
HEAD is now at 21ea85c debug
HEAD is now at 7843efa debug

(from ocaml/opam:debian-13-ocaml-4.14@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4)
Unable to find image 'ocaml/opam:debian-13-ocaml-4.14@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4' locally
docker.io/ocaml/opam@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4: Pulling from ocaml/opam
913254a25f5e: Already exists
d4181e0c64b1: Already exists
60067d417858: Already exists
85acc1d96727: Already exists
3ed6ed890bcc: Already exists
2dbf4e493c82: Already exists
2392a1c0faf2: Already exists
a887790579d0: Already exists
6bf6091e80a7: Already exists
8335ff7d796a: Already exists
a5cf80048a8d: Already exists
11557f96dff6: Already exists
5ffa47544a64: Already exists
b92bc0bdd77f: Already exists
11bee46e736c: Already exists
6cdee63da433: Already exists
bd6b847c6301: Already exists
ef94452a17d0: Already exists
bd4498e2bf68: Already exists
cae9012f5512: Already exists
97e1a82ddbc1: Already exists
4f4fb700ef54: Already exists
a36b4f4c3856: Already exists
ba5c5eee93b2: Already exists
ccef58c1ec23: Already exists
f58caa225e78: Already exists
e5b816875ec7: Already exists
637cd996e729: Already exists
4798bd4315ce: Already exists
1a9d0398727f: Already exists
87a13479d21f: Already exists
826d12795d2a: Already exists
ec3c50c293a6: Already exists
75873b00ea39: Already exists
2dc1ede51ef9: Already exists
e521104f43f2: Already exists
5adb34782261: Already exists
3902e7196407: Already exists
58655837ed1a: Already exists
48f0059e882a: Already exists
f295b5eefcb4: Pulling fs layer
edce86b5f8fb: Pulling fs layer
bb5db9673a61: Pulling fs layer
05ea7405a998: Pulling fs layer
05ea7405a998: Waiting
edce86b5f8fb: Verifying Checksum
edce86b5f8fb: Download complete
bb5db9673a61: Verifying Checksum
bb5db9673a61: Download complete
05ea7405a998: Verifying Checksum
05ea7405a998: Download complete
f295b5eefcb4: Verifying Checksum
f295b5eefcb4: Download complete
f295b5eefcb4: Pull complete
edce86b5f8fb: Pull complete
bb5db9673a61: Pull complete
05ea7405a998: Pull complete
Digest: sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4
Status: Downloaded newer image for ocaml/opam@sha256:2ec3acb358ede65444e2c01012b8324279d362d1b5a123d68f479f6dd50c48f4
2025-11-05 03:01.19 ---> using "55ae748f998e54835d3967fc6571b603b5ee1c5ff4e316d4c116f7c103a9c488" from cache

/: (comment debian-13-4.14_riscv64_opam-2.4)

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

/: (env CLICOLOR_FORCE 1)

/: (env OPAMCOLOR always)

/: (workdir /src)

/src: (run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam"))
2025-11-05 03:01.19 ---> using "c00b7fb0f14ee1c4f7d61067bbfa694b3be6391e35e49cc0aaf32d7c4e3d53f8" 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
2025-11-05 03:01.19 ---> using "855a2ad17f6bcf2293c394a91ad81b4660f67f6158dd85f342100a047bf5312e" from cache

/src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version"))
Linux 5.10.113-scw1
The OCaml toplevel, version 4.14.2
2.4.1
2025-11-05 03:01.19 ---> using "a4ce8f05afc8d1524197ee77c40d77385ba3c1dd7324a7828030078cefe93e49" from cache

/src: (workdir /src)

/src: (run (shell "sudo chown opam /src"))
2025-11-05 03:01.19 ---> using "b44f2387602157265122ccd9b42a9e7ae7bea0745aff65db47cf7ea002fcfa4d" from cache

/src: (run (cache (opam-archives (target /home/opam/.opam/download-cache)))
           (network host)
           (shell "cd ~/opam-repository && (git cat-file -e 60c74a29f5d280ca9330c57b890e2e8c0fbc444c || git fetch origin master) && git reset -q --hard 60c74a29f5d280ca9330c57b890e2e8c0fbc444c && git log --no-decorate -n1 --oneline && opam update -u"))
From https://github.com/ocaml/opam-repository
 * branch                  master     -> FETCH_HEAD
   1abfcdbf14..56e7d9d388  master     -> origin/master
60c74a29f5 Merge pull request #28709 from hannesm/release-domain-name-v0.5.0

<><> 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.3.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)
2025-11-05 03:01.19 ---> using "14ef32c7bdb1f20fed42a8e423a75d7aa4b92cc309e16b5397945f264f0f88ca" from cache

/src: (copy (src arp.opam) (dst ./))
2025-11-05 03:01.19 ---> using "3c672113265da81b454e59425e4325314a9daa170cf5bfe401c6eedcad7d6af1" from cache

/src: (run (network host)
           (shell "opam pin add -yn arp.dev './'"))
[arp.dev] synchronised (file:///src)
arp is now pinned to file:///src (version dev)
2025-11-05 03:01.19 ---> using "9176e96f913e08363598d17ab5381d46dc0aafdfd19bc2e41147be72380fd5c9" from cache

/src: (run (network host)
           (shell "echo '(lang dune 3.0)' > './dune-project'"))
2025-11-05 03:01.19 ---> using "03693915964a247db5d102567e623dde69b7cd0476a817c13c4257a8c323d265" from cache

/src: (env DEPS "alcotest.1.9.1 astring.0.8.5 base-bigarray.base base-bytes.base base-threads.base base-unix.base bos.0.2.1 cmdliner.2.0.0 cppo.1.8.0 csexp.1.5.2 cstruct.6.2.0 domain-name.0.5.0 dune.3.20.2 dune-configurator.3.20.2 duration.0.2.1 ethernet.3.2.0 fmt.0.11.0 fpath.0.7.3 ipaddr.5.6.1 logs.0.9.0 lru.0.3.1 lwt.5.9.2 macaddr.5.6.1 mirage-net.4.0.0 mirage-sleep.4.1.0 mirage-vnetif.0.6.2 ocaml.4.14.2 ocaml-base-compiler.4.14.2 ocaml-config.2 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocamlbuild.0.16.1 ocamlfind.1.9.8 ocplib-endian.1.2 psq.0.2.1 re.1.14.0 rresult.0.7.0 seq.base stdlib-shims.0.3.0 topkg.1.1.0 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.4 --depext-only -y arp.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 riscv64 Packages [64.8 kB]
- Fetched 156 kB in 0s (320 kB/s)
- Reading package lists...
- 

<><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><>
[arp.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 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[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-bigarray is already installed (current version is base).
2025-11-05 03:01.19 ---> using "ba51e86d1b21382f55742a948ef20058dcd927af2b7a0c30d9d4c1da497eb14c" from cache

/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 2).
[NOTE] Package ocaml-base-compiler is already installed (current version is 4.14.2).
[NOTE] Package ocaml is already installed (current version is 4.14.2).
[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-bigarray is already installed (current version is base).
The following actions will be performed:
=== install 34 packages
  - install alcotest           1.9.1
  - install astring            0.8.5
  - install base-bytes         base
  - install bos                0.2.1
  - install cmdliner           2.0.0
  - install cppo               1.8.0
  - install csexp              1.5.2
  - install cstruct            6.2.0
  - install domain-name        0.5.0
  - install dune               3.20.2
  - install dune-configurator  3.20.2
  - install duration           0.2.1
  - install ethernet           3.2.0
  - install fmt                0.11.0
  - install fpath              0.7.3
  - install ipaddr             5.6.1
  - install logs               0.9.0
  - install lru                0.3.1
  - install lwt                5.9.2
  - install macaddr            5.6.1
  - install mirage-net         4.0.0
  - install mirage-sleep       4.1.0
  - install mirage-vnetif      0.6.2
  - install ocaml-syntax-shims 1.0.0
  - install ocamlbuild         0.16.1
  - install ocamlfind          1.9.8
  - install ocplib-endian      1.2
  - install psq                0.2.1
  - install re                 1.14.0
  - install rresult            0.7.0
  - install seq                base
  - install stdlib-shims       0.3.0
  - install topkg              1.1.0
  - install uutf               1.0.4

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved alcotest.1.9.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved bos.0.2.1  (cached)
-> retrieved cmdliner.2.0.0  (cached)
-> retrieved cppo.1.8.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved cstruct.6.2.0  (cached)
-> retrieved domain-name.0.5.0  (cached)
-> retrieved duration.0.2.1  (cached)
-> retrieved ethernet.3.2.0  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved logs.0.9.0  (cached)
-> retrieved ipaddr.5.6.1, macaddr.5.6.1  (cached)
-> retrieved lru.0.3.1  (cached)
-> retrieved mirage-net.4.0.0  (cached)
-> retrieved mirage-sleep.4.1.0  (cached)
-> retrieved lwt.5.9.2  (cached)
-> retrieved mirage-vnetif.0.6.2  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved ocplib-endian.1.2  (cached)
-> retrieved psq.0.2.1  (cached)
-> retrieved rresult.0.7.0  (cached)
-> retrieved seq.base  (cached)
-> retrieved re.1.14.0  (cached)
-> retrieved stdlib-shims.0.3.0  (cached)
-> retrieved uutf.1.0.4  (cached)
-> retrieved topkg.1.1.0  (cached)
-> retrieved dune.3.20.2, dune-configurator.3.20.2  (cached)
-> installed cmdliner.2.0.0
-> installed ocamlbuild.0.16.1
-> installed seq.base
-> installed ocamlfind.1.9.8
-> installed base-bytes.base
-> installed topkg.1.1.0
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed rresult.0.7.0
-> installed fpath.0.7.3
-> installed uutf.1.0.4
-> installed dune.3.20.2
-> installed csexp.1.5.2
-> installed cstruct.6.2.0
-> installed cppo.1.8.0
-> installed domain-name.0.5.0
-> installed duration.0.2.1
-> installed macaddr.5.6.1
-> installed ocplib-endian.1.2
-> installed ipaddr.5.6.1
-> installed ocaml-syntax-shims.1.0.0
-> installed psq.0.2.1
-> installed dune-configurator.3.20.2
-> installed stdlib-shims.0.3.0
-> installed lru.0.3.1
-> installed re.1.14.0
-> installed alcotest.1.9.1
-> installed lwt.5.9.2
-> installed mirage-net.4.0.0
-> installed mirage-sleep.4.1.0
-> installed logs.0.9.0
-> installed mirage-vnetif.0.6.2
-> installed ethernet.3.2.0
-> installed bos.0.2.1
Done.
# To update the current shell environment, run: eval $(opam env)
2025-11-05 03:01.19 ---> using "761eb0c47708ded4813049c4ee8eae20e680b9795df4b5e3a45bf56915585fe2" from cache

/src: (copy (src .) (dst /src))
2025-11-05 03:01.20 ---> saved as "5777ae226190407cefc75d9e9069030da294101ee6b452679ed2a89bb208765f"

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

  [OK]          Coder            0   valid arp decoding.
  [OK]          Coder            1   unhandled arp decoding.
  [OK]          Coder            2   short arp decoding.
  [OK]          Coder            3   invalid operation decoding.
  [OK]          Coder            4   decoding is inverse of encoding.
  [OK]          Coder            5   encode_into works.
  [OK]          Coder            6   encode_into fails with small bufs.
  [OK]          Handler          0   create raises.
  [OK]          Handler          1   basic tests.
  [OK]          Handler          2   remove test.
  [OK]          Handler          3   remove no test.
  [OK]          Handler          4   alias test.
  [OK]          Handler          5   alias remove test.
  [OK]          Handler          6   static test.
  [OK]          Handler          7   static alias test.
  [OK]          Handler          8   more tests.
  [OK]          Handler          9   handle good.
  [OK]          Handler         10   handle generates req.
  [OK]          Handler         11   handle generates req, next doesn't.
  [OK]          Handler         12   alias wakes.
  [OK]          Handler         13   static wakes.
  [OK]          Handler         14   handle timeout.
  [OK]          Handler         15   request send before timeout.
  [OK]          Handler         16   multiple requests are send.
  [OK]          Handler         17   multiple requests are send 2.
  [OK]          Handler         18   handle reply.
  [OK]          Handler         19   handle garp.
  [OK]          Handler         20   answers broadcast request.
  [OK]          Handler         21   answers unicast request.
  [OK]          Handler         22   not answering random request.
  [OK]          Handler         23   ignoring random.
  [OK]          Handler         24   reply does not harm static entries.
  [OK]          Handler         25   reply is in cache.
  [OK]          Handler         26   dynamic entry can be queried.
  [OK]          Handler         27   reply times out.
  [OK]          Handler         28   dynamic entry overriden by same.
  [OK]          Handler         29   dynamic entry overriden by other.
  [OK]          Handler         30   dynamic entry is not advertised.
  [OK]          Handler         31   reply wakes tasks.
  [OK]          Handler         32   stale to dynamic on same MAC reply.
  [OK]          Handler         33   stale stays stale on different MAC reply.
  [OK]          Handler         34   probing to dynamic on same MAC reply.
  [OK]          Handler         35   probing to stale on different MAC reply.

Full test results in `/src/_build/default/test/_build/_tests/ARP tests'.
Test Successful in 0.414s. 43 tests run.
(cd _build/default/test/mirage && ./tests.exe)
Testing `arp'.
This run has ID `XXTOLGT4'.

  [OK]          arp          0   conversions neither lose nor gain information.
  [OK]          arp          1   nonsense requests are ignored.
  [OK]          arp          2   requests are responded to.
  [OK]          arp          3   entries expire.
  [OK]          arp          4   irrelevant requests are ignored.
  [OK]          arp          5   set_ip sets ip, sends GARP.
  [OK]          arp          6   add_ip, get_ip and remove_ip as advertised.
  [OK]          arp          7   GARPs are heard and not cached.
  [OK]          arp          8   unsolicited unicast replies are heard and no...
  [OK]          arp          9   solicited unicast replies resolve pending th...
  [OK]          arp         10   entries are replaced with new information.
  [OK]          arp         11   unreachable IPs time out.
  [OK]          arp         12   queries are tried repeatedly before timing out.

Test Successful in 5.753s. 13 tests run.
ASSERT serialize/deserialize
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:03
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
tests.exe: [DEBUG] starting arp listener for 02:50:00:00:00:01
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [INFO] Failed to parse ARP frame ARP message has unsupported operation 3
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [INFO] Failed to parse ARP frame ARP message has unsupported operation 65535
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [INFO] Failed to parse ARP frame ARP message has unsupported operation 255
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [INFO] Failed to parse ARP frame ARP message has unsupported operation 256
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [INFO] Failed to parse ARP frame ARP message has unsupported operation 257
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [INFO] Failed to parse ARP frame ARP message has unsupported operation 0
tests.exe: [DEBUG] sending ARP request for 192.168.3.10 --> Pending
ASSERT parsed packet comparison
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:02)
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.10 (02:50:00:00:00:01)
tests.exe: [DEBUG] starting arp listener for 02:50:00:00:00:02
tests.exe: [DEBUG] resending ARP request for 192.168.3.10 (2 left)
tests.exe: [DEBUG] resending ARP request for 192.168.3.10 (1 left)
tests.exe: [INFO] ARP timeout after 2 retries for 192.168.3.10
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [DEBUG] replying to ARP request for 192.168.3.1 from 192.168.3.10 (mac 02:50:00:00:00:01)
ASSERT parsed packet comparison
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.10 (02:50:00:00:00:01)
[entries_expire] Set up listener with IP 192.168.3.10, MACs: listen=02:50:00:00:00:01 speak=02:50:00:00:00:02
tests.exe: [INFO] entries_expire: Set up listener with IP 192.168.3.10, MACs: listen=02:50:00:00:00:01 speak=02:50:00:00:00:02
tests.exe: [DEBUG] starting arp listener for 02:50:00:00:00:01
tests.exe: [INFO] entries_expire: Establishing cache entry for 192.168.3.1
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (2 left)
tests.exe: [DEBUG] entries_expire: Sending ARP reply
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [DEBUG] ARP reply received for 192.168.3.1/02:50:00:00:00:02, adding cache entry
tests.exe: [INFO] entries_expire: Query succeeded, got expected MAC 02:50:00:00:00:02
tests.exe: [DEBUG] entries_expire: ARP reply sent
[entries_expire] Cache entry established successfully
tests.exe: [INFO] entries_expire: Cache entry established. ARP cache state: mac 02:50:00:00:00:01 ip 192.168.3.10 entries 2 timeout 800 retries 2
192.168.3.1 at 02:50:00:00:00:02 (timeout in 40)
192.168.3.10 at 02:50:00:00:00:01 (static advertising)

tests.exe: [INFO] entries_expire: Sleeping 5s to allow entry to expire
[entries_expire] Sleeping 5s to allow entry to expire
tests.exe: [DEBUG] ARP entry 192.168.3.1 (mac 02:50:00:00:00:02) timed out --> Stale
tests.exe: [DEBUG] removing stale ARP entry 192.168.3.1 (mac 02:50:00:00:00:02)
[entries_expire] After 5s sleep, checking cache state
tests.exe: [INFO] entries_expire: After 5s sleep. ARP cache state: mac 02:50:00:00:00:01 ip 192.168.3.10 entries 1 timeout 800 retries 2
192.168.3.10 at 02:50:00:00:00:01 (static advertising)

tests.exe: [INFO] entries_expire: Checking that entry is not in cache
[entries_expire] Checking that entry is not in cache (should generate ARP request)
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
ASSERT parsed packet comparison
[entries_expire] Test completed successfully!
tests.exe: [INFO] entries_expire: Test completed successfully
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (2 left)
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.10 (02:50:00:00:00:02)
tests.exe: [DEBUG] starting arp listener for 02:50:00:00:00:01
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [DEBUG] ignoring ARP request for 0.0.0.0 from 192.168.3.10 (mac 02:50:00:00:00:02)
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [DEBUG] ignoring ARP request for 255.255.255.255 from 192.168.3.10 (mac 02:50:00:00:00:02)
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (1 left)
tests.exe: [INFO] ARP timeout after 2 retries for 192.168.3.1
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
ASSERT parsed packet comparison
ASSERT garp emitted when setting ip
ASSERT list of bound IPs on initialization
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.10 (02:50:00:00:00:01)
ASSERT list of bound IPs after setting two IPs
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
ASSERT bound ips is an empty list on startup
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
ASSERT set ips with duplicate elements result in deduplication
ASSERT ip list is empty after removing only ip
ASSERT ip list is empty after removing from empty list
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
ASSERT first ip is the only member of the set of bound ips
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:01)
ASSERT adding ips is idempotent
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:02)
tests.exe: [DEBUG] ARP reply received for 192.168.3.1/02:50:00:00:00:02, adding cache entry
ASSERT mismatch for expected query value
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [DEBUG] starting arp listener for 02:50:00:00:00:01
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (2 left)
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (1 left)
tests.exe: [INFO] ARP timeout after 2 retries for 192.168.3.1
tests.exe: [WARNING] Timeout querying 192.168.3.1. Table contents: mac 02:50:00:00:00:01 ip 0.0.0.0 entries 0 timeout 800 retries 2

tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [DEBUG] starting arp listener for 02:50:00:00:00:01
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [DEBUG] ARP reply received for 192.168.3.1/02:50:00:00:00:02, adding cache entry
ASSERT mismatch for expected query value
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:03
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
tests.exe: [DEBUG] arp listener started
tests.exe: [DEBUG] starting arp listener for 02:50:00:00:00:01
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:02)
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [DEBUG] ARP reply received for 192.168.3.1/02:50:00:00:00:02, adding cache entry
tests.exe: [DEBUG] Set IP for 02:50:00:00:00:02 to 192.168.3.1
tests.exe: [DEBUG] Listener table contents after IP set on claimant: mac 02:50:00:00:00:01 ip 0.0.0.0 entries 1 timeout 800 retries 2
192.168.3.1 at 02:50:00:00:00:02 (timeout in 40)

ASSERT mismatch for expected query value
tests.exe: [INFO] Sending gratuitous ARP for 192.168.3.1 (02:50:00:00:00:03)
tests.exe: [DEBUG] frame received for arpv4
tests.exe: [WARNING] MAC address for 192.168.3.1 moved from 02:50:00:00:00:02 to 02:50:00:00:00:03, marked as stale
tests.exe: [DEBUG] Set IP for 02:50:00:00:00:03 to 192.168.3.1
tests.exe: [DEBUG] Listener table contents after IP set on claimant: mac 02:50:00:00:00:01 ip 0.0.0.0 entries 1 timeout 800 retries 2
192.168.3.1 at 02:50:00:00:00:03 (stale, timeout in 800)

tests.exe: [DEBUG] request for stale entry 192.168.3.1/02:50:00:00:00:03 --> Probing
ASSERT mismatch for expected query value
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (2 left)
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (1 left)
tests.exe: [INFO] ARP timeout after 2 retries for 192.168.3.1
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:01
tests.exe: [INFO] Connected Ethernet interface 02:50:00:00:00:02
tests.exe: [DEBUG] sending ARP request for 192.168.3.1 --> Pending
ASSERT parsed packet comparison
tests.exe: [DEBUG] resending ARP request for 192.168.3.1 (2 left)
ASSERT parsed packet comparison
2025-11-05 03:01.34 ---> saved as "e08b9bfc690354674e8bb757330594489535fc4c373e47c1b64a6f0af3467d51"
Job succeeded
2025-11-05 03:01.34: Job succeeded