From: Luis Henriques Date: Tue, 23 May 2017 16:19:55 +0000 (+0100) Subject: src/seek_sanity_test: fix test15 SEEK_HOLE expected results X-Git-Tag: v2022.05.01~2035 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=890f2b5ae24f5155f93c541a31cccd22c585b75d;p=xfstests-dev.git 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 --- 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);