diff options
author | Michael Brown | 2013-07-12 14:45:55 +0200 |
---|---|---|
committer | Michael Brown | 2013-07-12 15:14:36 +0200 |
commit | 7774ceed2f57d3711b29ccc464e6c88f20e3c83b (patch) | |
tree | 9939250819e8612447a50582ccc73546bf22e6e3 /src/tests/settings_test.c | |
parent | [base16] Generalise base16_decode() to hex_decode() (diff) | |
download | ipxe-7774ceed2f57d3711b29ccc464e6c88f20e3c83b.tar.gz ipxe-7774ceed2f57d3711b29ccc464e6c88f20e3c83b.tar.xz ipxe-7774ceed2f57d3711b29ccc464e6c88f20e3c83b.zip |
[settings] Use hex_decode() to parse hex settings
Use hex_decode() to parse "hex" and "hexhyp" settings. Note that this
parser is stricter than the old parser; it now requires exactly two
hex digits for each byte. (The old parser was based upon strtoul()
and so would allow leading whitespace and a leading plus or minus
sign.)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/tests/settings_test.c')
-rw-r--r-- | src/tests/settings_test.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/tests/settings_test.c b/src/tests/settings_test.c index 028f8163..3156f8d2 100644 --- a/src/tests/settings_test.c +++ b/src/tests/settings_test.c @@ -51,9 +51,15 @@ FILE_LICENCE ( GPL2_OR_LATER ); ok ( storef_setting ( settings, setting, formatted ) == 0 ); \ len = fetch_setting ( settings, setting, actual, \ sizeof ( actual ) ); \ - DBGC ( settings, "Stored %s \"%s\", got:\n", \ - (setting)->type->name, formatted ); \ - DBGC_HDA ( settings, 0, actual, len ); \ + if ( len >= 0 ) { \ + DBGC ( settings, "Stored %s \"%s\", got:\n", \ + (setting)->type->name, formatted ); \ + DBGC_HDA ( settings, 0, actual, len ); \ + } else { \ + DBGC ( settings, "Stored %s \"%s\", got error %s\n", \ + (setting)->type->name, formatted, \ + strerror ( len ) ); \ + } \ ok ( len == ( int ) sizeof ( actual ) ); \ ok ( memcmp ( actual, expected, sizeof ( actual ) ) == 0 ); \ } while ( 0 ) @@ -240,10 +246,6 @@ static void settings_test_exec ( void ) { /* "hex" setting type */ storef_ok ( &test_settings, &test_hex_setting, - ":", RAW ( 0x00, 0x00 ) ); - storef_ok ( &test_settings, &test_hex_setting, - "1:2:", RAW ( 0x01, 0x02, 0x00 ) ); - storef_ok ( &test_settings, &test_hex_setting, "08:12:f5:22:90:1b:4b:47:a8:30:cb:4d:67:4c:d6:76", RAW ( 0x08, 0x12, 0xf5, 0x22, 0x90, 0x1b, 0x4b, 0x47, 0xa8, 0x30, 0xcb, 0x4d, 0x67, 0x4c, 0xd6, 0x76 ) ); |