summaryrefslogtreecommitdiffstats
path: root/src/tests
diff options
context:
space:
mode:
authorMichael Brown2013-08-12 19:23:25 +0200
committerMichael Brown2013-08-12 19:25:18 +0200
commit55daa953fb82412e2e4dced4a39c6f7a3ff39b46 (patch)
tree0ecd41cdad183030d25a047224b51a399adb0b7a /src/tests
parent[test] Add self-tests for snprintf() (diff)
downloadipxe-55daa953fb82412e2e4dced4a39c6f7a3ff39b46.tar.gz
ipxe-55daa953fb82412e2e4dced4a39c6f7a3ff39b46.tar.xz
ipxe-55daa953fb82412e2e4dced4a39c6f7a3ff39b46.zip
[settings] Allow numeric_setting_value() to handle long setting values
Allow numeric_setting_value() to handle e.g. the byte sequence 00:00:00:00:12:34:56:78 by returning -ERANGE only if the value actually overflows the return type. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/settings_test.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/tests/settings_test.c b/src/tests/settings_test.c
index 670d549b..d1d923a4 100644
--- a/src/tests/settings_test.c
+++ b/src/tests/settings_test.c
@@ -342,6 +342,12 @@ static void settings_test_exec ( void ) {
RAW ( 0x98, 0xab, 0x41, 0x81 ), 0x98ab4181 );
fetchn_ok ( &test_settings, &test_uint32_setting,
RAW ( 0xff, 0xff, 0xfe ), 0x00fffffe );
+ fetchn_ok ( &test_settings, &test_uint32_setting,
+ RAW ( 0, 0, 0, 0x12, 0x34, 0x56, 0x78 ), 0x12345678 );
+ fetchn_ok ( &test_settings, &test_int32_setting,
+ RAW ( 0, 0, 0, 0x12, 0x34, 0x56, 0x78 ), 0x12345678 );
+ fetchn_ok ( &test_settings, &test_int32_setting,
+ RAW ( 0xff, 0xff, 0x87, 0x65, 0x43, 0x21 ), -0x789abcdf );
/* "hex" setting type */
storef_ok ( &test_settings, &test_hex_setting,