The bsdcpio_test odc/newc format tests verify archive headers byte-by-byte including inode and device numbers. On ext4 root filesystems (particularly qemuarm64 and qemuriscv64) inode numbers can exceed the odc 6-octal-digit or newc 8-hex-digit field widths, causing intermittent assertion failures in test_format_newc and test_option_c.
Set TMPDIR to a tmpfs mount so the test framework creates its working directories there, where inode numbers always start small. [YOCTO #16231] : https://bugzilla.yoctoproject.org/show_bug.cgi?id=16231 Signed-off-by: Pratik Farkase <[email protected]> --- Changes in v3: - Use export TMPDIR instead of changing CWD (v2 broke test binary's ability to find reference data files) Changes in v2: - Use cd "$PTEST_DIR" instead of cd --- .../libarchive/libarchive/run-ptest | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/meta/recipes-extended/libarchive/libarchive/run-ptest b/meta/recipes-extended/libarchive/libarchive/run-ptest index d6b4c3f934..f5f2ef490c 100755 --- a/meta/recipes-extended/libarchive/libarchive/run-ptest +++ b/meta/recipes-extended/libarchive/libarchive/run-ptest @@ -1,11 +1,23 @@ #!/bin/sh +PTEST_DIR=$(cd "$(dirname "$0")" && pwd) +cd "$PTEST_DIR" + # The fuzz tests run 1000 randomised iterations per archive format and are # meant for dedicated fuzzing infrastructure, not routine ptest runs. They # regularly time out in the time/memory constrained autobuilder QEMU targets # (e.g. test_fuzz_iso9660). Skip them via the upstream escape hatch. export SKIP_TEST_FUZZ=1 +# The bsdcpio odc/newc format tests verify archive headers byte-by-byte +# including inode and device numbers. On ext4 root filesystems inode numbers +# can exceed the odc 6-octal-digit (262143) or newc 8-hex-digit (4294967295) +# field widths, causing intermittent assertion failures. Set TMPDIR to a +# tmpfs so test-created files get small inode numbers. +WORKDIR=$(mktemp -d) +mount -t tmpfs tmpfs "$WORKDIR" +export TMPDIR="$WORKDIR" + for t in libarchive_test bsdtar_test bsdcpio_test bsdcat_test bsdunzip_test; do ./$t if [ $? -eq 0 ]; then @@ -15,3 +27,5 @@ for t in libarchive_test bsdtar_test bsdcpio_test bsdcat_test bsdunzip_test; do fi done +umount "$WORKDIR" +rmdir "$WORKDIR" -- 2.34.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#242183): https://lists.openembedded.org/g/openembedded-core/message/242183 Mute This Topic: https://lists.openembedded.org/mt/120482053/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
