]> granicus.if.org Git - strace/blobdiff - tests/test_netlink.h
tests: extend TEST_NETLINK_OBJECT macro
[strace] / tests / test_netlink.h
index 0648d792a34174b1202dabfa6381f59b0a566b8f..f509e18fe831ab90f70bd83adaab659555e900a4 100644 (file)
                      (flags_), #flags_,                                \
                      (data_len_), (src_), (slen_), __VA_ARGS__)
 
-#define TEST_NETLINK_OBJECT(fd_, nlh0_,                                        \
-                           type_, flags_,                              \
-                           obj_, ...)                                  \
+#define TEST_NETLINK_OBJECT_EX_(fd_, nlh0_,                            \
+                               type_, type_str_,                       \
+                               flags_, flags_str_,                     \
+                               obj_, fallback_func, ...)               \
        do {                                                            \
                char pattern[DEFAULT_STRLEN];                           \
                fill_memory_ex(pattern, sizeof(pattern),                \
                        ? DEFAULT_STRLEN : (int) sizeof(obj_) - 1;      \
                /* len < sizeof(obj_) */                                \
                TEST_NETLINK_((fd_), (nlh0_),                           \
-                             (type_), #type_,                          \
-                             (flags_), #flags_,                        \
+                             (type_), (type_str_),                     \
+                             (flags_), (flags_str_),                   \
                              plen, pattern, plen,                      \
-                             print_quoted_hex(pattern, plen));         \
+                             (fallback_func)(pattern, plen));          \
                /* short read of sizeof(obj_) */                        \
                TEST_NETLINK_((fd_), (nlh0_),                           \
-                             (type_), #type_,                          \
-                             (flags_), #flags_,                        \
+                             (type_), (type_str_),                     \
+                             (flags_), (flags_str_),                   \
                              sizeof(obj_),                             \
                              pattern, plen,                            \
                              printf("%p",                              \
                                     NLMSG_DATA(TEST_NETLINK_nlh)));    \
                /* sizeof(obj_) */                                      \
                TEST_NETLINK_((fd_), (nlh0_),                           \
-                             (type_), #type_,                          \
-                             (flags_), #flags_,                        \
+                             (type_), (type_str_),                     \
+                             (flags_), (flags_str_),                   \
                              sizeof(obj_),                             \
                              &(obj_), sizeof(obj_),                    \
                              __VA_ARGS__);                             \
        } while (0)
+
+#define TEST_NETLINK_OBJECT_EX(fd_, nlh0_,                             \
+                              type_, flags_,                           \
+                              obj_, fallback_func, ...)                \
+       TEST_NETLINK_OBJECT_EX_((fd_), (nlh0),                          \
+                               (type_), #type_,                        \
+                               (flags_), #flags_,                      \
+                               (obj_), (fallback_func), __VA_ARGS__)
+
+#define TEST_NETLINK_OBJECT(fd_, nlh0_,                                        \
+                           type_, flags_,                              \
+                           obj_, ...)                                  \
+       TEST_NETLINK_OBJECT_EX_((fd_), (nlh0),                          \
+                               (type_), #type_,                        \
+                               (flags_), #flags_,                      \
+                               (obj_), print_quoted_hex, __VA_ARGS__)