diff --git a/tests/wasi-fyi/fs_seek_append_mode.rs b/tests/wasi-fyi/fs_seek_append_mode.rs new file mode 100644 index 00000000000..7e1d54321f0 --- /dev/null +++ b/tests/wasi-fyi/fs_seek_append_mode.rs @@ -0,0 +1,24 @@ +use std::fs::OpenOptions; +use std::io::prelude::*; +use std::io::SeekFrom; + +fn main() { + let mut file = OpenOptions::new() + .append(true) + .read(true) + .create(true) + .open("file") + .unwrap(); + + // file offset must be 1 now + write!(file, "{}", "a").unwrap(); + + // rewind should not work on file in append mode + // since the offset must always be at the end of the file + let _ = file.rewind(); + + // file offset must be 2 now + write!(file, "{}", "b").unwrap(); + + assert_eq!(file.seek(SeekFrom::Current(0)).unwrap(), 2); +}