8000 smoke tests: 21 library packages (a–l, batch 1) by bryan-minimal · Pull Request #1373 · gominimal/pkgs · GitHub
[go: up one dir, main page]

Skip to content

smoke tests: 21 library packages (a–l, batch 1) - #1373

Open
bryan-minimal wants to merge 1 commit into
mainfrom
smoke/lib-a-l-1
Open

bryan-minimal wants to merge 1 commit into
mainfrom
smoke/lib-a-l-1

Conversation

@bryan-minimal
Copy link
Copy Markdown
Member

Adds a Standalone smoke test to 21 library/data packages from the a–l list with no Standalone test and no OutputBin (batch 1 of 3; batches 1–3 cover 63 packages). Tests are not in the spec hash, so nothing rebuilds.

package test test_deps (besides bash-bootstrap)
abseil-cpp g++ -std=c++17, absl::StrCat, -labsl_strings toolchain
at-spi2-core links -latspi (atspi_init symbol) + header present toolchain
bash-completions bash -O extglob -n bash_completion, >100 completion files —
biff biff --version prints bttf <ver> (exit 1 by design, checked by output) —
boost g++, BOOST_VERSION + boost::filesystem::current_path(), -lboost_filesystem toolchain
bottom /usr/bin/btm --version —
buddy bdd_init / bdd_ithvar / bdd_satcount, -lbdd toolchain
cairo cairo_image_surface_create + status, -lcairo toolchain
clipper2 g++ -std=c++17, Union of a square, area == 100, -lClipper2 toolchain
cups ippTagString(IPP_TAG_INTEGER) == "integer", -lcups toolchain
emacs-config-dev1 site-lisp non-empty, ≥1 non-empty tree-sitter grammar .so —
eudev udev_new / udev_unref, -ludev toolchain
flit-core python3 -c 'import flit_core, flit_core.buildapi' (test_deps: python) python
gmp mpz_pow_ui(2,100) has 101 bits, -lgmp toolchain
helix-grammars >10 non-empty grammar .so files, incl. rust.so —
hwdata pci.ids + usb.ids non-empty, pci.ids has 8086 Intel Corporation —
iana-etc /etc/protocols + /etc/services non-empty, services has https 443/tcp —
jansson json_pack + json_integer_value == 42, -ljansson toolchain
jnv /usr/bin/jnv --version —
libaom aom_codec_version / _str, -laom toolchain
libarchive archive_write_new + archive_version_number, -larchive toolchain

Test design

  • C/C++ libraries: gcc/g++ -x c - -o t -lX <<EOF … EOF && ./t with test_deps = [bash-bootstrap, toolchain]. It compiles a tiny program against the installed headers, links it, and runs it, so the library and its whole DT_NEEDED closure must load. Where a real call needs a display or a VM (most X extension libs, libkrunfw, luv), the program takes the symbol's address through a volatile pointer instead. That still links and loads the library.
  • X headers need xorgproto (X11/X.h, Xfuncproto.h) and the extension wire headers, so the X tests add xorgproto to test_deps.
  • The shell is /usr/bin/bash from bash-bootstrap, whose only runtime_dep is glibc. There is no coreutils, so the source goes in on gcc's stdin and the file checks use bash builtins. Every script starts with set -e.
  • Limitation: toolchain itself pulls in zlib, zstd, gmp, mpfr, mpc, libstdc++ and libgcc. A missing runtime_dep on one of those cannot show up in these tests. Every other dependency must come from the package's own runtime_deps closure.

How these were verified

Locally, in a fresh min session activate . --loadout pkgbuild on this branch (a new session name for every run):

  • min package build bash-bootstrap toolchain python fontconfig xorgproto <pkgs> fetches cached artifacts.
  • min check --packages <pkgs>, names space-separated. The full output was read off /run/minenv_sock, because the min check wrapper prints only the first line of a multi-line test.

All tests in this PR report standalone tests...Pass, and no other check fails. pkgs CI shows standalone tests...Skip for them because nothing rebuilds, so the local run is the real evidence. mip dump isn't available locally, so min check (parse/eval) plus pkgs CI are the evaluation gates. Tests ran on the Mac's VM (arm64); amd64 is not exercised locally.

