Merge "Temporarily remove Microdroid tests related to MANAGE_VIRTUAL_MACHINE" into main
diff --git a/apex/canned_fs_config b/apex/canned_fs_config
index 5afd9d6..a990901 100644
--- a/apex/canned_fs_config
+++ b/apex/canned_fs_config
@@ -1 +1,3 @@
/bin/virtualizationservice 0 2000 0755 capabilities=0x1000001 # CAP_CHOWN, CAP_SYS_RESOURCE
+/bin/crosvm 0 3013 0755 capabilities=0x800000 # CAP_SYS_NICE
+/bin/virtmgr 0 3013 0755 capabilities=0x800000 # CAP_SYS_NICE
diff --git a/authfs/tests/common/src/open_then_run.rs b/authfs/tests/common/src/open_then_run.rs
index 6d828e4..a976784 100644
--- a/authfs/tests/common/src/open_then_run.rs
+++ b/authfs/tests/common/src/open_then_run.rs
@@ -161,7 +161,7 @@
android_logger::init_once(
android_logger::Config::default()
.with_tag("open_then_run")
- .with_min_level(log::Level::Debug),
+ .with_max_level(log::LevelFilter::Debug),
);
if let Err(e) = try_main() {
diff --git a/libs/apkverify/tests/apkverify_test.rs b/libs/apkverify/tests/apkverify_test.rs
index 441b708..96fad5f 100644
--- a/libs/apkverify/tests/apkverify_test.rs
+++ b/libs/apkverify/tests/apkverify_test.rs
@@ -37,7 +37,7 @@
android_logger::init_once(
android_logger::Config::default()
.with_tag("apkverify_test")
- .with_min_level(log::Level::Info),
+ .with_max_level(log::LevelFilter::Info),
);
info!("Test starting");
}
diff --git a/pvmfw/src/fdt.rs b/pvmfw/src/fdt.rs
index 770fdf0..d2aad61 100644
--- a/pvmfw/src/fdt.rs
+++ b/pvmfw/src/fdt.rs
@@ -47,6 +47,7 @@
use vmbase::memory::SIZE_4KB;
use vmbase::util::flatten;
use vmbase::util::RangeExt as _;
+use zerocopy::AsBytes as _;
/// An enumeration of errors that can occur during the FDT validation.
#[derive(Clone, Debug)]
@@ -164,10 +165,11 @@
}
fn patch_memory_range(fdt: &mut Fdt, memory_range: &Range<usize>) -> libfdt::Result<()> {
- let size = memory_range.len() as u64;
+ let addr = u64::try_from(MEM_START).unwrap();
+ let size = u64::try_from(memory_range.len()).unwrap();
fdt.node_mut(cstr!("/memory"))?
.ok_or(FdtError::NotFound)?
- .setprop_inplace(cstr!("reg"), flatten(&[MEM_START.to_be_bytes(), size.to_be_bytes()]))
+ .setprop_inplace(cstr!("reg"), [addr.to_be(), size.to_be()].as_bytes())
}
/// Read the number of CPUs from DT
@@ -486,11 +488,17 @@
}
fn read_serial_info_from(fdt: &Fdt) -> libfdt::Result<SerialInfo> {
- let mut addrs: ArrayVec<[u64; SerialInfo::MAX_SERIALS]> = Default::default();
- for node in fdt.compatible_nodes(cstr!("ns16550a"))?.take(SerialInfo::MAX_SERIALS) {
+ let mut addrs = ArrayVec::new();
+
+ let mut serial_nodes = fdt.compatible_nodes(cstr!("ns16550a"))?;
+ for node in serial_nodes.by_ref().take(addrs.capacity()) {
let reg = node.first_reg()?;
addrs.push(reg.addr);
}
+ if serial_nodes.next().is_some() {
+ warn!("DT has more than {} UART nodes: discarding extra nodes.", addrs.capacity());
+ }
+
Ok(SerialInfo { addrs })
}
@@ -607,17 +615,11 @@
*v = v.to_be();
}
- // SAFETY: array size is the same
- let value = unsafe {
- core::mem::transmute::<
- [u32; NUM_INTERRUPTS * CELLS_PER_INTERRUPT],
- [u8; NUM_INTERRUPTS * CELLS_PER_INTERRUPT * size_of::<u32>()],
- >(value.into_inner())
- };
+ let value = value.into_inner();
let mut node =
fdt.root_mut()?.next_compatible(cstr!("arm,armv8-timer"))?.ok_or(FdtError::NotFound)?;
- node.setprop_inplace(cstr!("interrupts"), value.as_slice())
+ node.setprop_inplace(cstr!("interrupts"), value.as_bytes())
}
#[derive(Debug)]
diff --git a/rialto/tests/test.rs b/rialto/tests/test.rs
index c918db5..1302bcd 100644
--- a/rialto/tests/test.rs
+++ b/rialto/tests/test.rs
@@ -287,7 +287,9 @@
fn start_service_vm(vm_type: VmType) -> Result<ServiceVm> {
android_logger::init_once(
- android_logger::Config::default().with_tag("rialto").with_min_level(log::Level::Debug),
+ android_logger::Config::default()
+ .with_tag("rialto")
+ .with_max_level(log::LevelFilter::Debug),
);
// Redirect panic messages to logcat.
panic::set_hook(Box::new(|panic_info| {
diff --git a/service_vm/test_apk/src/main.rs b/service_vm/test_apk/src/main.rs
index ba65aca..df60325 100644
--- a/service_vm/test_apk/src/main.rs
+++ b/service_vm/test_apk/src/main.rs
@@ -36,7 +36,7 @@
android_logger::init_once(
android_logger::Config::default()
.with_tag("service_vm_client")
- .with_min_level(log::Level::Debug),
+ .with_max_level(log::LevelFilter::Debug),
);
// Redirect panic messages to logcat.
panic::set_hook(Box::new(|panic_info| {
diff --git a/vmbase/example/tests/test.rs b/vmbase/example/tests/test.rs
index 17ff947..2df5a80 100644
--- a/vmbase/example/tests/test.rs
+++ b/vmbase/example/tests/test.rs
@@ -42,7 +42,9 @@
#[test]
fn test_run_example_vm() -> Result<(), Error> {
android_logger::init_once(
- android_logger::Config::default().with_tag("vmbase").with_min_level(log::Level::Debug),
+ android_logger::Config::default()
+ .with_tag("vmbase")
+ .with_max_level(log::LevelFilter::Debug),
);
// Redirect panic messages to logcat.