1
1
use uefi:: boot;
2
+ use uefi:: data_types:: Char16 ;
2
3
use uefi:: proto:: shell:: { Shell , ShellFileHandle } ;
3
4
use uefi:: CStr16 ;
4
- use uefi:: data_types:: Char16 ;
5
5
6
6
pub fn test ( ) {
7
7
info ! ( "Running shell protocol tests" ) ;
@@ -16,16 +16,27 @@ pub fn test() {
16
16
// let test_str = CStr16::from_str_with_buf("test", &mut test_buf).unwrap();
17
17
18
18
/* Test retrieving list of environment variable names (null input) */
19
- let cur_env_vec = shell. get_env ( None ) . expect ( "Could not get environment variable" ) . vec ( ) . unwrap ( ) ;
20
- let mut test_buf = [ 0u16 ; 64 ] ;
21
- assert_eq ! ( * cur_env_vec. get( 0 ) . unwrap( ) , CStr16 :: from_str_with_buf( "path" , & mut test_buf) . unwrap( ) ) ;
22
- assert_eq ! ( * cur_env_vec. get( 1 ) . unwrap( ) , CStr16 :: from_str_with_buf( "nonesting" , & mut test_buf) . unwrap( ) ) ;
19
+ let cur_env_vec = shell
20
+ . get_env ( None )
21
+ . expect ( "Could not get environment variable" )
22
+ . vec ( )
23
+ . unwrap ( ) ;
24
+ let mut test_buf = [ 0u16 ; 128 ] ;
25
+ assert_eq ! (
26
+ * cur_env_vec. get( 0 ) . unwrap( ) ,
27
+ CStr16 :: from_str_with_buf( "path" , & mut test_buf) . unwrap( )
28
+ ) ;
29
+ assert_eq ! (
30
+ * cur_env_vec. get( 1 ) . unwrap( ) ,
31
+ CStr16 :: from_str_with_buf( "nonesting" , & mut test_buf) . unwrap( )
32
+ ) ;
23
33
24
- // Debug statements TODO: Remove
25
- info ! ( "cur_env_vec size: {}" , cur_env_vec. len( ) ) ;
26
- for ( i, env_var) in cur_env_vec. iter ( ) . enumerate ( ) {
27
- info ! ( "i: {}, env_var: {}" , i, env_var) ;
28
- }
34
+ let path_val = shell
35
+ . get_env ( Some ( cur_env_vec. get ( 0 ) . unwrap ( ) ) )
36
+ . expect ( "Could not get path" )
37
+ . val ( )
38
+ . unwrap ( ) ;
39
+ assert_eq ! ( path_val, CStr16 :: from_str_with_buf( "FS0:\\ efi\\ tools\\ ;FS0:\\ efi\\ boot\\ ;FS0:\\ ;FS1:\\ efi\\ tools\\ ;FS1:\\ efi\\ boot\\ ;FS1:\\ ;FS2:\\ efi\\ tools\\ ;FS2:\\ efi\\ boot\\ ;FS2:\\ " , & mut test_buf) . unwrap( ) ) ;
29
40
30
41
/* Test setting and getting a specific environment variable */
31
42
let mut test_env_buf = [ 0u16 ; 32 ] ;
@@ -34,33 +45,35 @@ pub fn test() {
34
45
let test_val = CStr16 :: from_str_with_buf ( "test_val" , & mut test_val_buf) . unwrap ( ) ;
35
46
assert ! ( shell. get_env( Some ( test_var) ) . is_none( ) ) ;
36
47
shell. set_env ( test_var, test_val, false ) ;
37
- let cur_env_str = shell. get_env ( Some ( test_var) ) . expect ( "Could not get environment variable" ) . val ( ) . unwrap ( ) ;
48
+ let cur_env_str = shell
49
+ . get_env ( Some ( test_var) )
50
+ . expect ( "Could not get environment variable" )
51
+ . val ( )
52
+ . unwrap ( ) ;
38
53
assert_eq ! ( cur_env_str, test_val) ;
39
54
40
55
// let mut cur_fs_buf = [0u16; 32];
41
56
// let cur_fs_str = CStr16::from_str_with_buf("", &mut cur_fs_buf).unwrap();
42
57
// info!("cur_fs_str size 1: {}", cur_fs_str.num_chars());
43
58
44
-
45
59
// let cur_fs_str = shell.get_cur_dir(None).expect("Could not get the current file system mapping");
46
60
// info!("cur_fs_str size: {}", cur_fs_str.num_chars());
47
61
// info!("cur_fs_str: {}", cur_fs_str);
48
62
49
-
50
63
// for (i, c) in cur_fs_str.iter().enumerate() {
51
64
// info!("cur_fs_str: i: {}, c: {}", i, c);
52
65
// }
53
66
54
67
// unsafe {
55
- // info!("cur_fs_str: {}", cur_fs_str);
56
- // let mut expected_fs_str_buf = [0u16; 32];
57
- // assert_eq!(cur_fs_str, CStr16::from_str_with_buf("", &mut expected_fs_str_buf).unwrap());
58
- // //
59
- // Create a file
60
- // let status = shell.create_file(test_str, 0).expect("Could not create file");
61
- // let mut size: u64 = 0;
62
- // shell.get_file_size(f_handle, &mut size);
63
- // assert_eq!(size, 0);
68
+ // info!("cur_fs_str: {}", cur_fs_str);
69
+ // let mut expected_fs_str_buf = [0u16; 32];
70
+ // assert_eq!(cur_fs_str, CStr16::from_str_with_buf("", &mut expected_fs_str_buf).unwrap());
71
+ // //
72
+ // Create a file
73
+ // let status = shell.create_file(test_str, 0).expect("Could not create file");
74
+ // let mut size: u64 = 0;
75
+ // shell.get_file_size(f_handle, &mut size);
76
+ // assert_eq!(size, 0);
64
77
// }
65
78
66
79
// get file tree
0 commit comments