Skip to content

Commit e4dddc6

Browse files
committed
uefi: Add unit-test for ConfigurationString parsing
1 parent 0ac9805 commit e4dddc6

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

uefi/src/proto/hii/config_str.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,3 +259,27 @@ impl FromStr for ConfigurationString {
259259
})
260260
}
261261
}
262+
263+
#[cfg(test)]
264+
mod tests {
265+
use core::str::FromStr;
266+
267+
use crate::proto::hii::config_str::ConfigurationString;
268+
269+
#[test]
270+
fn parse_single() {
271+
// exemplary (shortened / manually constructed) UEFI configuration string
272+
let input = "GUID=16d6474bd6a852459d44ccad2e0f4cf9&NAME=00490053004300530049005f0043004f004e004600490047005f004900460052005f004e00560044004100540041&PATH=0104140016d6474bd6a852459d44ccad2e0f4cf97fff0400&OFFSET=01d8&WIDTH=0002&VALUE=0011&OFFSET=01d9&WIDTH=0001&VALUE=00&OFFSET=01da&WIDTH=0001&VALUE=00&OFFSET=01dc&WIDTH=0002&VALUE=03e8&OFFSET=01de&WIDTH=0001&VALUE=00&OFFSET=01df&WIDTH=0001&VALUE=00&OFFSET=05fe&WIDTH=0002&VALUE=0000&OFFSET=062a&WIDTH=0001&VALUE=00&OFFSET=062b&WIDTH=0001&VALUE=01&OFFSET=0fd4&WIDTH=0001&VALUE=00&OFFSET=0fd5&WIDTH=0001&VALUE=00";
273+
let parsed = ConfigurationString::from_str(input).unwrap();
274+
assert_eq!(parsed.guid, guid!("4b47d616-a8d6-4552-9d44-ccad2e0f4cf9"));
275+
assert_eq!(parsed.name, "ISCSI_CONFIG_IFR_NVDATA");
276+
assert_eq!(parsed.alt_cfg_id, None);
277+
assert_eq!(parsed.elements.len(), 11);
278+
assert_eq!(parsed.elements[0].offset, 0x01d8);
279+
assert_eq!(parsed.elements[0].width, 2);
280+
assert_eq!(&parsed.elements[0].value, &[0x11, 0x00]);
281+
assert_eq!(parsed.elements[10].offset, 0x0fd5);
282+
assert_eq!(parsed.elements[10].width, 1);
283+
assert_eq!(&parsed.elements[10].value, &[0x00]);
284+
}
285+
}

0 commit comments

Comments
 (0)