tests: extend TEST_NESTED_NLATTR_OBJECT macro
Extend TEST_NESTED_NLATTR_OBJECT macro for multi-nested netlink attributes, such as [MDBA_MDB] = { [MDBA_MDB_ENTRY] = { [MDBA_MDB_ENTRY_INFO] { struct br_mdb_entry [MDBA_MDB_EATTR attributes] } } } * tests/test_nlattr.h (TEST_NESTED_NLATTR_OBJECT_EX_, TEST_NESTED_NLATTR_OBJECT_EX): New macros. (TEST_NESTED_NLATTR_OBJECT): Use TEST_NESTED_NLATTR_OBJECT_EX_.
This commit is contained in:
parent
8229db741f
commit
7b20432b32
@ -203,41 +203,67 @@ print_nlattr(const unsigned int nla_len, const char *const nla_type)
|
|||||||
printf("]")); \
|
printf("]")); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define TEST_NESTED_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \
|
#define TEST_NESTED_NLATTR_OBJECT_EX_(fd_, nlh0_, hdrlen_, \
|
||||||
init_msg_, print_msg_, \
|
init_msg_, print_msg_, \
|
||||||
nla_type_, pattern_, obj_, ...) \
|
nla_type_, nla_type_str_, \
|
||||||
|
pattern_, obj_, depth_, ...) \
|
||||||
do { \
|
do { \
|
||||||
const unsigned int plen = \
|
const unsigned int plen = \
|
||||||
sizeof(obj_) - 1 > DEFAULT_STRLEN \
|
sizeof(obj_) - 1 > DEFAULT_STRLEN \
|
||||||
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
|
? DEFAULT_STRLEN : (int) sizeof(obj_) - 1; \
|
||||||
/* len < sizeof(obj_) */ \
|
/* len < sizeof(obj_) */ \
|
||||||
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
|
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
|
||||||
(hdrlen_) + NLA_HDRLEN, \
|
(hdrlen_) + NLA_HDRLEN * depth_, \
|
||||||
(init_msg_), (print_msg_), \
|
(init_msg_), (print_msg_), \
|
||||||
(nla_type_), #nla_type_, \
|
(nla_type_), (nla_type_str_), \
|
||||||
plen, (pattern_), plen, \
|
plen, (pattern_), plen, \
|
||||||
print_quoted_hex((pattern_), plen); \
|
print_quoted_hex((pattern_), plen); \
|
||||||
printf("}")); \
|
size_t i; \
|
||||||
|
for (i = 0; i < depth_; ++i) \
|
||||||
|
printf("}")); \
|
||||||
/* short read of sizeof(obj_) */ \
|
/* short read of sizeof(obj_) */ \
|
||||||
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
|
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
|
||||||
(hdrlen_) + NLA_HDRLEN, \
|
(hdrlen_) + NLA_HDRLEN * depth_, \
|
||||||
(init_msg_), (print_msg_), \
|
(init_msg_), (print_msg_), \
|
||||||
(nla_type_), #nla_type_, \
|
(nla_type_), (nla_type_str_), \
|
||||||
sizeof(obj_), \
|
sizeof(obj_), \
|
||||||
(pattern_), sizeof(obj_) - 1, \
|
(pattern_), sizeof(obj_) - 1, \
|
||||||
printf("%p}", \
|
printf("%p", RTA_DATA(TEST_NLATTR_nla)); \
|
||||||
RTA_DATA(TEST_NLATTR_nla))); \
|
size_t i; \
|
||||||
|
for (i = 0; i < depth_; ++i) \
|
||||||
|
printf("}")); \
|
||||||
/* sizeof(obj_) */ \
|
/* sizeof(obj_) */ \
|
||||||
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN, \
|
TEST_NLATTR_((fd_), (nlh0_) - NLA_HDRLEN * depth_, \
|
||||||
(hdrlen_) + NLA_HDRLEN, \
|
(hdrlen_) + NLA_HDRLEN * depth_, \
|
||||||
(init_msg_), (print_msg_), \
|
(init_msg_), (print_msg_), \
|
||||||
(nla_type_), #nla_type_, \
|
(nla_type_), (nla_type_str_), \
|
||||||
sizeof(obj_), \
|
sizeof(obj_), \
|
||||||
&(obj_), sizeof(obj_), \
|
&(obj_), sizeof(obj_), \
|
||||||
__VA_ARGS__, \
|
__VA_ARGS__; \
|
||||||
printf("}")); \
|
size_t i; \
|
||||||
|
for (i = 0; i < depth_; ++i) \
|
||||||
|
printf("}")); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
#define TEST_NESTED_NLATTR_OBJECT_EX(fd_, nlh0_, hdrlen_, \
|
||||||
|
init_msg_, print_msg_, \
|
||||||
|
nla_type_, pattern_, obj_, \
|
||||||
|
depth_, ...) \
|
||||||
|
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
|
||||||
|
(init_msg_), (print_msg_), \
|
||||||
|
(nla_type_), #nla_type_, \
|
||||||
|
(pattern_), (obj_), (depth_), \
|
||||||
|
__VA_ARGS__)
|
||||||
|
|
||||||
|
#define TEST_NESTED_NLATTR_OBJECT(fd_, nlh0_, hdrlen_, \
|
||||||
|
init_msg_, print_msg_, \
|
||||||
|
nla_type_, pattern_, obj_, ...) \
|
||||||
|
TEST_NESTED_NLATTR_OBJECT_EX_((fd_), (nlh0_), (hdrlen_), \
|
||||||
|
(init_msg_), (print_msg_), \
|
||||||
|
(nla_type_), #nla_type_, \
|
||||||
|
(pattern_), (obj_), 1, \
|
||||||
|
__VA_ARGS__)
|
||||||
|
|
||||||
#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
|
#define TEST_NESTED_NLATTR_ARRAY(fd_, nlh0_, hdrlen_, \
|
||||||
init_msg_, print_msg_, \
|
init_msg_, print_msg_, \
|
||||||
nla_type_, pattern_, obj_, print_elem_)\
|
nla_type_, pattern_, obj_, print_elem_)\
|
||||||
|
Loading…
x
Reference in New Issue
Block a user