int of_list_table_stats_entry_first(of_list_table_stats_entry_t *list, of_table_stats_entry_t *obj) { int rv; of_table_stats_entry_init(obj, list->version, 0, 1); if ((rv = of_list_first((of_object_t *)list, (of_object_t *)obj)) < 0) { return rv; } of_object_wire_init((of_object_t *) obj, OF_TABLE_STATS_ENTRY, list->length); if (obj->length == 0) { return OF_ERROR_PARSE; } return rv; }
static int test_validate_fixed_length_list(void) { of_table_stats_reply_t *obj = of_table_stats_reply_new(OF_VERSION_1_0); of_list_table_stats_entry_t list; of_table_stats_entry_t element; of_message_t msg; of_table_stats_reply_entries_bind(obj, &list); of_table_stats_entry_init(&element, OF_VERSION_1_0, -1, 1); of_list_table_stats_entry_append_bind(&list, &element); of_list_table_stats_entry_append_bind(&list, &element); msg = OF_OBJECT_TO_MESSAGE(obj); TEST_ASSERT(of_validate_message(msg, of_message_length_get(msg)) == 0); of_message_length_set(msg, of_message_length_get(msg) - 1); TEST_ASSERT(of_validate_message(msg, of_message_length_get(msg)) == -1); of_table_stats_reply_delete(obj); return TEST_PASS; }