Negative control: in a fresh session, exit 7 was appended to libarchive's test. min check reported smoketest: … exit 7 had exit code 7 and standalone tests...Fail. The development runs also produced real failures: missing headers, a wrong symbol name, and the link errors below. So the tests do run, and failures are reported.

Skipped (whole a–l library list; no test added)

package reason
ant-bootstrap-1.8.4, classpath-0.93, classpath-0.99, classpath-devel, ecj-bootstrap-3.2.2, ecj4-bootstrap-4.2.1, icedtea-7, icedtea-8, jamvm-1.5.1, jamvm-2.0.0, go-1.17.13, go-1.20.14, go-1.22.6, go-1.24.9, glibc-bedrock-2.42-sysroot bootstrap rungs
base, base-bootstrap aggregates
dev-language-servers, jdk meta packages (doc only / no outputs)
harfbuzz its test fails because of a real packaging bug in freetype (below). The test should land with the fix.

Findings (separate PRs: runtime_deps are hashed and trigger a rebuild)

package symptom cause
freetype linking -lharfbuzz fails: libbz2.so.1.0, needed by /lib64/libfreetype.so.6, not found and undefined BZ2_bzDecompress* freetype's runtime_deps are [glibc, libpng] but the library is built with bzip2 support. bzip2 is missing. zlib was not checked, because toolchain masks it. This breaks anything that links harfbuzz or freetype without bzip2 happening to be in its closure.
at-spi2-core linking -latk-bridge-2.0 fails: libatk-1.0.so.0, needed by libatk-bridge-2.0.so, not found the shipped libatk-bridge-2.0.so needs libatk, which ships in the separate atk package, and atk is not in at-spi2-core's runtime_deps. chromium-bin lists both, which hides it. The test here covers only -latspi.

Also noticed, not fixed here: biff, bottom and jnv put their usr/bin executables under OutputLib, not OutputBin. That's why they were on the "no OutputBin" list, and enumerate-bins never sees them.

🤖 Generated with Claude Code

Adds a Standalone smoketest to abseil-cpp at-spi2-core bash-completions biff boost bottom buddy cairo clipper2 cups emacs-config-dev1 eudev flit-core gmp helix-grammars hwdata iana-etc jansson jnv libaom libarchive.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bryan-minimal
bryan-minimal requested a review from a team as a code owner November 6, 2026 21:58
@coderabbitai
coderabbitai Bot commented Nov 6, 2026
Copy link
Copy Markdown
Contributor

Warning

Review limit reached

  • Run on-demand review

This review includes 21 billable files and costs up to $5.25.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Or wait 8 minutes for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 64 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

Run configuration

Commits

Reviewing files that changed from the base of the PR and between 7a198f0 and 899def8.

Files selected for processing: 21

  • packages/abseil-cpp/build.ncl
  • packages/at-spi2-core/build.ncl
  • packages/bash-completions/build.ncl
  • packages/biff/build.ncl
  • packages/boost/build.ncl
  • packages/bottom/build.ncl
  • packages/buddy/build.ncl
  • packages/cairo/build.ncl
  • packages/clipper2/build.ncl
  • packages/cups/build.ncl
  • packages/emacs-config-dev1/build.ncl
  • packages/eudev/build.ncl
  • packages/flit-core/build.ncl
  • packages/gmp/build.ncl
  • packages/helix-grammars/build.ncl
  • packages/hwdata/build.ncl
  • packages/iana-etc/build.ncl
  • packages/jansson/build.ncl
  • packages/jnv/build.ncl
  • packages/libaom/build.ncl
  • packages/libarchive/build.ncl
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

bryan-minimal added a commit that referenced this pull request Nov 6, 2026
…smoke test

Two more findings from the library smoke-test sweep (pkgs#1373-1375):
- freetype: configure auto-detects bzip2 from the build closure, so
  libfreetype.so.6 NEEDS libbz2.so.1.0, but runtime_deps had only glibc and
  libpng. Linking -lharfbuzz failed on it. (zlib is probably in the same
  position but the test can't see it: toolchain carries zlib.)
- at-spi2-core: libatk-bridge-2.0.so NEEDS libatk-1.0.so.0; atk was missing
  (chromium-bin lists both, which hid it).
harfbuzz gets the compile-link-run test that was held back from #1373 until
freetype's fix lands with it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

0