File tree 7 files changed +54
-34
lines changed
7 files changed +54
-34
lines changed Original file line number Diff line number Diff line change @@ -103,7 +103,7 @@ impl UefiBoot {
103
103
}
104
104
105
105
/// Add a ramdisk file to the disk image
106
- pub fn with_ramdisk ( & mut self , ramdisk_path : & Path ) -> & mut Self {
106
+ pub fn set_ramdisk ( & mut self , ramdisk_path : & Path ) -> & mut Self {
107
107
self . ramdisk = Some ( ramdisk_path. to_owned ( ) ) ;
108
108
self
109
109
}
Original file line number Diff line number Diff line change @@ -2,21 +2,24 @@ use bootloader_test_runner::run_test_kernel;
2
2
3
3
#[ test]
4
4
fn basic_boot ( ) {
5
- run_test_kernel ( env ! (
6
- "CARGO_BIN_FILE_TEST_KERNEL_DEFAULT_SETTINGS_basic_boot"
7
- ) ) ;
5
+ run_test_kernel (
6
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_DEFAULT_SETTINGS_basic_boot" ) ,
7
+ None ,
8
+ ) ;
8
9
}
9
10
10
11
#[ test]
11
12
fn should_panic ( ) {
12
- run_test_kernel ( env ! (
13
- "CARGO_BIN_FILE_TEST_KERNEL_DEFAULT_SETTINGS_should_panic"
14
- ) ) ;
13
+ run_test_kernel (
14
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_DEFAULT_SETTINGS_should_panic" ) ,
15
+ None ,
16
+ ) ;
15
17
}
16
18
17
19
#[ test]
18
20
fn check_boot_info ( ) {
19
- run_test_kernel ( env ! (
20
- "CARGO_BIN_FILE_TEST_KERNEL_DEFAULT_SETTINGS_check_boot_info"
21
- ) ) ;
21
+ run_test_kernel (
22
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_DEFAULT_SETTINGS_check_boot_info" ) ,
23
+ None ,
24
+ ) ;
22
25
}
Original file line number Diff line number Diff line change @@ -2,24 +2,32 @@ use bootloader_test_runner::run_test_kernel;
2
2
3
3
#[ test]
4
4
fn basic_boot ( ) {
5
- run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_basic_boot" ) ) ;
5
+ run_test_kernel (
6
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_basic_boot" ) ,
7
+ None ,
8
+ ) ;
6
9
}
7
10
8
11
#[ test]
9
12
fn should_panic ( ) {
10
- run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_should_panic" ) ) ;
13
+ run_test_kernel (
14
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_should_panic" ) ,
15
+ None ,
16
+ ) ;
11
17
}
12
18
13
19
#[ test]
14
20
fn check_boot_info ( ) {
15
- run_test_kernel ( env ! (
16
- "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_check_boot_info"
17
- ) ) ;
21
+ run_test_kernel (
22
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_check_boot_info" ) ,
23
+ None ,
24
+ ) ;
18
25
}
19
26
20
27
#[ test]
21
28
fn verify_higher_half ( ) {
22
- run_test_kernel ( env ! (
23
- "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_verify_higher_half"
24
- ) ) ;
29
+ run_test_kernel (
30
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_HIGHER_HALF_verify_higher_half" ) ,
31
+ None ,
32
+ ) ;
25
33
}
Original file line number Diff line number Diff line change @@ -21,5 +21,5 @@ fn basic_boot() {
21
21
. join ( "basic_boot" ) ;
22
22
assert ! ( kernel_path. exists( ) ) ;
23
23
24
- run_test_kernel ( kernel_path. as_path ( ) . to_str ( ) . unwrap ( ) ) ;
24
+ run_test_kernel ( kernel_path. as_path ( ) . to_str ( ) . unwrap ( ) , None ) ;
25
25
}
Original file line number Diff line number Diff line change @@ -2,14 +2,16 @@ use bootloader_test_runner::run_test_kernel;
2
2
3
3
#[ test]
4
4
fn check_boot_info ( ) {
5
- run_test_kernel ( env ! (
6
- "CARGO_BIN_FILE_TEST_KERNEL_MAP_PHYS_MEM_check_boot_info"
7
- ) ) ;
5
+ run_test_kernel (
6
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_MAP_PHYS_MEM_check_boot_info" ) ,
7
+ None ,
8
+ ) ;
8
9
}
9
10
10
11
#[ test]
11
12
fn access_phys_mem ( ) {
12
- run_test_kernel ( env ! (
13
- "CARGO_BIN_FILE_TEST_KERNEL_MAP_PHYS_MEM_access_phys_mem"
14
- ) ) ;
13
+ run_test_kernel (
14
+ env ! ( "CARGO_BIN_FILE_TEST_KERNEL_MAP_PHYS_MEM_access_phys_mem" ) ,
15
+ None ,
16
+ ) ;
15
17
}
Original file line number Diff line number Diff line change @@ -2,20 +2,20 @@ use bootloader_test_runner::run_test_kernel;
2
2
3
3
#[ test]
4
4
fn basic_boot ( ) {
5
- run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_basic_boot" ) ) ;
5
+ run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_basic_boot" ) , None ) ;
6
6
}
7
7
8
8
#[ test]
9
9
fn should_panic ( ) {
10
- run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_should_panic" ) ) ;
10
+ run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_should_panic" ) , None ) ;
11
11
}
12
12
13
13
#[ test]
14
14
fn check_boot_info ( ) {
15
- run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_check_boot_info" ) ) ;
15
+ run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_check_boot_info" ) , None ) ;
16
16
}
17
17
18
18
#[ test]
19
19
fn global_variable ( ) {
20
- run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_global_variable" ) ) ;
20
+ run_test_kernel ( env ! ( "CARGO_BIN_FILE_TEST_KERNEL_PIE_global_variable" ) , None ) ;
21
21
}
Original file line number Diff line number Diff line change @@ -10,18 +10,25 @@ const QEMU_ARGS: &[&str] = &[
10
10
"--no-reboot" ,
11
11
] ;
12
12
13
- pub fn run_test_kernel ( kernel_binary_path : & str ) {
13
+ pub fn run_test_kernel ( kernel_binary_path : & str , ramdisk_path : Option < & Path > ) {
14
14
let kernel_path = Path :: new ( kernel_binary_path) ;
15
15
16
16
// create an MBR disk image for legacy BIOS booting
17
17
let mbr_path = kernel_path. with_extension ( "mbr" ) ;
18
- bootloader:: BiosBoot :: new ( kernel_path)
19
- . create_disk_image ( & mbr_path)
20
- . unwrap ( ) ;
18
+ let mut bios_builder = bootloader:: BiosBoot :: new ( kernel_path) ;
19
+
21
20
22
21
// create a GPT disk image for UEFI booting
23
22
let gpt_path = kernel_path. with_extension ( "gpt" ) ;
24
- let uefi_builder = bootloader:: UefiBoot :: new ( kernel_path) ;
23
+ let mut uefi_builder = bootloader:: UefiBoot :: new ( kernel_path) ;
24
+
25
+ // Set ramdisk for test, if supplied.
26
+ if let Some ( rdp) = ramdisk_path {
27
+ bios_builder. set_ramdisk ( rdp) ;
28
+ uefi_builder. set_ramdisk ( rdp) ;
29
+ }
30
+
31
+ bios_builder. create_disk_image ( & mbr_path) . unwrap ( ) ;
25
32
uefi_builder. create_disk_image ( & gpt_path) . unwrap ( ) ;
26
33
27
34
// create a TFTP folder with the kernel executable and UEFI bootloader for
You can’t perform that action at this time.
0 commit comments