diff --git a/cmd/counters/src/ipc.rs b/cmd/counters/src/ipc.rs index b591cc9e..131be976 100644 --- a/cmd/counters/src/ipc.rs +++ b/cmd/counters/src/ipc.rs @@ -34,17 +34,29 @@ impl Args { let Self { clients, opts } = self; // In order to display task generations accurately, we must find and load // the task table: - let task_table = { - let (base, task_count) = hubris.task_table(core)?; - let task_t = hubris.lookup_struct_byname("Task")?.clone(); - humility_doppel::Task::load_tcbs( - hubris, - core, - base, - task_count as usize, - &task_t, - )? - }; + let task_table = hubris + .task_table(core) + .and_then(|(base, task_count)| { + let task_t = hubris.lookup_struct_byname("Task")?.clone(); + humility_doppel::Task::load_tcbs( + hubris, + core, + base, + task_count as usize, + &task_t, + ) + }) + // This may be a single-task dump, in which case, we cannot load the + // task table. In that case, rather than bailing, we'll just not + // display restart counts. + .unwrap_or_else(|err| { + humility::warn!("failed to load task table: {err}"); + humility::warn!( + "no generations/restart counts will be displayed." + ); + humility::msg!("note: this may be a single-task dump."); + Vec::new() + }); let mut ipcs = BTreeMap::new(); @@ -60,7 +72,9 @@ impl Args { continue; } - let gen = task_table[task.task() as usize].generation; + let gen = task_table + .get(task.task() as usize) + .map(|task| task.generation); // Only select counters matching the provided filter, if there is // one. if let Some(ref name) = opts.name { @@ -128,9 +142,9 @@ struct IpcIface<'a> { } #[derive(Default)] -struct Ipc<'taskname>( - IndexMap<(&'taskname str, GenOrRestartCount), CounterVariant>, -); +struct Ipc<'taskname>(IndexMap, CounterVariant>); + +type ClientTask<'taskname> = (&'taskname str, Option); impl IpcIface<'_> { fn total(&self) -> usize { @@ -233,12 +247,15 @@ impl fmt::Display for IpcIface<'_> { let sign = if formatted_tasks > 1 { "+" } else { "=" }; let ok_str = fmt_oks(ok, format!("{sign} {ok}",)); let restarts = match gen { - GenOrRestartCount::Gen(gen) => { + Some(GenOrRestartCount::Gen(gen)) => { format!(" (gen {gen:?})") } - GenOrRestartCount::RestartCount(restarts) => { + Some(GenOrRestartCount::RestartCount(restarts)) => { format!(" ({restarts} restarts)") } + // This is a single-task dump, so we don't have generation + // numbers or restart counts. + None => String::new(), }; write!(f, "{INDENT}task {}{restarts} ", task.italic())?; diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.extern-regions.stderr b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.extern-regions.stderr index 0dda002b..79b62beb 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.extern-regions.stderr +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.extern-regions.stderr @@ -1,2 +1,5 @@ humility: attached to dump -humility counters failed: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.55.stderr b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.55.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.55.stderr +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.55.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.61.stderr b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.61.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.61.stderr +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.61.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.62.stderr b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.62.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.62.stderr +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.ouray.62.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.net.stderr b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.net.stderr index 0dda002b..79b62beb 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.net.stderr +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.net.stderr @@ -1,2 +1,5 @@ humility: attached to dump -humility counters failed: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.power.stderr b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.power.stderr index cdfe6154..b49cf79d 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.power.stderr +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.task.power.stderr @@ -1,2 +1,5 @@ humility: attached to dump -humility counters failed: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stderr b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stderr index cdfe6154..20ed8f60 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stderr +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stderr @@ -1,2 +1,4 @@ humility: attached to dump -humility counters failed: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stdout b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stdout index e69de29b..267e2077 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stdout +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.stdout @@ -0,0 +1,52 @@ +drv_spi_api::__SPI_CLIENT_COUNTERS + fn Spi::write() .................................................... 530 calls + clients: + task gimlet_seq .................................... = 0 ......... = 530 ok + + fn Spi::exchange() ................................................... 5 calls + clients: + task gimlet_seq .................................... = 0 ........... = 5 ok + + fn Spi::lock() ....................................................... 4 calls + clients: + task gimlet_seq .................................... = 0 ........... = 4 ok + + fn Spi::release() .................................................... 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + +drv_stm32xx_sys_api::__SYS_CLIENT_COUNTERS + fn Sys::gpio_configure_raw() ........................................ 12 calls + clients: + task gimlet_seq .................................... = 0 .......... = 12 ok + + fn Sys::gpio_set_reset() ............................................ 12 calls + clients: + task gimlet_seq .................................... = 0 .......... = 12 ok + + fn Sys::gpio_read_input() ............................................ 5 calls + clients: + task gimlet_seq .................................... = 0 ........... = 5 ok + + +task_jefe_api::__JEFE_CLIENT_COUNTERS + fn Jefe::set_state() ................................................. 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + +task_packrat_api::__PACKRAT_CLIENT_COUNTERS + fn Packrat::set_spd_eeprom() ........................................ 32 calls + clients: + task gimlet_seq .................................... = 0 .......... = 32 ok + + fn Packrat::set_mac_address_block() .................................. 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + fn Packrat::set_identity() ........................................... 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + diff --git a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.toml b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.toml index 04d275e3..eb16fdab 100644 --- a/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.toml +++ b/tests/cmd/counters-ipc-filtered/counters-ipc-filtered.u16-ringbuf.toml @@ -7,5 +7,3 @@ fs.base = "../cores" bin.name = "humility" args = "-d hubris.core.u16-ringbuf counters ipc --client gimlet_seq --client net" - -status.code = 1 diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.extern-regions.stderr b/tests/cmd/counters-ipc-full/counters-ipc-full.extern-regions.stderr index 0dda002b..79b62beb 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.extern-regions.stderr +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.extern-regions.stderr @@ -1,2 +1,5 @@ humility: attached to dump -humility counters failed: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.55.stderr b/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.55.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.55.stderr +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.55.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.61.stderr b/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.61.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.61.stderr +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.61.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.62.stderr b/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.62.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.62.stderr +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.ouray.62.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.task.net.stderr b/tests/cmd/counters-ipc-full/counters-ipc-full.task.net.stderr index 0dda002b..79b62beb 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.task.net.stderr +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.task.net.stderr @@ -1,2 +1,5 @@ humility: attached to dump -humility counters failed: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stderr b/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stderr index cdfe6154..20ed8f60 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stderr +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stderr @@ -1,2 +1,4 @@ humility: attached to dump -humility counters failed: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stdout b/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stdout index e69de29b..dc5e68ef 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stdout +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.stdout @@ -0,0 +1,183 @@ +drv_gimlet_seq_api::__SEQUENCER_CLIENT_COUNTERS + fn Sequencer::get_state() ........................................... 75 calls + clients: + task power ........................................................ = 75 ok + - Err(IllegalTransition) ........................... + 0 .................. + - Err(MuxToHostCPUFailed) .......................... + 0 .................. + - Err(MuxToSPFailed) ............................... + 0 .................. + - Err(ReadRegsFailed) .............................. + 0 .................. + - Err(CPUNotPresent) ............................... + 0 .................. + - Err(UnrecognizedCPU) ............................. + 0 .................. + - Err(A1Timeout) ................................... + 0 .................. + - Err(A0TimeoutGroupC) ............................. + 0 .................. + - Err(A0Timeout) ................................... + 0 .................. + - Err(I2cFault) .................................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- ---- + totals: = 0 err = 75 ok + + fn Sequencer::set_state() ............................................ 0 calls + clients: + task power ......................................................... = 0 ok + - Err(IllegalTransition) ........................... + 0 .................. + - Err(MuxToHostCPUFailed) .......................... + 0 .................. + - Err(MuxToSPFailed) ............................... + 0 .................. + - Err(ReadRegsFailed) .............................. + 0 .................. + - Err(CPUNotPresent) ............................... + 0 .................. + - Err(UnrecognizedCPU) ............................. + 0 .................. + - Err(A1Timeout) ................................... + 0 .................. + - Err(A0TimeoutGroupC) ............................. + 0 .................. + - Err(A0Timeout) ................................... + 0 .................. + - Err(I2cFault) .................................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sequencer::fans_on() .............................................. 0 calls + clients: + task power ......................................................... = 0 ok + - Err(IllegalTransition) ........................... + 0 .................. + - Err(MuxToHostCPUFailed) .......................... + 0 .................. + - Err(MuxToSPFailed) ............................... + 0 .................. + - Err(ReadRegsFailed) .............................. + 0 .................. + - Err(CPUNotPresent) ............................... + 0 .................. + - Err(UnrecognizedCPU) ............................. + 0 .................. + - Err(A1Timeout) ................................... + 0 .................. + - Err(A0TimeoutGroupC) ............................. + 0 .................. + - Err(A0Timeout) ................................... + 0 .................. + - Err(I2cFault) .................................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sequencer::fans_off() ............................................. 0 calls + clients: + task power ......................................................... = 0 ok + - Err(IllegalTransition) ........................... + 0 .................. + - Err(MuxToHostCPUFailed) .......................... + 0 .................. + - Err(MuxToSPFailed) ............................... + 0 .................. + - Err(ReadRegsFailed) .............................. + 0 .................. + - Err(CPUNotPresent) ............................... + 0 .................. + - Err(UnrecognizedCPU) ............................. + 0 .................. + - Err(A1Timeout) ................................... + 0 .................. + - Err(A0TimeoutGroupC) ............................. + 0 .................. + - Err(A0Timeout) ................................... + 0 .................. + - Err(I2cFault) .................................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sequencer::send_hardware_nmi() .................................... 0 calls + clients: + task power ......................................................... = 0 ok + + fn Sequencer::read_fpga_regs() ....................................... 0 calls + clients: + task power ......................................................... = 0 ok + - Err(IllegalTransition) ........................... + 0 .................. + - Err(MuxToHostCPUFailed) .......................... + 0 .................. + - Err(MuxToSPFailed) ............................... + 0 .................. + - Err(ReadRegsFailed) .............................. + 0 .................. + - Err(CPUNotPresent) ............................... + 0 .................. + - Err(UnrecognizedCPU) ............................. + 0 .................. + - Err(A1Timeout) ................................... + 0 .................. + - Err(A0TimeoutGroupC) ............................. + 0 .................. + - Err(A0Timeout) ................................... + 0 .................. + - Err(I2cFault) .................................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + +task_sensor_api::__SENSOR_CLIENT_COUNTERS + fn Sensor::get() ..................................................... 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + - Err(NotPresent) .................................. + 0 .................. + - Err(DeviceError) ................................. + 0 .................. + - Err(DeviceUnavailable) ........................... + 0 .................. + - Err(DeviceTimeout) ............................... + 0 .................. + - Err(DeviceOff) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sensor::get_reading() ............................................. 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + - Err(NotPresent) .................................. + 0 .................. + - Err(DeviceError) ................................. + 0 .................. + - Err(DeviceUnavailable) ........................... + 0 .................. + - Err(DeviceTimeout) ............................... + 0 .................. + - Err(DeviceOff) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sensor::get_raw_reading() ......................................... 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sensor::get_last_data() ........................................... 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sensor::get_last_nodata() ......................................... 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sensor::get_min() ................................................. 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sensor::get_max() ................................................. 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Sensor::post() ................................................. 1332 calls + clients: + task power ...................................................... = 1332 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- ------ + totals: = 0 err = 1332 ok + + fn Sensor::nodata() ............................................... 5032 calls + clients: + task power ...................................................... = 5032 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- ------ + totals: = 0 err = 5032 ok + + fn Sensor::get_nerrors() ............................................. 0 calls + clients: + task power ......................................................... = 0 ok + - Err(InvalidSensor) ............................... + 0 .................. + - Err(NoReading) ................................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.toml b/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.toml index 3d796080..9bc27356 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.toml +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.task.power.toml @@ -7,5 +7,3 @@ fs.base = "../cores" bin.name = "humility" args = "-d hubris.core.task.power counters ipc --full" - -status.code = 1 diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stderr b/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stderr index cdfe6154..20ed8f60 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stderr +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stderr @@ -1,2 +1,4 @@ humility: attached to dump -humility counters failed: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stdout b/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stdout index e69de29b..cd39141b 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stdout +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.stdout @@ -0,0 +1,550 @@ +drv_gimlet_hf_api::__HOSTFLASH_CLIENT_COUNTERS + fn HostFlash::read_id() .............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::capacity() ............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::read_status() .......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::bulk_erase() ........................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::page_program() ......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::read() ................................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::sector_erase() ......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::get_mux() .............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::set_mux() .............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::get_dev() .............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::set_dev() .............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::hash() ................................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::get_persistent_data() .................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn HostFlash::write_persistent_data() ................................ 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(WriteEnableFailed) ........................... + 0 .................. + - Err(HashBadRange) ................................ + 0 .................. + - Err(HashError) ................................... + 0 .................. + - Err(HashNotConfigured) ........................... + 0 .................. + - Err(NoDevSelect) ................................. + 0 .................. + - Err(NotMuxedToSP) ................................ + 0 .................. + - Err(Sector0IsReserved) ........................... + 0 .................. + - Err(NoPersistentData) ............................ + 0 .................. + - Err(MonotonicCounterOverflow) .................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + +drv_spi_api::__SPI_CLIENT_COUNTERS + fn Spi::read() ....................................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(BadTransferSize) ............................. + 0 .................. + - Err(TaskRestarted) ............................... + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Spi::write() .................................................... 530 calls + clients: + task gimlet_seq .................................................. = 530 ok + - Err(BadTransferSize) ............................. + 0 .................. + - Err(TaskRestarted) ............................... + 0 .................. + --- ----- + totals: = 0 err = 530 ok + + fn Spi::exchange() ................................................... 5 calls + clients: + task gimlet_seq .................................................... = 5 ok + - Err(BadTransferSize) ............................. + 0 .................. + - Err(TaskRestarted) ............................... + 0 .................. + --- --- + totals: = 0 err = 5 ok + + fn Spi::lock() ....................................................... 4 calls + clients: + task gimlet_seq .................................................... = 4 ok + + fn Spi::release() .................................................... 1 calls + clients: + task gimlet_seq .................................................... = 1 ok + + +drv_stm32xx_sys_api::__SYS_CLIENT_COUNTERS + fn Sys::enable_clock_raw() ........................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(NoSuchPeripheral) ............................ + 0 .................. + + fn Sys::disable_clock_raw() .......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(NoSuchPeripheral) ............................ + 0 .................. + + fn Sys::enter_reset_raw() ............................................ 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(NoSuchPeripheral) ............................ + 0 .................. + + fn Sys::leave_reset_raw() ............................................ 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(NoSuchPeripheral) ............................ + 0 .................. + + fn Sys::gpio_configure_raw() ........................................ 12 calls + clients: + task gimlet_seq ................................................... = 12 ok + + fn Sys::gpio_set_reset() ............................................ 12 calls + clients: + task gimlet_seq ................................................... = 12 ok + + fn Sys::gpio_read_input() ............................................ 5 calls + clients: + task gimlet_seq .................................................... = 5 ok + + fn Sys::gpio_toggle() ................................................ 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Sys::read_uid() ................................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Sys::gpio_irq_configure() ......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Sys::gpio_irq_control() ........................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + +task_jefe_api::__JEFE_CLIENT_COUNTERS + fn Jefe::get_state() ................................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Jefe::set_state() ................................................. 1 calls + clients: + task gimlet_seq .................................................... = 1 ok + + fn Jefe::request_reset() ............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Jefe::get_reset_reason() .......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Jefe::set_reset_reason() .......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Jefe::reinitialize_dump_areas() ................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(DumpAgentUnsupported) ........................ + 0 .................. + - Err(InvalidArea) ................................. + 0 .................. + - Err(BadOffset) ................................... + 0 .................. + - Err(UnalignedOffset) ............................. + 0 .................. + - Err(UnalignedSegmentAddress) ..................... + 0 .................. + - Err(UnalignedSegmentLength) ...................... + 0 .................. + - Err(BadDumpResponse) ............................. + 0 .................. + - Err(NotSupported) ................................ + 0 .................. + - Err(DumpPresent) ................................. + 0 .................. + - Err(UnclaimedDumpArea) ........................... + 0 .................. + - Err(CannotClaimDumpArea) ......................... + 0 .................. + - Err(DumpAreaInUse) ............................... + 0 .................. + - Err(BadSegmentAdd) ............................... + 0 .................. + - Err(DumpMessageFailed) ........................... + 0 .................. + - Err(DumpFailed) .................................. + 0 .................. + - Err(DumpFailedSetup) ............................. + 0 .................. + - Err(DumpFailedRead) .............................. + 0 .................. + - Err(DumpFailedWrite) ............................. + 0 .................. + - Err(DumpFailedControl) ........................... + 0 .................. + - Err(DumpFailedUnknown) ........................... + 0 .................. + - Err(DumpFailedUnknownError) ...................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Jefe::get_dump_area() ............................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(DumpAgentUnsupported) ........................ + 0 .................. + - Err(InvalidArea) ................................. + 0 .................. + - Err(BadOffset) ................................... + 0 .................. + - Err(UnalignedOffset) ............................. + 0 .................. + - Err(UnalignedSegmentAddress) ..................... + 0 .................. + - Err(UnalignedSegmentLength) ...................... + 0 .................. + - Err(BadDumpResponse) ............................. + 0 .................. + - Err(NotSupported) ................................ + 0 .................. + - Err(DumpPresent) ................................. + 0 .................. + - Err(UnclaimedDumpArea) ........................... + 0 .................. + - Err(CannotClaimDumpArea) ......................... + 0 .................. + - Err(DumpAreaInUse) ............................... + 0 .................. + - Err(BadSegmentAdd) ............................... + 0 .................. + - Err(DumpMessageFailed) ........................... + 0 .................. + - Err(DumpFailed) .................................. + 0 .................. + - Err(DumpFailedSetup) ............................. + 0 .................. + - Err(DumpFailedRead) .............................. + 0 .................. + - Err(DumpFailedWrite) ............................. + 0 .................. + - Err(DumpFailedControl) ........................... + 0 .................. + - Err(DumpFailedUnknown) ........................... + 0 .................. + - Err(DumpFailedUnknownError) ...................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Jefe::claim_dump_area() ........................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(DumpAgentUnsupported) ........................ + 0 .................. + - Err(InvalidArea) ................................. + 0 .................. + - Err(BadOffset) ................................... + 0 .................. + - Err(UnalignedOffset) ............................. + 0 .................. + - Err(UnalignedSegmentAddress) ..................... + 0 .................. + - Err(UnalignedSegmentLength) ...................... + 0 .................. + - Err(BadDumpResponse) ............................. + 0 .................. + - Err(NotSupported) ................................ + 0 .................. + - Err(DumpPresent) ................................. + 0 .................. + - Err(UnclaimedDumpArea) ........................... + 0 .................. + - Err(CannotClaimDumpArea) ......................... + 0 .................. + - Err(DumpAreaInUse) ............................... + 0 .................. + - Err(BadSegmentAdd) ............................... + 0 .................. + - Err(DumpMessageFailed) ........................... + 0 .................. + - Err(DumpFailed) .................................. + 0 .................. + - Err(DumpFailedSetup) ............................. + 0 .................. + - Err(DumpFailedRead) .............................. + 0 .................. + - Err(DumpFailedWrite) ............................. + 0 .................. + - Err(DumpFailedControl) ........................... + 0 .................. + - Err(DumpFailedUnknown) ........................... + 0 .................. + - Err(DumpFailedUnknownError) ...................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Jefe::dump_task() ................................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(DumpAgentUnsupported) ........................ + 0 .................. + - Err(InvalidArea) ................................. + 0 .................. + - Err(BadOffset) ................................... + 0 .................. + - Err(UnalignedOffset) ............................. + 0 .................. + - Err(UnalignedSegmentAddress) ..................... + 0 .................. + - Err(UnalignedSegmentLength) ...................... + 0 .................. + - Err(BadDumpResponse) ............................. + 0 .................. + - Err(NotSupported) ................................ + 0 .................. + - Err(DumpPresent) ................................. + 0 .................. + - Err(UnclaimedDumpArea) ........................... + 0 .................. + - Err(CannotClaimDumpArea) ......................... + 0 .................. + - Err(DumpAreaInUse) ............................... + 0 .................. + - Err(BadSegmentAdd) ............................... + 0 .................. + - Err(DumpMessageFailed) ........................... + 0 .................. + - Err(DumpFailed) .................................. + 0 .................. + - Err(DumpFailedSetup) ............................. + 0 .................. + - Err(DumpFailedRead) .............................. + 0 .................. + - Err(DumpFailedWrite) ............................. + 0 .................. + - Err(DumpFailedControl) ........................... + 0 .................. + - Err(DumpFailedUnknown) ........................... + 0 .................. + - Err(DumpFailedUnknownError) ...................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Jefe::dump_task_region() .......................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(DumpAgentUnsupported) ........................ + 0 .................. + - Err(InvalidArea) ................................. + 0 .................. + - Err(BadOffset) ................................... + 0 .................. + - Err(UnalignedOffset) ............................. + 0 .................. + - Err(UnalignedSegmentAddress) ..................... + 0 .................. + - Err(UnalignedSegmentLength) ...................... + 0 .................. + - Err(BadDumpResponse) ............................. + 0 .................. + - Err(NotSupported) ................................ + 0 .................. + - Err(DumpPresent) ................................. + 0 .................. + - Err(UnclaimedDumpArea) ........................... + 0 .................. + - Err(CannotClaimDumpArea) ......................... + 0 .................. + - Err(DumpAreaInUse) ............................... + 0 .................. + - Err(BadSegmentAdd) ............................... + 0 .................. + - Err(DumpMessageFailed) ........................... + 0 .................. + - Err(DumpFailed) .................................. + 0 .................. + - Err(DumpFailedSetup) ............................. + 0 .................. + - Err(DumpFailedRead) .............................. + 0 .................. + - Err(DumpFailedWrite) ............................. + 0 .................. + - Err(DumpFailedControl) ........................... + 0 .................. + - Err(DumpFailedUnknown) ........................... + 0 .................. + - Err(DumpFailedUnknownError) ...................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Jefe::reinitialize_dump_from() .................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(DumpAgentUnsupported) ........................ + 0 .................. + - Err(InvalidArea) ................................. + 0 .................. + - Err(BadOffset) ................................... + 0 .................. + - Err(UnalignedOffset) ............................. + 0 .................. + - Err(UnalignedSegmentAddress) ..................... + 0 .................. + - Err(UnalignedSegmentLength) ...................... + 0 .................. + - Err(BadDumpResponse) ............................. + 0 .................. + - Err(NotSupported) ................................ + 0 .................. + - Err(DumpPresent) ................................. + 0 .................. + - Err(UnclaimedDumpArea) ........................... + 0 .................. + - Err(CannotClaimDumpArea) ......................... + 0 .................. + - Err(DumpAreaInUse) ............................... + 0 .................. + - Err(BadSegmentAdd) ............................... + 0 .................. + - Err(DumpMessageFailed) ........................... + 0 .................. + - Err(DumpFailed) .................................. + 0 .................. + - Err(DumpFailedSetup) ............................. + 0 .................. + - Err(DumpFailedRead) .............................. + 0 .................. + - Err(DumpFailedWrite) ............................. + 0 .................. + - Err(DumpFailedControl) ........................... + 0 .................. + - Err(DumpFailedUnknown) ........................... + 0 .................. + - Err(DumpFailedUnknownError) ...................... + 0 .................. + - Err(ServerRestarted) ............................. + 0 .................. + --- --- + totals: = 0 err = 0 ok + + fn Jefe::restart_me_raw() ............................................ 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + +task_packrat_api::__PACKRAT_CLIENT_COUNTERS + fn Packrat::get_mac_address_block() .................................. 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(ValueNotSet) ................................. + 0 .................. + + fn Packrat::set_mac_address_block() .................................. 1 calls + clients: + task gimlet_seq .................................................... = 1 ok + - Err(ValueAlreadySet) ............................. + 0 .................. + + fn Packrat::get_identity() ........................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + - Err(ValueNotSet) ................................. + 0 .................. + + fn Packrat::set_identity() ........................................... 1 calls + clients: + task gimlet_seq .................................................... = 1 ok + - Err(ValueAlreadySet) ............................. + 0 .................. + + fn Packrat::get_next_boot_host_startup_options() ..................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Packrat::set_next_boot_host_startup_options() ..................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Packrat::set_spd_eeprom() ........................................ 32 calls + clients: + task gimlet_seq ................................................... = 32 ok + + fn Packrat::get_spd_present() ........................................ 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Packrat::get_spd_data() ........................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + fn Packrat::get_full_spd_data() ...................................... 0 calls + clients: + task gimlet_seq .................................................... = 0 ok + + diff --git a/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.toml b/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.toml index 886dc6a1..dd4d22b0 100644 --- a/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.toml +++ b/tests/cmd/counters-ipc-full/counters-ipc-full.u16-ringbuf.toml @@ -7,5 +7,3 @@ fs.base = "../cores" bin.name = "humility" args = "-d hubris.core.u16-ringbuf counters ipc --full" - -status.code = 1 diff --git a/tests/cmd/counters-ipc/counters-ipc.extern-regions.stderr b/tests/cmd/counters-ipc/counters-ipc.extern-regions.stderr index 0dda002b..79b62beb 100644 --- a/tests/cmd/counters-ipc/counters-ipc.extern-regions.stderr +++ b/tests/cmd/counters-ipc/counters-ipc.extern-regions.stderr @@ -1,2 +1,5 @@ humility: attached to dump -humility counters failed: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc/counters-ipc.ouray.55.stderr b/tests/cmd/counters-ipc/counters-ipc.ouray.55.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc/counters-ipc.ouray.55.stderr +++ b/tests/cmd/counters-ipc/counters-ipc.ouray.55.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc/counters-ipc.ouray.61.stderr b/tests/cmd/counters-ipc/counters-ipc.ouray.61.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc/counters-ipc.ouray.61.stderr +++ b/tests/cmd/counters-ipc/counters-ipc.ouray.61.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc/counters-ipc.ouray.62.stderr b/tests/cmd/counters-ipc/counters-ipc.ouray.62.stderr index bcb345d7..d314ab22 100644 --- a/tests/cmd/counters-ipc/counters-ipc.ouray.62.stderr +++ b/tests/cmd/counters-ipc/counters-ipc.ouray.62.stderr @@ -1,5 +1,5 @@ humility: attached to dump -humility counters failed: failed to read TASK_TABLE_SIZE - -Caused by: - read of 4 bytes from invalid address: 0x20000008 +humility: WARNING: failed to load task table: failed to read TASK_TABLE_SIZE +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc/counters-ipc.task.net.stderr b/tests/cmd/counters-ipc/counters-ipc.task.net.stderr index 0dda002b..79b62beb 100644 --- a/tests/cmd/counters-ipc/counters-ipc.task.net.stderr +++ b/tests/cmd/counters-ipc/counters-ipc.task.net.stderr @@ -1,2 +1,5 @@ humility: attached to dump -humility counters failed: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4536 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. +humility counters failed: no IPC counters found diff --git a/tests/cmd/counters-ipc/counters-ipc.task.power.stderr b/tests/cmd/counters-ipc/counters-ipc.task.power.stderr index cdfe6154..20ed8f60 100644 --- a/tests/cmd/counters-ipc/counters-ipc.task.power.stderr +++ b/tests/cmd/counters-ipc/counters-ipc.task.power.stderr @@ -1,2 +1,4 @@ humility: attached to dump -humility counters failed: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. diff --git a/tests/cmd/counters-ipc/counters-ipc.task.power.stdout b/tests/cmd/counters-ipc/counters-ipc.task.power.stdout index e69de29b..dd6a89da 100644 --- a/tests/cmd/counters-ipc/counters-ipc.task.power.stdout +++ b/tests/cmd/counters-ipc/counters-ipc.task.power.stdout @@ -0,0 +1,16 @@ +drv_gimlet_seq_api::__SEQUENCER_CLIENT_COUNTERS + fn Sequencer::get_state() ........................................... 75 calls + clients: + task power ......................................... = 0 .......... = 75 ok + + +task_sensor_api::__SENSOR_CLIENT_COUNTERS + fn Sensor::nodata() ............................................... 5032 calls + clients: + task power ......................................... = 0 ........ = 5032 ok + + fn Sensor::post() ................................................. 1332 calls + clients: + task power ......................................... = 0 ........ = 1332 ok + + diff --git a/tests/cmd/counters-ipc/counters-ipc.task.power.toml b/tests/cmd/counters-ipc/counters-ipc.task.power.toml index f111ed4a..e6370112 100644 --- a/tests/cmd/counters-ipc/counters-ipc.task.power.toml +++ b/tests/cmd/counters-ipc/counters-ipc.task.power.toml @@ -7,5 +7,3 @@ fs.base = "../cores" bin.name = "humility" args = "-d hubris.core.task.power counters ipc" - -status.code = 1 diff --git a/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stderr b/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stderr index cdfe6154..20ed8f60 100644 --- a/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stderr +++ b/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stderr @@ -1,2 +1,4 @@ humility: attached to dump -humility counters failed: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: failed to load task table: read of 4704 bytes from invalid address: 0x24000490 +humility: WARNING: no generations/restart counts will be displayed. +humility: note: this may be a single-task dump. diff --git a/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stdout b/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stdout index e69de29b..267e2077 100644 --- a/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stdout +++ b/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.stdout @@ -0,0 +1,52 @@ +drv_spi_api::__SPI_CLIENT_COUNTERS + fn Spi::write() .................................................... 530 calls + clients: + task gimlet_seq .................................... = 0 ......... = 530 ok + + fn Spi::exchange() ................................................... 5 calls + clients: + task gimlet_seq .................................... = 0 ........... = 5 ok + + fn Spi::lock() ....................................................... 4 calls + clients: + task gimlet_seq .................................... = 0 ........... = 4 ok + + fn Spi::release() .................................................... 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + +drv_stm32xx_sys_api::__SYS_CLIENT_COUNTERS + fn Sys::gpio_configure_raw() ........................................ 12 calls + clients: + task gimlet_seq .................................... = 0 .......... = 12 ok + + fn Sys::gpio_set_reset() ............................................ 12 calls + clients: + task gimlet_seq .................................... = 0 .......... = 12 ok + + fn Sys::gpio_read_input() ............................................ 5 calls + clients: + task gimlet_seq .................................... = 0 ........... = 5 ok + + +task_jefe_api::__JEFE_CLIENT_COUNTERS + fn Jefe::set_state() ................................................. 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + +task_packrat_api::__PACKRAT_CLIENT_COUNTERS + fn Packrat::set_spd_eeprom() ........................................ 32 calls + clients: + task gimlet_seq .................................... = 0 .......... = 32 ok + + fn Packrat::set_mac_address_block() .................................. 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + fn Packrat::set_identity() ........................................... 1 calls + clients: + task gimlet_seq .................................... = 0 ........... = 1 ok + + diff --git a/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.toml b/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.toml index d0ffd0d8..7fa4d754 100644 --- a/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.toml +++ b/tests/cmd/counters-ipc/counters-ipc.u16-ringbuf.toml @@ -7,5 +7,3 @@ fs.base = "../cores" bin.name = "humility" args = "-d hubris.core.u16-ringbuf counters ipc" - -status.code = 1