Subject: [PATCH staging] gnu: libaio: Skip tests which fail on btrfs

From: Ryan Sundberg <[email-masked]>
Date: Sun, 30 Jul 2023 22:04:25 -0700

Test cases #18 and #21 of libaio depend on the behavior of O_DIRECT on
the filesystem. However, on Btrfs, although O_DIRECT is nominally
reported as supported by the filesystem, the behavior can not be relied
on when checksumming is enabled on the filesystem. See
https://patchwork.kernel.org/project/linux-btrfs/patch/[email-masked]/

Skip these two test cases unconditionally in libaio, since they do not
pass when run on a default Btrfs filesystem.

* gnu/local.mk (patches): Include patch file
* gnu/packages/patches/libaio-btrfs-test.patch: Patch disabling tests
* gnu/packages/linux.scm (libaio): Include patch
---
 gnu/local.mk                                 |  1 +
 gnu/packages/linux.scm                       |  3 ++-
 gnu/packages/patches/libaio-btrfs-test.patch | 26 ++++++++++++++++++++
 3 files changed, 29 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/libaio-btrfs-test.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index bc82251d74..1a09ae40df 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1475,6 +1475,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/liba52-set-soname.patch			\
   %D%/packages/patches/liba52-use-mtune-not-mcpu.patch		\
   %D%/packages/patches/libaio-32bit-test.patch                  \
+  %D%/packages/patches/libaio-btrfs-test.patch                  \
   %D%/packages/patches/libaio-riscv-test5.patch			\
   %D%/packages/patches/libbase-fix-includes.patch		\
   %D%/packages/patches/libbase-use-own-logging.patch		\
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 56deee1c2a..896af161db 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -5738,7 +5738,8 @@ (define-public libaio
               (sha256
                (base32
                 "02r0g2vfv6kfljplm3ga93w4xw13q2wixbn9hwi7ahqdzp2x2i1c"))
-              (patches (search-patches "libaio-32bit-test.patch"))))
+              (patches (search-patches "libaio-32bit-test.patch"
+                                       "libaio-btrfs-test.patch"))))
     (build-system gnu-build-system)
     (arguments
      (list #:make-flags
diff --git a/gnu/packages/patches/libaio-btrfs-test.patch b/gnu/packages/patches/libaio-btrfs-test.patch
new file mode 100644
index 0000000000..3b98c34073
--- /dev/null
+++ b/gnu/packages/patches/libaio-btrfs-test.patch
@@ -0,0 +1,26 @@
+These test cases fail on Btrfs, where O_DIRECT is not honored when the file has checksumming enabled. See https://patchwork.kernel.org/project/linux-btrfs/patch/[email-masked]/
+
+diff --git a/harness/cases/18.t b/harness/cases/18.t
+index e8dbcd1..3cf0f45 100644
+--- a/harness/cases/18.t
++++ b/harness/cases/18.t
+@@ -92,6 +92,7 @@ aio_worker(void *ptr)
+ int
+ test_main(void)
+ {
++	return 3;
+ 	int i, fd, ret;
+ 	char *buffer = NULL;
+ 	pthread_t threads[THREADS_NUM];
+diff --git a/harness/cases/21.t b/harness/cases/21.t
+index 4164c02..30f85ea 100644
+--- a/harness/cases/21.t
++++ b/harness/cases/21.t
+@@ -56,6 +56,7 @@ open_temp_file()
+ int
+ test_main()
+ {
++	return 3;
+ 	int fd, flags;
+ 	int ret;
+ 	io_context_t ctx;

base-commit: eb12f3fd8bee99920118ec802ffbac8f1ab676b9
prerequisite-patch-id: 99d9c55abf1d70ab7e9ee559c58f2389430b7d43
prerequisite-patch-id: d4daa55a9f2791497bcfde7a48a4811827c0f90e
prerequisite-patch-id: 6f8cafbf0465a61a6748a710a859135bc4cb0ea7
prerequisite-patch-id: 835622cd07735ec07dbeef465f0817af57b6d3c6
prerequisite-patch-id: db0ff59e276afb733c62f4b29ff4f379c8d52d47
prerequisite-patch-id: ebde2bf229485e13699456ffe4056d06e2364f04
prerequisite-patch-id: 01029b738d0c299f69a6d7fbcde9c4e3f083b9ac
prerequisite-patch-id: 4246eb3c404d41ef91c90505b4fdec88df0c8d75
prerequisite-patch-id: e95ed16e7f642a77c7756953cb0778583b93c8e1
prerequisite-patch-id: 71056238845256e8055c2186c21eb7d4a50ccc07
prerequisite-patch-id: f90b9dced371c91b9b0aaf07aef50a5a5ad719e4
prerequisite-patch-id: 2ca7a296d68231bc0b6d07b749e5dfd92af756a7
prerequisite-patch-id: d9dbc316634146c9441aafee3f64bdae1187c587
prerequisite-patch-id: f6f1ee970832b73b12af5d1bb74ad60f0de69add
prerequisite-patch-id: ae91593d22102455ae52dfade378cc94507a2d0f
prerequisite-patch-id: 8d9cf7b6d1e62d677cbd1586fda34c9a91a58c9e
prerequisite-patch-id: 51cde9f131d79feea5728c6842637396b1752242
prerequisite-patch-id: 9f46c451d7dac250d5bb426560a86b902370efb5
prerequisite-patch-id: d2fb36fedcfe86396d9a64abfcc8e29cecf9f99b
prerequisite-patch-id: fe8a73304c9247fb9ef4404fc59454d915fb8f0b
prerequisite-patch-id: 11d05ff55d8a68b972645ba6f6d88186346d8263
prerequisite-patch-id: 6445c80c153a3e5fa095cb7f60818cf20a39fffb
prerequisite-patch-id: 7aadf1ed53f1aed5f0dc443ed0b5fb301313d98a
prerequisite-patch-id: 16357f28c29b7d000f55c1edecb1da409b427bf1
prerequisite-patch-id: 3340c9773828448c84310d26e5440007d0aef4fb
prerequisite-patch-id: 5ee41ad468a59f27fd9cd6d61870421620668c37
prerequisite-patch-id: c52c50c4eb2545543a2c7ada54c58387acc87975
prerequisite-patch-id: f1c75ed2befef8777a36cda45a194271d5ede6f2
prerequisite-patch-id: d3ace3b7988bfdd144effea6f4504d8208f36bf0
prerequisite-patch-id: a399acd3a57b7c0d1509adf45061c8319f5a96b2
prerequisite-patch-id: 44c9d5bd94d721b1eb383f254804f935cd9368ac
prerequisite-patch-id: 4f1d56204c6bcb76764cd9ae4525c6e90cb834a4
prerequisite-patch-id: 1932f2836471ba84609489ebd7960fe567b315d8
prerequisite-patch-id: d54824c2873062611f7597746bd2f2fa1d8b6e09
prerequisite-patch-id: 78fe2c97a708363504be645a8a7b943b8bbbf69f
prerequisite-patch-id: d528d1333d2f0d5b72dde652f17411f5a416982b
prerequisite-patch-id: eaeeb7a1301593eddb0708cca9a6cddc422b1217
prerequisite-patch-id: d73bacd643bb8ed481115c2dba9db2aac5b49c4a
prerequisite-patch-id: b36b366f21ae583ea9beab562795af78d21fd917
prerequisite-patch-id: f83d4d9951151a589de29984910fcaede108f385
prerequisite-patch-id: 4854545488dfb55d964b1946e097d2662d845840
prerequisite-patch-id: 0c74eff6d5d2bf2044968693a69d3b9a59f223ba
prerequisite-patch-id: 8d1e7910dff1003ac0bf5b47611c444b84820c8a
prerequisite-patch-id: 8a874b01d383d7a47a862c00a8373699d0dbb9b6
prerequisite-patch-id: 6024a1fc93505b6ee8a9ff1453fd3afb562bbebb
prerequisite-patch-id: 8f36404aaa383f4be97ffe01792098bc50c610c2
prerequisite-patch-id: 1ea7641e8f87012631f15b7e633e15d515842125
prerequisite-patch-id: 4de305c2def04f5c7b464fb30cbe2c8abb131918
prerequisite-patch-id: 6b0ce107d600957a9313061eb209ab54c183e12a
prerequisite-patch-id: 162dc964e4402884081fe4b342ff09ad866746c1
prerequisite-patch-id: 3632a4b1efa7980d381828d5941e7350c6404531
prerequisite-patch-id: 41d0097423dade32486c5e24007b74366406d876
prerequisite-patch-id: d1216442d8ee43eea611ecf0ef30a2bebec39474
prerequisite-patch-id: 193aca81f2f90ea31f8bc67034df9bbc4d99a93f
prerequisite-patch-id: e88531583952c5dbb38cc36b708f3cd958db77ac
prerequisite-patch-id: 004559103ce383e01c9f8c5b3be79b873bb12ae8
prerequisite-patch-id: 4c023d849419c9450860700b4476ebb6ba3add74
prerequisite-patch-id: cf8d1d13c5cc6d33c49a929873565b45a74c725b
prerequisite-patch-id: 660b5013bdd2fea8206c8a8ead5363a09c9c6db4
prerequisite-patch-id: 19cdfa86afd4eeaab38f6ba361b7127add0e6bd4
prerequisite-patch-id: ec0b3451ee5193745ac04529d425ce25e3a9c3b2
prerequisite-patch-id: 456bd7ae6fbd70469d89b25587e30b3171d0fd2b
prerequisite-patch-id: 0ca0c858339d534c40582a61e60ff5846f74aaeb
prerequisite-patch-id: 1db138ed3e7615512b620522d8177837f9af7fca
prerequisite-patch-id: 78b60bf802c202c3650a835b513e2e64a312b731
prerequisite-patch-id: 7f71fc28701abed8414038a741feafb06c063338
prerequisite-patch-id: e0215728344a56b6feeab5359b0de3cc217bd09f
prerequisite-patch-id: b685b2d196e52fa83a28ce25d491fb9472309a27
prerequisite-patch-id: 7cfeaf2fbf49fa4d2d8f5f03e6b70846a27b5c08
prerequisite-patch-id: c5d6d7d1b69d95bf1594eaea00cab9760028d6f8
prerequisite-patch-id: 140df424bcce9350851e21299b5142daeb608743
prerequisite-patch-id: ca2fa1d47eceb38a1c4366025334a86a5fb58e41
prerequisite-patch-id: 2785ebadc4993b82c2769a422c2af9aeb458952e
prerequisite-patch-id: 300f31efa7e846b505046391622da44140246d61
prerequisite-patch-id: 6f597a70fb7184bb3077192975a659917afe412b
prerequisite-patch-id: 7492ffb004ea7a574662d9bd8fd4abfe7e3bf46e
prerequisite-patch-id: 8de9aa65487adb755b0b9c61351e1f0904ae1972
-- 
2.39.2