2006-06-17 Dan Williams <dcbw@redhat.com>

* libnm-util/dbus-dict-helpers.[ch]
	  test/libnm-util/test-dbus-dict-helpers.c
		- Fixes for zero-length byte arrays
		- Replace return values of 0 with FALSE for clarity
		- Test zero-length byte arrays


git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@1842 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
This commit is contained in:
Dan Williams 2006-06-18 00:38:34 +00:00
parent 2ea74fbb84
commit 43ab72e508
3 changed files with 58 additions and 39 deletions

View file

@ -1,3 +1,11 @@
2006-06-17 Dan Williams <dcbw@redhat.com>
* libnm-util/dbus-dict-helpers.[ch]
test/libnm-util/test-dbus-dict-helpers.c
- Fixes for zero-length byte arrays
- Replace return values of 0 with FALSE for clarity
- Test zero-length byte arrays
2006-06-17 Dan Williams <dcbw@redhat.com>
* libnm-util/dbus-dict-helpers.[ch]

View file

@ -40,7 +40,7 @@ dbus_bool_t
nmu_dbus_dict_open_write (DBusMessageIter *iter, DBusMessageIter *iter_dict)
{
if (!iter || !iter_dict)
return 0;
return FALSE;
return dbus_message_iter_open_container (iter,
DBUS_TYPE_ARRAY,
@ -66,7 +66,7 @@ dbus_bool_t
nmu_dbus_dict_close_write (DBusMessageIter *iter, DBusMessageIter *iter_dict)
{
if (!iter || !iter_dict)
return 0;
return FALSE;
return dbus_message_iter_close_container (iter, iter_dict);
}
@ -230,7 +230,7 @@ nmu_dbus_dict_append_string (DBusMessageIter *iter_dict,
const char * key,
const char * value)
{
if (!key || !value) return 0;
if (!key || !value) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_STRING, &value);
}
@ -248,7 +248,7 @@ nmu_dbus_dict_append_byte (DBusMessageIter *iter_dict,
const char * key,
const char value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_BYTE, &value);
}
@ -266,7 +266,7 @@ nmu_dbus_dict_append_bool (DBusMessageIter *iter_dict,
const char * key,
const dbus_bool_t value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_BOOLEAN, &value);
}
@ -284,7 +284,7 @@ nmu_dbus_dict_append_int16 (DBusMessageIter *iter_dict,
const char * key,
const dbus_int16_t value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_INT16, &value);
}
@ -302,7 +302,7 @@ nmu_dbus_dict_append_uint16 (DBusMessageIter *iter_dict,
const char * key,
const dbus_uint16_t value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_UINT16, &value);
}
@ -320,7 +320,7 @@ nmu_dbus_dict_append_int32 (DBusMessageIter *iter_dict,
const char * key,
const dbus_int32_t value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_INT32, &value);
}
@ -338,7 +338,7 @@ nmu_dbus_dict_append_uint32 (DBusMessageIter *iter_dict,
const char * key,
const dbus_uint32_t value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_UINT32, &value);
}
@ -356,7 +356,7 @@ nmu_dbus_dict_append_int64 (DBusMessageIter *iter_dict,
const char * key,
const dbus_int64_t value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_INT64, &value);
}
@ -374,7 +374,7 @@ nmu_dbus_dict_append_uint64 (DBusMessageIter *iter_dict,
const char * key,
const dbus_uint64_t value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_UINT64, &value);
}
@ -392,7 +392,7 @@ nmu_dbus_dict_append_double (DBusMessageIter *iter_dict,
const char * key,
const double value)
{
if (!key) return 0;
if (!key) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_DOUBLE, &value);
}
@ -410,7 +410,7 @@ nmu_dbus_dict_append_object_path (DBusMessageIter *iter_dict,
const char * key,
const char * value)
{
if (!key || !value) return 0;
if (!key || !value) return FALSE;
return _nmu_dbus_add_dict_entry_basic (iter_dict, key, DBUS_TYPE_OBJECT_PATH, &value);
}
@ -430,7 +430,8 @@ nmu_dbus_dict_append_byte_array (DBusMessageIter *iter_dict,
const char * value,
const dbus_uint32_t value_len)
{
if (!key || !value) return 0;
if (!key) return FALSE;
if (!value && (value_len != 0)) return FALSE;
return _nmu_dbus_add_dict_entry_byte_array (iter_dict, key, value, value_len);
}
@ -476,6 +477,7 @@ _nmu_dbus_dict_entry_get_byte_array (DBusMessageIter *iter,
if (array_len == 0)
{
entry->bytearray_value = NULL;
entry->array_type = DBUS_TYPE_BYTE;
success = TRUE;
goto done;
}

View file

@ -64,34 +64,37 @@ struct DictEntries {
struct DoubleEntry dbl;
struct OPEntry op;
struct ByteArrayEntry bytearr;
struct ByteArrayEntry zlbytearr;
};
#define TEST_KEY_STRING "String"
#define TEST_KEY_BYTE "Byte"
#define TEST_KEY_BOOL "Bool"
#define TEST_KEY_INT16 "Int16"
#define TEST_KEY_UINT16 "UInt16"
#define TEST_KEY_INT32 "Int32"
#define TEST_KEY_UINT32 "UInt32"
#define TEST_KEY_INT64 "Int64"
#define TEST_KEY_UINT64 "UInt64"
#define TEST_KEY_DOUBLE "Double"
#define TEST_KEY_OP "ObjectPath"
#define TEST_KEY_BYTEARR "ByteArray"
#define TEST_KEY_STRING "String"
#define TEST_KEY_BYTE "Byte"
#define TEST_KEY_BOOL "Bool"
#define TEST_KEY_INT16 "Int16"
#define TEST_KEY_UINT16 "UInt16"
#define TEST_KEY_INT32 "Int32"
#define TEST_KEY_UINT32 "UInt32"
#define TEST_KEY_INT64 "Int64"
#define TEST_KEY_UINT64 "UInt64"
#define TEST_KEY_DOUBLE "Double"
#define TEST_KEY_OP "ObjectPath"
#define TEST_KEY_BYTEARR "ByteArray"
#define TEST_KEY_ZLBYTEARR "ZLByteArray"
struct DictEntries entries = {
{ TEST_KEY_STRING, "foobar22", FALSE, DBUS_TYPE_STRING },
{ TEST_KEY_BYTE, 0x78, FALSE, DBUS_TYPE_BYTE },
{ TEST_KEY_BOOL, TRUE, FALSE, DBUS_TYPE_BOOLEAN },
{ TEST_KEY_INT16, -28567, FALSE, DBUS_TYPE_INT16 },
{ TEST_KEY_UINT16, 12345, FALSE, DBUS_TYPE_UINT16 },
{ TEST_KEY_INT32, -5987654, FALSE, DBUS_TYPE_INT32 },
{ TEST_KEY_UINT32, 45678912, FALSE, DBUS_TYPE_UINT32 },
{ TEST_KEY_INT64, -12491340761ll, FALSE, DBUS_TYPE_INT64 },
{ TEST_KEY_UINT64, 8899223582883ll, FALSE, DBUS_TYPE_UINT64 },
{ TEST_KEY_DOUBLE, 54.3355632f, FALSE, DBUS_TYPE_DOUBLE },
{ TEST_KEY_OP, "/com/it/foobar", FALSE, DBUS_TYPE_OBJECT_PATH },
{ TEST_KEY_BYTEARR, "qazwsxedcrfvtgb",FALSE, DBUS_TYPE_BYTE }
{ TEST_KEY_STRING, "foobar22", FALSE, DBUS_TYPE_STRING },
{ TEST_KEY_BYTE, 0x78, FALSE, DBUS_TYPE_BYTE },
{ TEST_KEY_BOOL, TRUE, FALSE, DBUS_TYPE_BOOLEAN },
{ TEST_KEY_INT16, -28567, FALSE, DBUS_TYPE_INT16 },
{ TEST_KEY_UINT16, 12345, FALSE, DBUS_TYPE_UINT16 },
{ TEST_KEY_INT32, -5987654, FALSE, DBUS_TYPE_INT32 },
{ TEST_KEY_UINT32, 45678912, FALSE, DBUS_TYPE_UINT32 },
{ TEST_KEY_INT64, -12491340761ll, FALSE, DBUS_TYPE_INT64 },
{ TEST_KEY_UINT64, 8899223582883ll, FALSE, DBUS_TYPE_UINT64 },
{ TEST_KEY_DOUBLE, 54.3355632f, FALSE, DBUS_TYPE_DOUBLE },
{ TEST_KEY_OP, "/com/it/foobar", FALSE, DBUS_TYPE_OBJECT_PATH },
{ TEST_KEY_BYTEARR, "qazwsxedcrfvtgb",FALSE, DBUS_TYPE_BYTE },
{ TEST_KEY_ZLBYTEARR,NULL, FALSE, DBUS_TYPE_BYTE }
};
@ -158,6 +161,10 @@ test_write_dict (DBusMessage *message)
err_string = "failed to append byte array entry";
goto done;
}
if (!nmu_dbus_dict_append_byte_array (&iter_dict, entries.zlbytearr.key, entries.zlbytearr.val, 0)) {
err_string = "failed to append zero-length byte array entry";
goto done;
}
if (!nmu_dbus_dict_close_write (&iter, &iter_dict)) {
err_string = "failed to close dictionary";
goto done;
@ -245,6 +252,8 @@ test_read_dict (DBusMessage *message)
TEST_CASE (TEST_KEY_OP, entries.op, !strcmp (entry.str_value, entries.op.val))
TEST_CASE_ARRAY (TEST_KEY_BYTEARR, entries.bytearr, bytearr_len,
!memcmp (entry.bytearray_value, entries.bytearr.val, bytearr_len))
TEST_CASE_ARRAY (TEST_KEY_ZLBYTEARR, entries.zlbytearr, 0,
entry.bytearray_value == entries.zlbytearr.val)
err_string = "Unknown dict entry encountered.";
goto done;
@ -256,7 +265,7 @@ test_read_dict (DBusMessage *message)
if (!entries.string.found || !entries.byte.found || !entries.bool.found || !entries.int16.found
|| !entries.uint16.found || !entries.int32.found || !entries.uint32.found
|| !entries.int64.found || !entries.uint64.found || !entries.dbl.found
|| !entries.op.found || !entries.bytearr.found) {
|| !entries.op.found || !entries.bytearr.found || !entries.zlbytearr.found) {
err_string = "A required entry was not found in the dict.";
goto done;
}