diff --git a/Cargo.toml b/Cargo.toml index d2d5cd9..3ba0d3e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ workspace = { members = [ "xtask" ] } [package] name = "amd-apcb" -version = "0.5.1" +version = "0.6.0" authors = ["Oxide Computer"] edition = "2024" license = "MPL-2.0" diff --git a/src/tests.rs b/src/tests.rs index a9cdc1b..1f3416b 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -703,6 +703,7 @@ mod tests { #[test] fn insert_tokens() -> Result<(), Error> { + use crate::ByteToken; let mut buffer: [u8; Apcb::MAX_SIZE] = [0xFF; Apcb::MAX_SIZE]; let mut apcb = Apcb::create(&mut buffer[0..], 42, &ApcbIoOptions::default()) @@ -737,9 +738,6 @@ mod tests { &[], )?; - // pub(crate) fn insert_token(&mut self, entry_id: EntryId, instance_id: - // u16, board_instance_mask: BoardInstances, token_id: u32, token_value: - // u32) -> Result<()> { apcb.insert_token( EntryId::Token(TokenEntryId::Byte), 0, @@ -803,9 +801,15 @@ mod tests { assert!(matches!(entries.next(), None)); assert!(matches!(groups.next(), None)); + let entry_id = TokenEntryId::Byte; + let token_id = 0xae46_cea4; // FIXME: ByteToken::AblSerialBaudRate as u32 does not work ?! let tokens = apcb.tokens(0, BoardInstances::from_instance(0).unwrap()).unwrap(); - assert!(tokens.abl_serial_baud_rate().unwrap() == BaudRate::_4800Baud); + + assert_eq!( + tokens.get(entry_id, token_id,).unwrap(), + BaudRate::_4800Baud as u32 + ); let _tokens = apcb .tokens_mut( @@ -823,9 +827,13 @@ mod tests { None, ) .unwrap(); - assert!(tokens.abl_serial_baud_rate().unwrap() == BaudRate::_4800Baud); - tokens.set_abl_serial_baud_rate(BaudRate::_9600Baud).unwrap(); - assert!(tokens.abl_serial_baud_rate().unwrap() == BaudRate::_9600Baud); + assert_eq!( + tokens.get(entry_id, token_id,).unwrap(), + BaudRate::_4800Baud as u32 + ); + tokens.set(entry_id, token_id, BaudRate::_9600Baud as u32).unwrap(); + let value = tokens.get(entry_id, token_id).unwrap(); + assert!(value == BaudRate::_9600Baud as u32); Ok(()) } diff --git a/src/token_accessors.rs b/src/token_accessors.rs index e9990bd..28868d9 100644 --- a/src/token_accessors.rs +++ b/src/token_accessors.rs @@ -303,44 +303,6 @@ macro_rules! make_token_accessors {( } } } - $( - impl<'a, 'b> Tokens<'a, 'b> { - paste! { - #[allow(non_snake_case)] - #[inline] - $getter_vis - fn [<$field_name:snake>] (self: &'_ Self) - -> Result<$field_user_ty> - { - <$field_user_ty>::from_u32(self.get($field_entry_id, $field_key)?).ok_or_else(|| Error::EntryTypeMismatch) - } - } - } - impl<'a, 'b> TokensMut<'a, 'b> { - - paste! { - #[allow(non_snake_case)] - #[inline] - $getter_vis - fn [<$field_name:snake>] (self: &'_ Self) - -> Result<$field_user_ty> - { - <$field_user_ty>::from_u32(self.get($field_entry_id, $field_key)?).ok_or_else(|| Error::EntryTypeMismatch) - } - } - $( - paste! { - #[allow(non_snake_case)] - #[inline] - $setter_vis - fn [] (self: &'_ mut Self, value: $field_setter_user_ty) -> Result<()> { - let token_value = value.to_u32().unwrap(); - self.set($field_entry_id, $field_key, token_value) - } - } - )? - } - )* impl $enum_name { #[allow(unused_variables)] pub(crate) fn valid_for_abl0_raw(abl0_version: u32, field_key: u32) -> bool { diff --git a/src/types.rs b/src/types.rs index 7b15f43..8e879db 100644 --- a/src/types.rs +++ b/src/types.rs @@ -8,7 +8,7 @@ use crate::ondisk::EntryId; use crate::ondisk::GroupId; use crate::ondisk::TokenEntryId; -#[derive(Debug)] +#[derive(Debug, PartialEq)] #[cfg_attr(feature = "std", derive(thiserror::Error))] #[non_exhaustive] pub enum FileSystemError { @@ -18,7 +18,7 @@ pub enum FileSystemError { PayloadTooBig, } -#[derive(Debug)] +#[derive(Debug, PartialEq)] #[cfg_attr(feature = "std", derive(thiserror::Error))] #[non_exhaustive] pub enum Error {