From 890f2b5ae24f5155f93c541a31cccd22c585b75d Mon Sep 17 00:00:00 2001 From: Luis Henriques Date: Tue, 23 May 2017 17:19:55 +0100 Subject: [PATCH] src/seek_sanity_test: fix test15 SEEK_HOLE expected results Filesystesm with the "default behavior" will always return the offset of the end of the file when lseek'ing with SEEK_HOLE. This test does the following: - fallocate 4 << 20 bytes - write PAGE_SIZE bytes at offset 0 - writes PAGE_SIZE bytes at offset 4 << 20 Thus, using lseek in an FS with the "default behavior" will set the position at 4 << 20 + PAGE_SIZE. Reviewed-by: Jan Kara Signed-off-by: Luis Henriques Signed-off-by: Eryu Guan --- src/seek_sanity_test.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c index d52e2b6d..064a8fa5 100644 --- a/src/seek_sanity_test.c +++ b/src/seek_sanity_test.c @@ -334,12 +334,15 @@ static int test15(int fd, int testnum) if (ret) goto out; + /* update file size */ + filsz += bufsz; + /* offset at the beginning */ ret += do_lseek(testnum, 1, fd, filsz, SEEK_HOLE, 0, bufsz); ret += do_lseek(testnum, 2, fd, filsz, SEEK_HOLE, 1, bufsz); ret += do_lseek(testnum, 3, fd, filsz, SEEK_DATA, 0, 0); ret += do_lseek(testnum, 4, fd, filsz, SEEK_DATA, 1, 1); - ret += do_lseek(testnum, 5, fd, filsz, SEEK_DATA, bufsz, filsz); + ret += do_lseek(testnum, 5, fd, filsz, SEEK_DATA, bufsz, filsz - bufsz); out: do_free(buf); -- 2.39.5