From 5b09e721d3a390bbe79ac0403ab0670faeb12823 Mon Sep 17 00:00:00 2001 From: Casper Beyer Date: Mon, 6 Jul 2020 09:36:45 +0800 Subject: [PATCH] test(std/wasi) add std::fs::File seek test (#6648) --- std/wasi/testdata/std_fs_file_seek.rs | 33 +++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 std/wasi/testdata/std_fs_file_seek.rs diff --git a/std/wasi/testdata/std_fs_file_seek.rs b/std/wasi/testdata/std_fs_file_seek.rs new file mode 100644 index 0000000000..1e2a9d7def --- /dev/null +++ b/std/wasi/testdata/std_fs_file_seek.rs @@ -0,0 +1,33 @@ +// { "preopens": { "/fixture": "fixture" } } + +use std::io::Seek; + +fn main() { + let mut file = std::fs::File::open("/fixture/file").unwrap(); + assert_eq!(file.seek(std::io::SeekFrom::Current(0)).unwrap(), 0); + + assert_eq!(file.seek(std::io::SeekFrom::Start(1)).unwrap(), 1); + assert_eq!(file.seek(std::io::SeekFrom::Start(2)).unwrap(), 2); + assert_eq!(file.seek(std::io::SeekFrom::Start(3)).unwrap(), 3); + assert_eq!(file.seek(std::io::SeekFrom::Start(4)).unwrap(), 4); + assert_eq!(file.seek(std::io::SeekFrom::Start(5)).unwrap(), 5); + + assert_eq!(file.seek(std::io::SeekFrom::Current(-1)).unwrap(), 4); + assert_eq!(file.seek(std::io::SeekFrom::Current(-1)).unwrap(), 3); + assert_eq!(file.seek(std::io::SeekFrom::Current(-1)).unwrap(), 2); + assert_eq!(file.seek(std::io::SeekFrom::Current(-1)).unwrap(), 1); + assert_eq!(file.seek(std::io::SeekFrom::Current(-1)).unwrap(), 0); + + assert_eq!(file.seek(std::io::SeekFrom::Current(1)).unwrap(), 1); + assert_eq!(file.seek(std::io::SeekFrom::Current(1)).unwrap(), 2); + assert_eq!(file.seek(std::io::SeekFrom::Current(1)).unwrap(), 3); + assert_eq!(file.seek(std::io::SeekFrom::Current(1)).unwrap(), 4); + assert_eq!(file.seek(std::io::SeekFrom::Current(1)).unwrap(), 5); + + assert_eq!(file.seek(std::io::SeekFrom::End(0)).unwrap(), 5); + assert_eq!(file.seek(std::io::SeekFrom::End(-1)).unwrap(), 4); + assert_eq!(file.seek(std::io::SeekFrom::End(-2)).unwrap(), 3); + assert_eq!(file.seek(std::io::SeekFrom::End(-3)).unwrap(), 2); + assert_eq!(file.seek(std::io::SeekFrom::End(-4)).unwrap(), 1); + assert_eq!(file.seek(std::io::SeekFrom::End(-5)).unwrap(), 0); +}