From ddd73c7a96b2674e9254013a13ae899a0cbe1977 Mon Sep 17 00:00:00 2001 From: Luis Henriques Date: Mon, 27 Aug 2018 14:12:11 +0100 Subject: [PATCH] src/seek_sanity_test: skip test20 if file's too big Since the allocation size can be quite big for some filesystems (4194304 for cephfs), the pwrite operation in test20 may fail with EFBIG. Skip this test if that's the case. Signed-off-by: Luis Henriques Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- src/seek_sanity_test.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c index e5aab239..e9938d1b 100644 --- a/src/seek_sanity_test.c +++ b/src/seek_sanity_test.c @@ -280,8 +280,17 @@ static int test20(int fd, int testnum) /* Magic size in the middle of ext[23] triple indirect tree */ filsz = (12 + bufsz / 4 + 8 * bufsz / 4 * bufsz / 4 + 2 * bufsz / 4 + 5) * bufsz; ret = do_pwrite(fd, buf, bufsz, filsz - bufsz); - if (ret) + if (ret) { + /* + * Report success. Filesystem just cannot handle so large + * offsets and correctly reports it. + */ + if (errno == EFBIG) { + fprintf(stdout, "Test skipped as fs doesn't support so large files.\n"); + ret = 0; + } goto out; + } /* Offset inside ext[23] indirect block */ ret += do_lseek(testnum, 1, fd, filsz, SEEK_DATA, 14 * bufsz, filsz - bufsz); -- 2.30.2