Skip to content

Commit e20ba60

Browse files
committed
integration test for is_file() and is_directory()
1 parent 3234604 commit e20ba60

File tree

1 file changed

+31
-11
lines changed

1 file changed

+31
-11
lines changed

uefi-test-runner/src/proto/media/known_disk.rs

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,13 @@ fn test_existing_dir(directory: &mut Directory) {
1515
info!("Testing existing directory");
1616

1717
let input_dir_path = cstr16!("test_dir");
18-
let mut dir = directory
18+
let dir = directory
1919
.open(input_dir_path, FileMode::Read, FileAttribute::empty())
20-
.expect("failed to open directory")
20+
.expect("failed to open directory");
21+
22+
assert!(dir.is_directory().unwrap());
23+
24+
let mut dir = dir
2125
.into_directory()
2226
.expect("not a directory");
2327

@@ -129,13 +133,17 @@ fn test_create_file(directory: &mut Directory) {
129133
info!("Testing file creation");
130134

131135
// Create a new file.
132-
let mut file = directory
136+
let file = directory
133137
.open(
134138
cstr16!("new_test_file.txt"),
135139
FileMode::CreateReadWrite,
136140
FileAttribute::empty(),
137141
)
138-
.expect("failed to create file")
142+
.expect("failed to create file");
143+
144+
assert!(file.is_regular_file().unwrap());
145+
146+
let mut file = file
139147
.into_regular_file()
140148
.expect("not a regular file");
141149
file.write(b"test output data").unwrap();
@@ -261,10 +269,22 @@ pub fn test_known_disk(bt: &BootServices) {
261269
let mut sfs = bt
262270
.open_protocol_exclusive::<SimpleFileSystem>(handle)
263271
.expect("Failed to get simple file system");
264-
let mut directory = sfs.open_volume().unwrap();
272+
let mut root_directory = sfs.open_volume().unwrap();
273+
274+
// test is_directory() and is_regular_file() from the File trait which is the
275+
// base for into_type() used later in the test.
276+
{
277+
// because File is "Sized", we cannot cast it to &dyn
278+
fn test_is_directory(file: &impl File) {
279+
assert_eq!(Ok(true), file.is_directory());
280+
assert_eq!(Ok(false), file.is_regular_file());
281+
}
282+
test_is_directory(&root_directory);
283+
}
284+
265285

266286
let mut fs_info_buf = vec![0; 128];
267-
let fs_info = directory
287+
let fs_info = root_directory
268288
.get_info::<FileSystemInfo>(&mut fs_info_buf)
269289
.unwrap();
270290

@@ -281,13 +301,13 @@ pub fn test_known_disk(bt: &BootServices) {
281301
assert_eq!(fs_info.block_size(), 512);
282302

283303
// Check that `get_boxed_info` returns the same info.
284-
let boxed_fs_info = directory.get_boxed_info::<FileSystemInfo>().unwrap();
304+
let boxed_fs_info = root_directory.get_boxed_info::<FileSystemInfo>().unwrap();
285305
assert_eq!(*fs_info, *boxed_fs_info);
286306

287-
test_existing_dir(&mut directory);
288-
test_delete_warning(&mut directory);
289-
test_existing_file(&mut directory);
290-
test_create_file(&mut directory);
307+
test_existing_dir(&mut root_directory);
308+
test_delete_warning(&mut root_directory);
309+
test_existing_file(&mut root_directory);
310+
test_create_file(&mut root_directory);
291311
}
292312

293313
test_raw_disk_io(handle, bt);

0 commit comments

Comments
 (0)