Skip to content

Commit 3453c5b

Browse files
committed
Adding more tests for env and cur_dir functions
1 parent 68cfb8d commit 3453c5b

File tree

1 file changed

+47
-2
lines changed

1 file changed

+47
-2
lines changed

uefi-test-runner/src/proto/shell.rs

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,22 @@ pub fn test() {
4545
let mut test_val_buf = [0u16; 32];
4646
let test_val = CStr16::from_str_with_buf("test_val", &mut test_val_buf).unwrap();
4747
assert!(shell.get_env(Some(test_var)).is_none());
48-
shell.set_env(test_var, test_val, false);
48+
let status = shell.set_env(test_var, test_val, false);
49+
assert_eq!(status, Status::SUCCESS);
4950
let cur_env_str = shell
5051
.get_env(Some(test_var))
5152
.expect("Could not get environment variable")
5253
.val()
5354
.unwrap();
5455
assert_eq!(cur_env_str, test_val);
5556

56-
/* Test setting and getting current directory */
57+
/* Test deleting environment variable */
58+
let test_val = CStr16::from_str_with_buf("", &mut test_val_buf).unwrap();
59+
let status = shell.set_env(test_var, test_val, false);
60+
assert_eq!(status, Status::SUCCESS);
61+
assert!(shell.get_env(Some(test_var)).is_none());
62+
63+
/* Test setting and getting current file system and directory */
5764
let mut fs_buf = [0u16; 16];
5865
let fs_var = CStr16::from_str_with_buf("fs0:", &mut fs_buf).unwrap();
5966
let mut dir_buf = [0u16; 32];
@@ -65,6 +72,44 @@ pub fn test() {
6572
let expected_fs_str = CStr16::from_str_with_buf("FS0:\\", &mut test_buf).unwrap();
6673
assert_eq!(cur_fs_str, expected_fs_str);
6774

75+
let fs_var = CStr16::from_str_with_buf("fs1:", &mut fs_buf).unwrap();
76+
let dir_var = CStr16::from_str_with_buf("/", &mut dir_buf).unwrap();
77+
let status = shell.set_cur_dir(Some(fs_var), Some(dir_var));
78+
assert_eq!(status, Status::SUCCESS);
79+
80+
let cur_fs_str = shell.get_cur_dir(Some(fs_var)).expect("Could not get the current file system mapping");
81+
assert_ne!(cur_fs_str, expected_fs_str);
82+
let expected_fs_str = CStr16::from_str_with_buf("FS1:\\", &mut test_buf).unwrap();
83+
assert_eq!(cur_fs_str, expected_fs_str);
84+
85+
let fs_var = CStr16::from_str_with_buf("fs0:", &mut fs_buf).unwrap();
86+
let dir_var = CStr16::from_str_with_buf("efi/", &mut dir_buf).unwrap();
87+
let status = shell.set_cur_dir(Some(fs_var), Some(dir_var));
88+
assert_eq!(status, Status::SUCCESS);
89+
90+
let cur_fs_str = shell.get_cur_dir(Some(fs_var)).expect("Could not get the current file system mapping");
91+
assert_ne!(cur_fs_str, expected_fs_str);
92+
let expected_fs_str = CStr16::from_str_with_buf("FS0:\\efi", &mut test_buf).unwrap();
93+
assert_eq!(cur_fs_str, expected_fs_str);
94+
95+
/* Test NULL file system cases */
96+
let dir_var = CStr16::from_str_with_buf("fs0:/", &mut dir_buf).unwrap();
97+
let status = shell.set_cur_dir(None, Some(dir_var));
98+
assert_eq!(status, Status::SUCCESS);
99+
let cur_fs_str = shell.get_cur_dir(Some(fs_var)).expect("Could not get the current file system mapping");
100+
let expected_fs_str = CStr16::from_str_with_buf("FS0:", &mut test_buf).unwrap();
101+
assert_eq!(cur_fs_str, expected_fs_str);
102+
103+
let cur_fs_str = shell.get_cur_dir(None).expect("Could not get the current file system mapping");
104+
assert_eq!(cur_fs_str, expected_fs_str);
105+
106+
let dir_var = CStr16::from_str_with_buf("/efi", &mut dir_buf).unwrap();
107+
let status = shell.set_cur_dir(None, Some(dir_var));
108+
assert_eq!(status, Status::SUCCESS);
109+
let cur_fs_str = shell.get_cur_dir(Some(fs_var)).expect("Could not get the current file system mapping");
110+
let expected_fs_str = CStr16::from_str_with_buf("FS0:\\efi", &mut test_buf).unwrap();
111+
assert_eq!(cur_fs_str, expected_fs_str);
112+
68113
// Create a file
69114
// let status = shell.create_file(test_str, 0).expect("Could not create file");
70115
// let mut size: u64 = 0;

0 commit comments

Comments
 (0)