From 64c11a66fd8d91c229b848534d11ab0465cff65a Mon Sep 17 00:00:00 2001 From: Archana Shinde Date: Fri, 9 Dec 2022 16:16:58 -0800 Subject: [PATCH] kata-ctl: Have function to get cpu details to run on specific arch This function relies on get_single_cpu function which has configured to compile on amd64 and s390x. Making the function get_generic_cpu_details to compile on these architectures until we resolve the compilation for functions defined in check.rs. This is a temporary solution until we cleanup check.rs to make it build on all architectures. Signed-off-by: Archana Shinde --- src/tools/kata-ctl/src/arch/s390x/mod.rs | 2 ++ src/tools/kata-ctl/src/check.rs | 1 + src/tools/kata-ctl/src/utils.rs | 11 +++++++++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/tools/kata-ctl/src/arch/s390x/mod.rs b/src/tools/kata-ctl/src/arch/s390x/mod.rs index 4acf614af3..b3196547b3 100644 --- a/src/tools/kata-ctl/src/arch/s390x/mod.rs +++ b/src/tools/kata-ctl/src/arch/s390x/mod.rs @@ -16,7 +16,9 @@ mod arch_specific { const CPUINFO_FEATURES_TAG: &str = "features"; const CPU_FEATURES_REQ: &[&str] = &["sie"]; + #[allow(dead_code)] pub const ARCH_CPU_VENDOR_FIELD: &str = check::GENERIC_CPU_VENDOR_FIELD; + #[allow(dead_code)] pub const ARCH_CPU_MODEL_FIELD: &str = "machine"; // check cpu diff --git a/src/tools/kata-ctl/src/check.rs b/src/tools/kata-ctl/src/check.rs index 66d7c776ef..a847be3765 100644 --- a/src/tools/kata-ctl/src/check.rs +++ b/src/tools/kata-ctl/src/check.rs @@ -26,6 +26,7 @@ const USER_AGT: &str = "kata"; pub const GENERIC_CPU_VENDOR_FIELD: &str = "vendor_id"; pub const GENERIC_CPU_MODEL_FIELD: &str = "model name"; +#[allow(dead_code)] pub const PROC_CPUINFO: &str = "/proc/cpuinfo"; #[cfg(any(target_arch = "s390x", target_arch = "x86_64"))] diff --git a/src/tools/kata-ctl/src/utils.rs b/src/tools/kata-ctl/src/utils.rs index 6b7b40512f..b1564f4c47 100644 --- a/src/tools/kata-ctl/src/utils.rs +++ b/src/tools/kata-ctl/src/utils.rs @@ -5,8 +5,11 @@ #![allow(dead_code)] +#[cfg(any(target_arch = "s390x", target_arch = "x86_64"))] use crate::arch::arch_specific; +#[cfg(any(target_arch = "s390x", target_arch = "x86_64"))] use crate::check::get_single_cpu_info; + use anyhow::{anyhow, Context, Result}; use std::fs; @@ -103,6 +106,7 @@ pub fn get_distro_details(os_release: &str, os_release_clr: &str) -> Result<(Str Ok((name, version)) } +#[cfg(any(target_arch = "s390x", target_arch = "x86_64"))] pub fn get_generic_cpu_details(cpu_info_file: &str) -> Result<(String, String)> { let cpu_info = get_single_cpu_info(cpu_info_file, "\n\n")?; let lines = cpu_info.lines(); @@ -143,7 +147,6 @@ pub fn get_generic_cpu_details(cpu_info_file: &str) -> Result<(String, String)> #[cfg(test)] mod tests { use super::*; - use crate::check::PROC_CPUINFO; use std::io::Write; use tempfile::tempdir; @@ -223,12 +226,14 @@ mod tests { assert!(res.is_ok()); } + #[cfg(any(target_arch = "x86_64"))] #[test] fn get_generic_cpu_details_system() { - let res = get_generic_cpu_details(PROC_CPUINFO); + let res = get_generic_cpu_details(crate::check::PROC_CPUINFO); assert!(res.is_ok()); } + #[cfg(any(target_arch = "s390x", target_arch = "x86_64"))] #[test] fn get_generic_cpu_details_valid_contents() { let dir = tempdir().unwrap(); @@ -250,12 +255,14 @@ mod tests { assert_eq!(res.as_ref().unwrap().1, expected_model_name); } + #[cfg(any(target_arch = "s390x", target_arch = "x86_64"))] #[test] fn get_generic_cpu_details_invalid_file() { let res = get_generic_cpu_details("/tmp/missing.txt"); assert!(res.is_err()); } + #[cfg(any(target_arch = "s390x", target_arch = "x86_64"))] #[test] fn get_generic_cpu_details_invalid_contents() { let dir = tempdir().unwrap();