dragonball: fix cargo test on aarch64

1. Update memory end assert because address space layout differs between
x86 and arm.
2. Set guest_addr for aarch64 in test_handler_insert_region case.

Fixes: #7284
TODO: #7290

Signed-off-by: xuejun-xj <jiyunxue@linux.alibaba.com>
This commit is contained in:
xuejun-xj 2023-07-05 17:31:29 +08:00
parent aedc586e14
commit 883b4db380
2 changed files with 27 additions and 0 deletions

View File

@ -1240,7 +1240,11 @@ mod tests {
Some(vm.vm_config().clone()),
vm.shared_info().clone(),
);
#[cfg(target_arch = "x86_64")]
let guest_addr = GuestAddress(0x200000000000);
// TODO: #7290 - https://github.com/kata-containers/kata-containers/issues/7290
#[cfg(target_arch = "aarch64")]
let guest_addr = GuestAddress(0xF800000000);
let cache_len = 1024 * 1024 * 1024;
let mmap_region = MmapRegion::build(

View File

@ -873,6 +873,8 @@ impl Vm {
#[cfg(test)]
pub mod tests {
#[cfg(target_arch = "aarch64")]
use dbs_boot::layout::GUEST_MEM_START;
#[cfg(target_arch = "x86_64")]
use kvm_ioctls::VcpuExit;
use linux_loader::cmdline::Cmdline;
@ -936,7 +938,13 @@ pub mod tests {
let vm_memory = vm.address_space.vm_memory().unwrap();
assert_eq!(vm_memory.num_regions(), 1);
#[cfg(target_arch = "x86_64")]
assert_eq!(vm_memory.last_addr(), GuestAddress(0xffffff));
#[cfg(target_arch = "aarch64")]
assert_eq!(
vm_memory.last_addr(),
GuestAddress(GUEST_MEM_START + 0xffffff)
);
// Reconfigure an already configured vm will be ignored and just return OK.
let vm_config = VmConfigInfo {
@ -959,9 +967,18 @@ pub mod tests {
assert!(vm.init_guest_memory().is_ok());
let vm_memory = vm.address_space.vm_memory().unwrap();
assert_eq!(vm_memory.num_regions(), 1);
#[cfg(target_arch = "x86_64")]
assert_eq!(vm_memory.last_addr(), GuestAddress(0xffffff));
#[cfg(target_arch = "aarch64")]
assert_eq!(
vm_memory.last_addr(),
GuestAddress(GUEST_MEM_START + 0xffffff)
);
#[cfg(target_arch = "x86_64")]
let obj_addr = GuestAddress(0xf0);
#[cfg(target_arch = "aarch64")]
let obj_addr = GuestAddress(GUEST_MEM_START + 0xf0);
vm_memory.write_obj(67u8, obj_addr).unwrap();
let read_val: u8 = vm_memory.read_obj(obj_addr).unwrap();
assert_eq!(read_val, 67u8);
@ -1001,7 +1018,13 @@ pub mod tests {
let vm_memory = vm.address_space.vm_memory().unwrap();
assert_eq!(vm_memory.num_regions(), 1);
#[cfg(target_arch = "x86_64")]
assert_eq!(vm_memory.last_addr(), GuestAddress(0xffffff));
#[cfg(target_arch = "aarch64")]
assert_eq!(
vm_memory.last_addr(),
GuestAddress(GUEST_MEM_START + 0xffffff)
);
let kernel_file = TempFile::new().unwrap();
let cmd_line = Cmdline::new(64);