#![cfg(test)]
use luwen::pci::detect_chips;
mod test_utils;
use serde_json::json;
mod tests {
use super::*;
use test_utils::has_chip_type;
#[test]
#[ignore = "Requires hardware that has SPI recovery"]
fn blackhole_test_write_cmfwcfg() {
assert!(
has_chip_type(|chip| chip.as_bh().is_some()),
"Test requires a Blackhole chip"
);
let devices = detect_chips().unwrap();
for device in devices {
if let Some(bh) = device.as_bh() {
let decode_msg = bh.decode_boot_fs_table("cmfwcfg");
assert!(decode_msg.is_ok(), "Failed to decode cmfwcfg table");
let mut cmfwcfg = decode_msg.unwrap();
if let Some(feature_enable) = cmfwcfg.get_mut("chip_limits") {
if let Some(asic_fmax) = feature_enable.get_mut("asic_fmax") {
*asic_fmax = json!(1000); }
}
if let Some(feature_enable) = cmfwcfg.get_mut("feature_enable") {
if let Some(aiclk_ppm_en) = feature_enable.get_mut("aiclk_ppm_en") {
*aiclk_ppm_en = json!(false); }
}
bh.encode_and_write_boot_fs_table(cmfwcfg.clone(), "cmfwcfg")
.unwrap();
println!("Successfully wrote cmfwcfg to device");
}
}
}
#[test]
#[ignore = "Requires hardware that has SPI recovery"]
fn blackhole_test_write_flshinfo() {
assert!(
has_chip_type(|chip| chip.as_bh().is_some()),
"Test requires a Blackhole chip"
);
let devices = detect_chips().unwrap();
for device in devices {
if let Some(bh) = device.as_bh() {
let decode_msg = bh.decode_boot_fs_table("flshinfo");
assert!(decode_msg.is_ok(), "Failed to decode flshinfo table");
let mut flshinfo = decode_msg.unwrap();
println!("Decoded flshinfo: {flshinfo:#?}");
if let Some(date_programmed) = flshinfo.get_mut("date_programmed") {
*date_programmed = json!(111111); }
bh.encode_and_write_boot_fs_table(flshinfo.clone(), "flshinfo")
.unwrap();
println!("Successfully wrote flshinfo to device");
}
}
}
}