diff options
Diffstat (limited to 'meta-filesystems/recipes-utils/xfstests')
5 files changed, 271 insertions, 0 deletions
diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0001-add-missing-FTW_-macros-when-not-available-in-libc.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-add-missing-FTW_-macros-when-not-available-in-libc.patch new file mode 100644 index 0000000000..5e230e2cfb --- /dev/null +++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-add-missing-FTW_-macros-when-not-available-in-libc.patch @@ -0,0 +1,41 @@ +From 5facddc332c5ff8330f93c0a7e1b7f6d7bbd24a3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 5 Nov 2023 08:31:21 -0800 +Subject: [PATCH] add missing FTW_ macros when not available in libc + +Fixes build with musl + +| xfsfind.c:176:13: error: use of undeclared identifier 'FTW_STOP' +| 176 | retval = FTW_STOP; +| | ^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/global.h | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/global.h b/src/global.h +index 49570ef1..1c247488 100644 +--- a/src/global.h ++++ b/src/global.h +@@ -190,4 +190,16 @@ roundup_64(unsigned long long x, unsigned int y) + return rounddown_64(x + y - 1, y); + } + ++#ifndef FTW_ACTIONRETVAL ++#define FTW_ACTIONRETVAL 16 ++#endif ++ ++#ifndef FTW_CONTINUE ++#define FTW_CONTINUE 0 ++#endif ++ ++#ifndef FTW_STOP ++#define FTW_STOP 1 ++#endif ++ + #endif /* GLOBAL_H */ +-- +2.42.1 + diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0001-include-libgen.h-for-basename-API-prototype.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-include-libgen.h-for-basename-API-prototype.patch new file mode 100644 index 0000000000..1570f3131f --- /dev/null +++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-include-libgen.h-for-basename-API-prototype.patch @@ -0,0 +1,84 @@ +From 37caab7a43da5ede0ff1eb700f0257a213ac4b18 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 25 Mar 2024 10:46:50 -0700 +Subject: [PATCH 1/2] include libgen.h for basename API prototype + +basename prototype has been removed from string.h from latest musl [1] +compilers e.g. clang-18 flags the absense of prototype as error. therefore +include libgen.h for providing it. + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Submitted [https://lore.kernel.org/fstests/20240325175323.3450750-1-raj.khem@gmail.com/T/#t] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/splice-test.c | 1 + + src/stat_test.c | 1 + + src/t_ext4_dax_inline_corruption.c | 1 + + src/t_ext4_dax_journal_corruption.c | 1 + + src/t_mmap_collision.c | 1 + + 5 files changed, 5 insertions(+) + +diff --git a/src/splice-test.c b/src/splice-test.c +index eb863673..7b7094f5 100644 +--- a/src/splice-test.c ++++ b/src/splice-test.c +@@ -11,6 +11,7 @@ + #include <unistd.h> + #include <fcntl.h> + #include <err.h> ++#include <libgen.h> + + #include <stdlib.h> + #include <stdio.h> +diff --git a/src/stat_test.c b/src/stat_test.c +index 95cfdc4f..77e1acdd 100644 +--- a/src/stat_test.c ++++ b/src/stat_test.c +@@ -4,6 +4,7 @@ + * Written by David Howells (dhowells@redhat.com) + */ + ++#include <libgen.h> + #include <stdarg.h> + #include <stdio.h> + #include <stdlib.h> +diff --git a/src/t_ext4_dax_inline_corruption.c b/src/t_ext4_dax_inline_corruption.c +index e1a39a6c..a40c5df5 100644 +--- a/src/t_ext4_dax_inline_corruption.c ++++ b/src/t_ext4_dax_inline_corruption.c +@@ -2,6 +2,7 @@ + /* Copyright (c) 2018 Intel Corporation. */ + #include <errno.h> + #include <fcntl.h> ++#include <libgen.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +diff --git a/src/t_ext4_dax_journal_corruption.c b/src/t_ext4_dax_journal_corruption.c +index ba7a96e4..53be10c2 100644 +--- a/src/t_ext4_dax_journal_corruption.c ++++ b/src/t_ext4_dax_journal_corruption.c +@@ -2,6 +2,7 @@ + /* Copyright (c) 2018 Intel Corporation. */ + #include <errno.h> + #include <fcntl.h> ++#include <libgen.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +diff --git a/src/t_mmap_collision.c b/src/t_mmap_collision.c +index c872f4e2..d9315fcf 100644 +--- a/src/t_mmap_collision.c ++++ b/src/t_mmap_collision.c +@@ -15,6 +15,7 @@ + */ + #include <errno.h> + #include <fcntl.h> ++#include <libgen.h> + #include <pthread.h> + #include <stdbool.h> + #include <stdio.h> +-- +2.44.0 + diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch new file mode 100644 index 0000000000..20095c86ab --- /dev/null +++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch @@ -0,0 +1,42 @@ +From 052818e91314b797d96d87672c60f6784160f935 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 25 Mar 2024 10:50:59 -0700 +Subject: [PATCH 2/2] Add missing STATX_ATTR_* defines from musl sys/stat.h + +These defines are not provided by sys/stat.h on musl but are +in glibc's sys/stat.h, therefore to compile the tests on musl +based systems add the missing defines from linux/stat.h +if they are not provided + +Upstream-Status: Submitted [https://lore.kernel.org/fstests/20240325175323.3450750-2-raj.khem@gmail.com/T/#u] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/statx.h | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/src/statx.h b/src/statx.h +index 3f239d79..12599f5b 100644 +--- a/src/statx.h ++++ b/src/statx.h +@@ -12,6 +12,18 @@ + #define AT_STATX_DONT_SYNC 0x4000 /* - Don't sync attributes with the server */ + #endif + ++#ifndef STATX_ATTR_COMPRESSED ++#define STATX_ATTR_COMPRESSED 0x00000004 /* [I] File is compressed by the fs */ ++#define STATX_ATTR_IMMUTABLE 0x00000010 /* [I] File is marked immutable */ ++#define STATX_ATTR_APPEND 0x00000020 /* [I] File is append-only */ ++#define STATX_ATTR_NODUMP 0x00000040 /* [I] File is not to be dumped */ ++#define STATX_ATTR_ENCRYPTED 0x00000800 /* [I] File requires key to decrypt in fs */ ++#define STATX_ATTR_AUTOMOUNT 0x00001000 /* Dir: Automount trigger */ ++#define STATX_ATTR_MOUNT_ROOT 0x00002000 /* Root of a mount */ ++#define STATX_ATTR_VERITY 0x00100000 /* [I] Verity protected file */ ++#define STATX_ATTR_DAX 0x00200000 /* File is currently in DAX state */ ++#endif ++ + #ifndef AT_NO_AUTOMOUNT + #define AT_NO_AUTOMOUNT 0x800 /* Suppress terminal automount traversal */ + #endif +-- +2.44.0 + diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch new file mode 100644 index 0000000000..e823297343 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch @@ -0,0 +1,31 @@ +From 79c4715a46b80653eb98b61731c094c85e969220 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 14 Aug 2022 13:33:05 -0700 +Subject: [PATCH] Drop detached_mounts_propagation and remove sys/mount.h from + vfs/utils.c + +with glibc 2.36+ sys/mount.h conflicts with linux/mount.h and here +linux/mount.h is included via xfs/xfs.h header and we need sys/mount.h +for the mount() API prototype. Until thats resolved lets not build this +testcase + +Upstream-Status: Inappropriate [Libc specific Workaround] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/Makefile b/src/Makefile +index e7442487..970f087a 100644 +--- a/src/Makefile ++++ b/src/Makefile +@@ -33,7 +33,7 @@ LINUX_TARGETS = xfsctl bstat t_mtab getdevicesize preallo_rw_pattern_reader \ + dio-invalidate-cache stat_test t_encrypted_d_revalidate \ + attr_replace_test swapon mkswap t_attr_corruption t_open_tmpfiles \ + fscrypt-crypt-util bulkstat_null_ocount splice-test chprojid_fail \ +- detached_mounts_propagation ext4_resize t_readdir_3 splice2pipe \ ++ ext4_resize t_readdir_3 splice2pipe \ + uuid_ioctl t_snapshot_deleted_subvolume + + EXTRA_EXECS = dmerror fill2attr fill2fs fill2fs_check scaleread.sh \ diff --git a/meta-filesystems/recipes-utils/xfstests/xfstests_2024.03.03.bb b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.03.03.bb new file mode 100644 index 0000000000..8d997ef643 --- /dev/null +++ b/meta-filesystems/recipes-utils/xfstests/xfstests_2024.03.03.bb @@ -0,0 +1,73 @@ +SUMMARY = "File system QA test suite" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSES/GPL-2.0;md5=74274e8a218423e49eefdea80bc55038" + +SRCREV = "088e5bd4cb6d7295612430a56ae84ff5c8f54730" +SRCREV_unionmount = "e3825b16b46f4c4574a1a69909944c059835f914" +SRCREV_FORMAT = "default_unionmount" + +SRC_URI = "git://git.kernel.org/pub/scm/fs/xfs/xfstests-dev.git;branch=master \ + git://github.com/amir73il/unionmount-testsuite.git;branch=master;protocol=https;name=unionmount;destsuffix=unionmount-testsuite \ + file://0001-add-missing-FTW_-macros-when-not-available-in-libc.patch \ + file://0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch \ + file://0001-include-libgen.h-for-basename-API-prototype.patch \ + file://0002-Add-missing-STATX_ATTR_-defines-from-musl-sys-stat.h.patch \ + " + +S = "${WORKDIR}/git" + +# brokensep because m4/package_globals.m4 calls ". ./VERSION" (and that's not the only issue) +inherit autotools-brokensep useradd + +DEPENDS += "xfsprogs acl" +RDEPENDS:${PN} += "\ + bash \ + bc \ + coreutils \ + e2fsprogs \ + e2fsprogs-tune2fs \ + e2fsprogs-resize2fs \ + libaio \ + libcap-bin \ + overlayfs-tools \ + perl \ + python3 \ + python3-core \ + xfsprogs \ + acl \ + gawk \ +" + +USERADD_PACKAGES = "${PN}" +# these users are necessary to run the tests +USERADD_PARAM:${PN} = "-U -m fsgqa; -N 123456-fsgqa; -N fsgqa2" + +EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" + +TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE" + +do_configure:prepend() { + # this is done by Makefile configure target, but we don't call it in do_configure + cp -a ${S}/include/install-sh . +} + +do_install() { + # otherwise install-sh duplicates DESTDIR prefix + export DIST_ROOT="/" DIST_MANIFEST="" DESTDIR="${D}" + oe_runmake install + + unionmount_target_dir=${D}${prefix}/xfstests/unionmount-testsuite + install -d $unionmount_target_dir/tests + install ${UNPACKDIR}/unionmount-testsuite/tests/* -t $unionmount_target_dir/tests + install ${UNPACKDIR}/unionmount-testsuite/*.py -t $unionmount_target_dir + install ${UNPACKDIR}/unionmount-testsuite/run -t $unionmount_target_dir + install ${UNPACKDIR}/unionmount-testsuite/README -t $unionmount_target_dir +} + +FILES:${PN} += "${prefix}/xfstests" + +# This one is reproducible only on 32bit MACHINEs +# http://errors.yoctoproject.org/Errors/Details/766963/ +# lstat64.c:65:14: error: passing argument 1 of 'time' from incompatible pointer type [-Wincompatible-pointer-types] +# bstat.c:18:19: error: passing argument 1 of 'ctime' from incompatible pointer type [-Wincompatible-pointer-types] +CFLAGS += "-Wno-error=incompatible-pointer-types" |