Skip to content

Commit 174bec6

Browse files
unit test for Emulatedfile (#244)
- included additional unit tests for file Signed-off-by: naveensrinivasan <[email protected]>
1 parent e15acc9 commit 174bec6

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@ linddata*
2020
gen_netdevs
2121
lind.metadata
2222
lind.md.log
23+
test_file.txt
24+

src/interface/file.rs

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,4 +478,60 @@ mod tests {
478478
let non_existent_file = "/tmp/non_existent_file.txt";
479479
assert!(!pathexists(non_existent_file.to_string()));
480480
}
481+
#[test]
482+
fn test_new_emulated_file() {
483+
let filename = "test_file.txt";
484+
let filesize = 1024;
485+
486+
let emulated_file = EmulatedFile::new(filename.to_string(), filesize).unwrap();
487+
488+
assert_eq!(emulated_file.filename, filename);
489+
assert_eq!(emulated_file.filesize, filesize);
490+
assert!(emulated_file.fobj.is_some());
491+
}
492+
493+
#[test]
494+
fn test_new_metadata_emulated_file() {
495+
let temp_file = NamedTempFile::new().unwrap();
496+
let file_path = temp_file.path().to_str().unwrap().to_string();
497+
498+
let emulated_file = EmulatedFile::new_metadata(file_path.clone()).unwrap();
499+
500+
assert_eq!(emulated_file.filename, file_path);
501+
assert!(emulated_file.fobj.is_some());
502+
}
503+
#[test]
504+
fn test_readat_emulated_file() {
505+
let temp_file = NamedTempFile::new().unwrap();
506+
let file_path = temp_file.path().to_str().unwrap().to_string();
507+
let file_content = b"Hello, world!";
508+
temp_file.as_file().write_all(file_content).unwrap();
509+
510+
let emulated_file = EmulatedFile::new(file_path.clone(), file_content.len()).unwrap();
511+
512+
let mut buffer = vec![0; file_content.len()];
513+
let bytes_read = emulated_file.readat(buffer.as_mut_ptr(), buffer.len(), 0).unwrap();
514+
515+
assert_eq!(bytes_read, file_content.len());
516+
assert_eq!(buffer, file_content);
517+
}
518+
519+
#[test]
520+
fn test_writeat_emulated_file() {
521+
let temp_file = NamedTempFile::new().unwrap();
522+
let file_path = temp_file.path().to_str().unwrap().to_string();
523+
let file_content = b"Hello, world!";
524+
525+
let mut emulated_file = EmulatedFile::new(file_path.clone(), file_content.len()).unwrap();
526+
527+
let new_content = b"test_writeat_emulated_file, world!";
528+
let bytes_written = emulated_file.writeat(new_content.as_ptr(), new_content.len(), 0).unwrap();
529+
530+
assert_eq!(bytes_written, new_content.len());
531+
assert_eq!(emulated_file.filesize, new_content.len());
532+
533+
let mut buffer = vec![0; new_content.len()];
534+
emulated_file.readat(buffer.as_mut_ptr(), buffer.len(), 0).unwrap();
535+
assert_eq!(buffer, new_content);
536+
}
481537
}

0 commit comments

Comments
 (0)