From 5e98f9d810116c39902218dbad10888f242697cc Mon Sep 17 00:00:00 2001 From: Ryan Hughes Date: Mon, 21 Sep 2026 00:13:46 -0400 Subject: [PATCH] flea: update to 0.3.1, run shelfundo tests on tmpfs, skip three under QEMU flea 0.3.0 never published: its shelfundo suite (new in 0.3.0) failed check() on the 2026-09-18 publish build, and 0.3.1 fails the same way on the sync PR. undo_refuses_to_walk_a_stranger_back deletes a file, creates another under the same name, and expects undo to tell them apart by (dev, ino, kind). ext4 hands the freed inode number straight back to the next create, so on the droplet's /tmp the stranger is identical and undo walks it back into a directory that does not exist. tmpfs allocates inode numbers from a counter and never reuses one. The suite joins the filesystem tests that already run with TMPDIR on /dev/shm. On aarch64 three more tests fail: two in backend::child and one in menu_registry expect spawning a missing program to be reported as not started. Under QEMU user-mode emulation glibc's posix_spawn cannot observe the child's failed execve; the spawn succeeds with exit 127. Skipped on aarch64 only. --- pkgbuilds/flea/PKGBUILD | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/pkgbuilds/flea/PKGBUILD b/pkgbuilds/flea/PKGBUILD index 1c15737..2808c60 100644 --- a/pkgbuilds/flea/PKGBUILD +++ b/pkgbuilds/flea/PKGBUILD @@ -1,7 +1,7 @@ # Maintainer: GM pkgname=flea -pkgver=0.3.0 +pkgver=0.3.1 pkgrel=1 pkgdesc='Fast, keyboard-first file manager for Omarchy' arch=('x86_64' 'aarch64') @@ -52,7 +52,7 @@ options=('!debug') source=( "$url/releases/download/v$pkgver/$pkgname-v$pkgver.tar.gz" ) -sha256sums=('975fe4c3d6ee91470be9fe8835e247ec3054e74b1682a8315e19c3aedbef8d05') +sha256sums=('b146ac3f5025da987eae623c4392c44ce69a6a7275a8df3ec1a84563920a4dd2') build() { cd "$pkgname-$pkgver" @@ -103,6 +103,12 @@ check() { # not provide. Keep executable fixtures in the remaining suites on the normal # temp root (/dev/shm is noexec). Note that /dev/shm does NOT buy finer # timestamps -- see the skip below. + # shelfundo::tests::undo_refuses_to_walk_a_stranger_back deletes a file, + # creates another under the same name, and expects undo to tell them + # apart by (dev, ino, kind). ext4 hands the freed inode number straight + # back to the next create, so on the builder's /tmp the stranger is + # identical and undo walks it back. tmpfs allocates inode numbers from a + # counter and never reuses one, which is what the test assumes. local -a filesystem_tests=( backend::menu_actions::tests:: backend::menudelete::tests:: @@ -110,6 +116,7 @@ check() { backend::trashbrowse::tests:: backend::trashdelete:: backend::trashmanifest::tests:: + shelfundo::tests:: ) # redo_refuses_changed_sources_and_destination_collisions writes a file and # then immediately asks redo to notice the edit. flea decides "changed" from @@ -127,6 +134,19 @@ check() { --skip backend::redo::tests::redo_refuses_changed_sources_and_destination_collisions ) + # These three expect spawning a missing or failing program to be reported + # as such. aarch64 builds run under QEMU user-mode emulation, where + # glibc's posix_spawn cannot see the child's failed execve: the spawn + # "succeeds" with exit 127, and the timing test's child never sleeps. + # Passes natively. + if [[ $CARCH == aarch64 ]]; then + test_args+=( + --skip backend::child::tests::a_child_is_noticed_when_it_exits_rather_than_at_the_next_poll_boundary + --skip backend::child::tests::a_child_that_never_started_is_told_apart_from_one_that_ran_and_failed + --skip backend::menu_registry::tests::unavailable_failed_and_oversized_queries_are_named_errors + ) + fi + local test_tmp test_status=0 suite test_tmp=$(mktemp -d /dev/shm/flea-tests.XXXXXXXX) || return 1 TMPDIR="$test_tmp" cargo test --frozen --release -- \