MCPcopy Create free account
hub / github.com/bytecodealliance/system-interface / write_at

Function write_at

tests/vectored_at.rs:537–562  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

535
536#[test]
537fn write_at() {
538 let dir = tempfile::tempdir().unwrap();
539 let file = check!(OpenOptions::new()
540 .create_new(true)
541 .read(true)
542 .write(true)
543 .open(dir.path().join("file")));
544 check!(write!(&file, "abcdefghijklmnopqrstuvwxyz"));
545 let buf0 = b"EFGHIJKL".to_vec();
546 let buf1 = b"MNOPQRST".to_vec();
547 let nwritten0 = check!(file.write_at(&buf0, 4));
548 let nwritten1 = check!(file.write_at(&buf1, 12));
549 assert_eq!(check!(file.stream_position()), 26);
550 let mut back = String::new();
551 check!(file.seek(std::io::SeekFrom::Start(0)));
552 check!(file.read_to_string(&mut back));
553 if nwritten0 == 8 {
554 if nwritten1 == 8 {
555 assert_eq!(back, "abcdEFGHIJKLMNOPQRSTuvwxyz");
556 } else {
557 assert_eq!(&back.as_bytes()[0..4 + nwritten0], b"abcdEFGHIJKL");
558 }
559 }
560 assert!(nwritten0 <= 8);
561 assert!(nwritten1 <= 8);
562}
563
564#[test]
565fn write_after_end() {

Callers 1

write_atMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected