[PATCH v2] src/seek_sanity_test: fix test15 SEEK_HOLE expected results

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



Filesystesm with the "default behaviour" 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 behaviour" will set the
position at 4 << 20 + PAGE_SIZE.

Reviewed-by: Jan Kara <jack@xxxxxxx>
Signed-off-by: Luis Henriques <lhenriques@xxxxxxxx>
---
- Changes since v1
  Updated with Eryu suggestions (thanks for reviewing!): update filsz
  after the last write and set the expected result for the 5th test to
  'filsz - bufsz'.

 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 d52e2b6dab79..064a8fa5822f 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);
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux