summaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorMichael Brown2013-07-12 14:45:55 +0200
committerMichael Brown2013-07-12 15:14:36 +0200
commit7774ceed2f57d3711b29ccc464e6c88f20e3c83b (patch)
tree9939250819e8612447a50582ccc73546bf22e6e3 /src/tests
parent[base16] Generalise base16_decode() to hex_decode() (diff)
downloadipxe-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')
-rw-r--r--src/tests/settings_test.c16
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 ) );