From 422e30bd5eac14ac79bf1cd2ea648af72f4423b8 Mon Sep 17 00:00:00 2001 From: Eric Xu Date: Tue, 28 Jul 2026 17:53:37 +0000 Subject: [PATCH 1/4] Fix CFI icall type mismatch in rd_list_remove_cmp functions --- src/rdkafka_metadata.c | 2 +- src/rdkafka_partition.c | 4 ++-- src/rdkafka_sasl_oauthbearer.c | 2 +- src/rdkafka_topic.c | 2 +- src/rdlist.c | 4 ++-- src/rdlist.h | 4 ++-- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/rdkafka_metadata.c b/src/rdkafka_metadata.c index fe6572223e..8d76afa3cb 100644 --- a/src/rdkafka_metadata.c +++ b/src/rdkafka_metadata.c @@ -951,7 +951,7 @@ rd_kafka_parse_Metadata0(rd_kafka_broker_t *rkb, rd_list_free_cb(missing_topics, rd_list_remove_cmp(missing_topics, md->topics[i].topic, - (void *)strcmp)); + rd_list_cmp_str)); if (requested_topic_ids) rd_list_free_cb( missing_topic_ids, diff --git a/src/rdkafka_partition.c b/src/rdkafka_partition.c index f7e5906a4a..effa2420cb 100644 --- a/src/rdkafka_partition.c +++ b/src/rdkafka_partition.c @@ -3940,7 +3940,7 @@ static rd_bool_t rd_kafka_topic_partition_list_get_leaders( rktpar->err = RD_KAFKA_RESP_ERR__IN_PROGRESS; if (query_topics && !rd_list_find(query_topics, rktpar->topic, - (void *)strcmp)) + rd_list_cmp_str)) rd_list_add(query_topics, rd_strdup(rktpar->topic)); continue; @@ -4372,7 +4372,7 @@ int rd_kafka_topic_partition_list_get_topic_names( if (!include_regex && *rktpar->topic == '^') continue; - if (!rd_list_find(topics, rktpar->topic, (void *)strcmp)) { + if (!rd_list_find(topics, rktpar->topic, rd_list_cmp_str)) { rd_list_add(topics, rd_strdup(rktpar->topic)); cnt++; } diff --git a/src/rdkafka_sasl_oauthbearer.c b/src/rdkafka_sasl_oauthbearer.c index daf77da8fb..9e80ad6e90 100644 --- a/src/rdkafka_sasl_oauthbearer.c +++ b/src/rdkafka_sasl_oauthbearer.c @@ -774,7 +774,7 @@ static char *create_jws_compact_serialization( ++curr; } - if (!rd_list_find(&scope, start, (void *)strcmp)) + if (!rd_list_find(&scope, start, rd_list_cmp_str)) rd_list_add(&scope, rd_strdup(start)); if (scope_json_length == 0) { diff --git a/src/rdkafka_topic.c b/src/rdkafka_topic.c index e357ebf4f8..3247a9eece 100644 --- a/src/rdkafka_topic.c +++ b/src/rdkafka_topic.c @@ -2021,7 +2021,7 @@ void rd_kafka_topic_scan_all(rd_kafka_t *rk, rd_ts_t now) { /* Need to re-query this topic's leader. */ if (query_this && !rd_list_find(&query_topics, rkt->rkt_topic->str, - (void *)strcmp)) + rd_list_cmp_str)) rd_list_add(&query_topics, rd_strdup(rkt->rkt_topic->str)); } diff --git a/src/rdlist.c b/src/rdlist.c index 9c341833c9..b7dc950dd2 100644 --- a/src/rdlist.c +++ b/src/rdlist.c @@ -194,7 +194,7 @@ void *rd_list_remove(rd_list_t *rl, void *match_elem) { void *rd_list_remove_cmp(rd_list_t *rl, void *match_elem, - int (*cmp)(void *_a, void *_b)) { + int (*cmp)(const void *_a, const void *_b)) { void *elem; int i; @@ -211,7 +211,7 @@ void *rd_list_remove_cmp(rd_list_t *rl, int rd_list_remove_multi_cmp(rd_list_t *rl, void *match_elem, - int (*cmp)(void *_a, void *_b)) { + int (*cmp)(const void *_a, const void *_b)) { void *elem; int i; diff --git a/src/rdlist.h b/src/rdlist.h index 3403b230d1..e30308199b 100644 --- a/src/rdlist.h +++ b/src/rdlist.h @@ -161,7 +161,7 @@ void *rd_list_remove(rd_list_t *rl, void *match_elem); */ void *rd_list_remove_cmp(rd_list_t *rl, void *match_elem, - int (*cmp)(void *_a, void *_b)); + int (*cmp)(const void *_a, const void *_b)); /** @@ -188,7 +188,7 @@ void *rd_list_pop(rd_list_t *rl); */ int rd_list_remove_multi_cmp(rd_list_t *rl, void *match_elem, - int (*cmp)(void *_a, void *_b)); + int (*cmp)(const void *_a, const void *_b)); /** From ea855f0a94f128e5c5ca968304b4fbedacc2138c Mon Sep 17 00:00:00 2001 From: Eric Xu Date: Tue, 4 Aug 2026 17:34:37 +0000 Subject: [PATCH 2/4] Fix instances of rd_kafka_Uuid_ptr_cmp cast --- src/rdkafka_cgrp.c | 2 +- src/rdkafka_metadata.c | 2 +- src/rdkafka_proto.h | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/rdkafka_cgrp.c b/src/rdkafka_cgrp.c index be024e478e..aabd1667a0 100644 --- a/src/rdkafka_cgrp.c +++ b/src/rdkafka_cgrp.c @@ -3046,7 +3046,7 @@ rd_kafka_cgrp_consumer_assignment_with_metadata( } if (missing_topic_ids && *missing_topic_ids) rd_list_deduplicate(missing_topic_ids, - (void *)rd_kafka_Uuid_ptr_cmp); + rd_kafka_Uuid_ptr_cmp); return assignment_with_metadata; } diff --git a/src/rdkafka_metadata.c b/src/rdkafka_metadata.c index 8d76afa3cb..8829809fb1 100644 --- a/src/rdkafka_metadata.c +++ b/src/rdkafka_metadata.c @@ -957,7 +957,7 @@ rd_kafka_parse_Metadata0(rd_kafka_broker_t *rkb, missing_topic_ids, rd_list_remove_cmp(missing_topic_ids, &mdi->topics[i].topic_id, - (void *)rd_kafka_Uuid_ptr_cmp)); + rd_kafka_Uuid_ptr_cmp)); /* Only update cache when not asking * for all topics or cache entry * already exists. */ diff --git a/src/rdkafka_proto.h b/src/rdkafka_proto.h index 0ad21e06fc..85429fd165 100644 --- a/src/rdkafka_proto.h +++ b/src/rdkafka_proto.h @@ -619,8 +619,9 @@ static RD_INLINE RD_UNUSED int rd_kafka_Uuid_cmp(rd_kafka_Uuid_t a, return 0; } -static RD_INLINE RD_UNUSED int rd_kafka_Uuid_ptr_cmp(void *a, void *b) { - rd_kafka_Uuid_t *a_uuid = a, *b_uuid = b; +static RD_INLINE RD_UNUSED int rd_kafka_Uuid_ptr_cmp(const void *a, + const void *b) { + const rd_kafka_Uuid_t *a_uuid = a, *b_uuid = b; return rd_kafka_Uuid_cmp(*a_uuid, *b_uuid); } From 95ba35af24dd679ef4eb8b49f83d4544d1d722be Mon Sep 17 00:00:00 2001 From: Eric Xu Date: Wed, 5 Aug 2026 16:42:03 +0000 Subject: [PATCH 3/4] Run make style-fix --- src/rdhdrhistogram.c | 3 +- src/rdkafka_cgrp.c | 3 +- src/rdkafka_msg.h | 2 +- src/rdkafka_proto.h | 9 +-- src/rdsysqueue.h | 6 +- src/rdwin32.h | 3 +- tests/0170-share_consumer_subscription.c | 79 ++++++++++-------------- tests/test.c | 2 +- 8 files changed, 41 insertions(+), 66 deletions(-) diff --git a/src/rdhdrhistogram.c b/src/rdhdrhistogram.c index 08240ac7a3..13016e2065 100644 --- a/src/rdhdrhistogram.c +++ b/src/rdhdrhistogram.c @@ -275,8 +275,7 @@ typedef struct rd_hdr_iter_s { int64_t highestEquivalentValue; } rd_hdr_iter_t; -#define RD_HDR_ITER_INIT(hdr) \ - { .hdr = hdr, .subBucketIdx = -1 } +#define RD_HDR_ITER_INIT(hdr) {.hdr = hdr, .subBucketIdx = -1} static int rd_hdr_iter_next(rd_hdr_iter_t *it) { const rd_hdr_histogram_t *hdr = it->hdr; diff --git a/src/rdkafka_cgrp.c b/src/rdkafka_cgrp.c index aabd1667a0..d5d9b074bc 100644 --- a/src/rdkafka_cgrp.c +++ b/src/rdkafka_cgrp.c @@ -3045,8 +3045,7 @@ rd_kafka_cgrp_consumer_assignment_with_metadata( rd_kafka_Uuid_base64str(&request_topic_id)); } if (missing_topic_ids && *missing_topic_ids) - rd_list_deduplicate(missing_topic_ids, - rd_kafka_Uuid_ptr_cmp); + rd_list_deduplicate(missing_topic_ids, rd_kafka_Uuid_ptr_cmp); return assignment_with_metadata; } diff --git a/src/rdkafka_msg.h b/src/rdkafka_msg.h index 6bd939d03e..ea0badd7be 100644 --- a/src/rdkafka_msg.h +++ b/src/rdkafka_msg.h @@ -245,7 +245,7 @@ typedef struct rd_kafka_msgq_s { } rd_kafka_msgq_t; #define RD_KAFKA_MSGQ_INITIALIZER(rkmq) \ - { .rkmq_msgs = TAILQ_HEAD_INITIALIZER((rkmq).rkmq_msgs) } + {.rkmq_msgs = TAILQ_HEAD_INITIALIZER((rkmq).rkmq_msgs)} #define RD_KAFKA_MSGQ_FOREACH(elm, head) \ TAILQ_FOREACH(elm, &(head)->rkmq_msgs, rkm_link) diff --git a/src/rdkafka_proto.h b/src/rdkafka_proto.h index 85429fd165..0726a6d962 100644 --- a/src/rdkafka_proto.h +++ b/src/rdkafka_proto.h @@ -284,11 +284,9 @@ typedef struct rd_kafkap_str_s { /* strndup() a Kafka string */ #define RD_KAFKAP_STR_DUP(kstr) rd_strndup((kstr)->str, RD_KAFKAP_STR_LEN(kstr)) -#define RD_KAFKAP_STR_INITIALIZER \ - { .len = RD_KAFKAP_STR_LEN_NULL, .str = NULL } +#define RD_KAFKAP_STR_INITIALIZER {.len = RD_KAFKAP_STR_LEN_NULL, .str = NULL} -#define RD_KAFKAP_STR_INITIALIZER_EMPTY \ - { .len = 0, .str = "" } +#define RD_KAFKAP_STR_INITIALIZER_EMPTY {.len = 0, .str = ""} /** * Frees a Kafka string previously allocated with `rd_kafkap_str_new()` */ @@ -665,8 +663,7 @@ typedef struct rd_kafka_pid_s { int16_t epoch; /**< Producer Epoch */ } rd_kafka_pid_t; -#define RD_KAFKA_PID_INITIALIZER \ - { -1, -1 } +#define RD_KAFKA_PID_INITIALIZER {-1, -1} /** * @returns true if \p PID is valid diff --git a/src/rdsysqueue.h b/src/rdsysqueue.h index 738cdad792..4e252413f2 100644 --- a/src/rdsysqueue.h +++ b/src/rdsysqueue.h @@ -94,8 +94,7 @@ */ #ifndef TAILQ_HEAD_INITIALIZER -#define TAILQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).tqh_first } +#define TAILQ_HEAD_INITIALIZER(head) {NULL, &(head).tqh_first} #endif #ifndef TAILQ_INSERT_BEFORE @@ -391,8 +390,7 @@ #endif #ifndef SIMPLEQ_HEAD_INITIALIZER -#define SIMPLEQ_HEAD_INITIALIZER(head) \ - { NULL, &(head).sqh_first } +#define SIMPLEQ_HEAD_INITIALIZER(head) {NULL, &(head).sqh_first} #endif #ifndef SIMPLEQ_EMPTY diff --git a/src/rdwin32.h b/src/rdwin32.h index 40ea43a7ac..24d88f40dc 100644 --- a/src/rdwin32.h +++ b/src/rdwin32.h @@ -231,8 +231,7 @@ static RD_INLINE RD_UNUSED const char *rd_getenv(const char *env, /** * Empty struct initializer */ -#define RD_ZERO_INIT \ - { 0 } +#define RD_ZERO_INIT {0} #ifndef __cplusplus /** diff --git a/tests/0170-share_consumer_subscription.c b/tests/0170-share_consumer_subscription.c index 26fd4a3bb0..62501ef827 100644 --- a/tests/0170-share_consumer_subscription.c +++ b/tests/0170-share_consumer_subscription.c @@ -140,61 +140,44 @@ typedef struct { #define SUBSCRIBE(n) \ - { .op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = 1 } + {.op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = 1} #define SUBSCRIBE_REPEAT(n, r) \ - { .op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = (r) } -#define SUBSCRIBE_ADD(n) \ - { .op = TEST_OP_SUBSCRIBE_ADD, .topic_cnt = (n) } + {.op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = (r)} +#define SUBSCRIBE_ADD(n) {.op = TEST_OP_SUBSCRIBE_ADD, .topic_cnt = (n)} #define SUBSCRIBE_NO_CREATE(n) \ - { \ - .op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = 1, \ - .flags = TEST_OP_F_SKIP_TOPIC_CREATE \ - } -#define UNSUBSCRIBE() \ - { .op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = 1 } -#define UNSUBSCRIBE_REPEAT(r) \ - { .op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = (r) } -#define RESUBSCRIBE(n) \ - { .op = TEST_OP_RESUBSCRIBE, .topic_cnt = (n) } -#define PRODUCE(msgs) \ - { .op = TEST_OP_PRODUCE, .msgs_per_topic = (msgs) } + {.op = TEST_OP_SUBSCRIBE, \ + .topic_cnt = (n), \ + .repeat_cnt = 1, \ + .flags = TEST_OP_F_SKIP_TOPIC_CREATE} +#define UNSUBSCRIBE() {.op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = 1} +#define UNSUBSCRIBE_REPEAT(r) {.op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = (r)} +#define RESUBSCRIBE(n) {.op = TEST_OP_RESUBSCRIBE, .topic_cnt = (n)} +#define PRODUCE(msgs) {.op = TEST_OP_PRODUCE, .msgs_per_topic = (msgs)} #define PRODUCE_TO_OLD(msgs) \ - { \ - .op = TEST_OP_PRODUCE, .msgs_per_topic = (msgs), \ - .flags = TEST_OP_F_PRODUCE_TO_OLD \ - } + {.op = TEST_OP_PRODUCE, \ + .msgs_per_topic = (msgs), \ + .flags = TEST_OP_F_PRODUCE_TO_OLD} #define PRODUCE_TO_TOPIC(idx, msgs) \ - { \ - .op = TEST_OP_PRODUCE_TO_TOPIC, .topic_idx = (idx), \ - .msgs_per_topic = (msgs) \ - } -#define CONSUME(expected) \ - { .op = TEST_OP_CONSUME, .expected_msgs = (expected) } + {.op = TEST_OP_PRODUCE_TO_TOPIC, \ + .topic_idx = (idx), \ + .msgs_per_topic = (msgs)} +#define CONSUME(expected) {.op = TEST_OP_CONSUME, .expected_msgs = (expected)} #define CONSUME_VERIFY_NO_OLD(expected) \ - { \ - .op = TEST_OP_CONSUME, .expected_msgs = (expected), \ - .flags = TEST_OP_F_VERIFY_NO_OLD_MSGS \ - } -#define CONSUME_ANY() \ - { .op = TEST_OP_CONSUME, .expected_msgs = -1 } + {.op = TEST_OP_CONSUME, \ + .expected_msgs = (expected), \ + .flags = TEST_OP_F_VERIFY_NO_OLD_MSGS} +#define CONSUME_ANY() {.op = TEST_OP_CONSUME, .expected_msgs = -1} #define VERIFY_SUB(cnt) \ - { .op = TEST_OP_VERIFY_SUB_CNT, .expected_sub_cnt = (cnt) } -#define DELETE_TOPIC(idx) \ - { .op = TEST_OP_DELETE_TOPIC, .topic_idx = (idx) } -#define WAIT_MS(ms) \ - { .op = TEST_OP_WAIT, .wait_ms = (ms) } + {.op = TEST_OP_VERIFY_SUB_CNT, .expected_sub_cnt = (cnt)} +#define DELETE_TOPIC(idx) {.op = TEST_OP_DELETE_TOPIC, .topic_idx = (idx)} +#define WAIT_MS(ms) {.op = TEST_OP_WAIT, .wait_ms = (ms)} #define CREATE_CONSUMER(idx) \ - { .op = TEST_OP_CREATE_CONSUMER, .consumer_idx = (idx) } -#define CREATE_TOPIC(n) \ - { .op = TEST_OP_CREATE_TOPIC, .topic_cnt = (n) } -#define SUBSCRIBE_EXISTING() \ - { .op = TEST_OP_SUBSCRIBE_EXISTING, .repeat_cnt = 1 } -#define POLL_NO_SUB() \ - { .op = TEST_OP_POLL_NO_SUB } -#define SUBSCRIBE_EMPTY() \ - { .op = TEST_OP_SUBSCRIBE_EMPTY } -#define TEST_OPS_END() \ - { .op = TEST_OP_END } + {.op = TEST_OP_CREATE_CONSUMER, .consumer_idx = (idx)} +#define CREATE_TOPIC(n) {.op = TEST_OP_CREATE_TOPIC, .topic_cnt = (n)} +#define SUBSCRIBE_EXISTING() {.op = TEST_OP_SUBSCRIBE_EXISTING, .repeat_cnt = 1} +#define POLL_NO_SUB() {.op = TEST_OP_POLL_NO_SUB} +#define SUBSCRIBE_EMPTY() {.op = TEST_OP_SUBSCRIBE_EMPTY} +#define TEST_OPS_END() {.op = TEST_OP_END} /** diff --git a/tests/test.c b/tests/test.c index 664376afda..2f96939bb4 100644 --- a/tests/test.c +++ b/tests/test.c @@ -114,7 +114,7 @@ static const char *test_states[] = { #define _TEST_DECL(NAME) extern int main_##NAME(int, char **) #define _TEST(NAME, FLAGS, ...) \ - { .name = #NAME, .mainfunc = main_##NAME, .flags = FLAGS, __VA_ARGS__ } + {.name = #NAME, .mainfunc = main_##NAME, .flags = FLAGS, __VA_ARGS__} /** From 15f6ebb9c852bb80d61548709fca4d3b8ad00466 Mon Sep 17 00:00:00 2001 From: Eric Xu Date: Wed, 5 Aug 2026 22:20:49 -0400 Subject: [PATCH 4/4] Rerun make style-fix with correct clang-format version Co-authored-by: Cursor --- src/rdhdrhistogram.c | 3 +- src/rdkafka_msg.h | 2 +- src/rdkafka_proto.h | 9 ++- src/rdsysqueue.h | 6 +- src/rdwin32.h | 3 +- tests/0170-share_consumer_subscription.c | 79 ++++++++++++++---------- tests/test.c | 2 +- 7 files changed, 64 insertions(+), 40 deletions(-) diff --git a/src/rdhdrhistogram.c b/src/rdhdrhistogram.c index 13016e2065..08240ac7a3 100644 --- a/src/rdhdrhistogram.c +++ b/src/rdhdrhistogram.c @@ -275,7 +275,8 @@ typedef struct rd_hdr_iter_s { int64_t highestEquivalentValue; } rd_hdr_iter_t; -#define RD_HDR_ITER_INIT(hdr) {.hdr = hdr, .subBucketIdx = -1} +#define RD_HDR_ITER_INIT(hdr) \ + { .hdr = hdr, .subBucketIdx = -1 } static int rd_hdr_iter_next(rd_hdr_iter_t *it) { const rd_hdr_histogram_t *hdr = it->hdr; diff --git a/src/rdkafka_msg.h b/src/rdkafka_msg.h index ea0badd7be..6bd939d03e 100644 --- a/src/rdkafka_msg.h +++ b/src/rdkafka_msg.h @@ -245,7 +245,7 @@ typedef struct rd_kafka_msgq_s { } rd_kafka_msgq_t; #define RD_KAFKA_MSGQ_INITIALIZER(rkmq) \ - {.rkmq_msgs = TAILQ_HEAD_INITIALIZER((rkmq).rkmq_msgs)} + { .rkmq_msgs = TAILQ_HEAD_INITIALIZER((rkmq).rkmq_msgs) } #define RD_KAFKA_MSGQ_FOREACH(elm, head) \ TAILQ_FOREACH(elm, &(head)->rkmq_msgs, rkm_link) diff --git a/src/rdkafka_proto.h b/src/rdkafka_proto.h index 0726a6d962..85429fd165 100644 --- a/src/rdkafka_proto.h +++ b/src/rdkafka_proto.h @@ -284,9 +284,11 @@ typedef struct rd_kafkap_str_s { /* strndup() a Kafka string */ #define RD_KAFKAP_STR_DUP(kstr) rd_strndup((kstr)->str, RD_KAFKAP_STR_LEN(kstr)) -#define RD_KAFKAP_STR_INITIALIZER {.len = RD_KAFKAP_STR_LEN_NULL, .str = NULL} +#define RD_KAFKAP_STR_INITIALIZER \ + { .len = RD_KAFKAP_STR_LEN_NULL, .str = NULL } -#define RD_KAFKAP_STR_INITIALIZER_EMPTY {.len = 0, .str = ""} +#define RD_KAFKAP_STR_INITIALIZER_EMPTY \ + { .len = 0, .str = "" } /** * Frees a Kafka string previously allocated with `rd_kafkap_str_new()` */ @@ -663,7 +665,8 @@ typedef struct rd_kafka_pid_s { int16_t epoch; /**< Producer Epoch */ } rd_kafka_pid_t; -#define RD_KAFKA_PID_INITIALIZER {-1, -1} +#define RD_KAFKA_PID_INITIALIZER \ + { -1, -1 } /** * @returns true if \p PID is valid diff --git a/src/rdsysqueue.h b/src/rdsysqueue.h index 4e252413f2..738cdad792 100644 --- a/src/rdsysqueue.h +++ b/src/rdsysqueue.h @@ -94,7 +94,8 @@ */ #ifndef TAILQ_HEAD_INITIALIZER -#define TAILQ_HEAD_INITIALIZER(head) {NULL, &(head).tqh_first} +#define TAILQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).tqh_first } #endif #ifndef TAILQ_INSERT_BEFORE @@ -390,7 +391,8 @@ #endif #ifndef SIMPLEQ_HEAD_INITIALIZER -#define SIMPLEQ_HEAD_INITIALIZER(head) {NULL, &(head).sqh_first} +#define SIMPLEQ_HEAD_INITIALIZER(head) \ + { NULL, &(head).sqh_first } #endif #ifndef SIMPLEQ_EMPTY diff --git a/src/rdwin32.h b/src/rdwin32.h index 24d88f40dc..40ea43a7ac 100644 --- a/src/rdwin32.h +++ b/src/rdwin32.h @@ -231,7 +231,8 @@ static RD_INLINE RD_UNUSED const char *rd_getenv(const char *env, /** * Empty struct initializer */ -#define RD_ZERO_INIT {0} +#define RD_ZERO_INIT \ + { 0 } #ifndef __cplusplus /** diff --git a/tests/0170-share_consumer_subscription.c b/tests/0170-share_consumer_subscription.c index 62501ef827..26fd4a3bb0 100644 --- a/tests/0170-share_consumer_subscription.c +++ b/tests/0170-share_consumer_subscription.c @@ -140,44 +140,61 @@ typedef struct { #define SUBSCRIBE(n) \ - {.op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = 1} + { .op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = 1 } #define SUBSCRIBE_REPEAT(n, r) \ - {.op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = (r)} -#define SUBSCRIBE_ADD(n) {.op = TEST_OP_SUBSCRIBE_ADD, .topic_cnt = (n)} + { .op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = (r) } +#define SUBSCRIBE_ADD(n) \ + { .op = TEST_OP_SUBSCRIBE_ADD, .topic_cnt = (n) } #define SUBSCRIBE_NO_CREATE(n) \ - {.op = TEST_OP_SUBSCRIBE, \ - .topic_cnt = (n), \ - .repeat_cnt = 1, \ - .flags = TEST_OP_F_SKIP_TOPIC_CREATE} -#define UNSUBSCRIBE() {.op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = 1} -#define UNSUBSCRIBE_REPEAT(r) {.op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = (r)} -#define RESUBSCRIBE(n) {.op = TEST_OP_RESUBSCRIBE, .topic_cnt = (n)} -#define PRODUCE(msgs) {.op = TEST_OP_PRODUCE, .msgs_per_topic = (msgs)} + { \ + .op = TEST_OP_SUBSCRIBE, .topic_cnt = (n), .repeat_cnt = 1, \ + .flags = TEST_OP_F_SKIP_TOPIC_CREATE \ + } +#define UNSUBSCRIBE() \ + { .op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = 1 } +#define UNSUBSCRIBE_REPEAT(r) \ + { .op = TEST_OP_UNSUBSCRIBE, .repeat_cnt = (r) } +#define RESUBSCRIBE(n) \ + { .op = TEST_OP_RESUBSCRIBE, .topic_cnt = (n) } +#define PRODUCE(msgs) \ + { .op = TEST_OP_PRODUCE, .msgs_per_topic = (msgs) } #define PRODUCE_TO_OLD(msgs) \ - {.op = TEST_OP_PRODUCE, \ - .msgs_per_topic = (msgs), \ - .flags = TEST_OP_F_PRODUCE_TO_OLD} + { \ + .op = TEST_OP_PRODUCE, .msgs_per_topic = (msgs), \ + .flags = TEST_OP_F_PRODUCE_TO_OLD \ + } #define PRODUCE_TO_TOPIC(idx, msgs) \ - {.op = TEST_OP_PRODUCE_TO_TOPIC, \ - .topic_idx = (idx), \ - .msgs_per_topic = (msgs)} -#define CONSUME(expected) {.op = TEST_OP_CONSUME, .expected_msgs = (expected)} + { \ + .op = TEST_OP_PRODUCE_TO_TOPIC, .topic_idx = (idx), \ + .msgs_per_topic = (msgs) \ + } +#define CONSUME(expected) \ + { .op = TEST_OP_CONSUME, .expected_msgs = (expected) } #define CONSUME_VERIFY_NO_OLD(expected) \ - {.op = TEST_OP_CONSUME, \ - .expected_msgs = (expected), \ - .flags = TEST_OP_F_VERIFY_NO_OLD_MSGS} -#define CONSUME_ANY() {.op = TEST_OP_CONSUME, .expected_msgs = -1} + { \ + .op = TEST_OP_CONSUME, .expected_msgs = (expected), \ + .flags = TEST_OP_F_VERIFY_NO_OLD_MSGS \ + } +#define CONSUME_ANY() \ + { .op = TEST_OP_CONSUME, .expected_msgs = -1 } #define VERIFY_SUB(cnt) \ - {.op = TEST_OP_VERIFY_SUB_CNT, .expected_sub_cnt = (cnt)} -#define DELETE_TOPIC(idx) {.op = TEST_OP_DELETE_TOPIC, .topic_idx = (idx)} -#define WAIT_MS(ms) {.op = TEST_OP_WAIT, .wait_ms = (ms)} + { .op = TEST_OP_VERIFY_SUB_CNT, .expected_sub_cnt = (cnt) } +#define DELETE_TOPIC(idx) \ + { .op = TEST_OP_DELETE_TOPIC, .topic_idx = (idx) } +#define WAIT_MS(ms) \ + { .op = TEST_OP_WAIT, .wait_ms = (ms) } #define CREATE_CONSUMER(idx) \ - {.op = TEST_OP_CREATE_CONSUMER, .consumer_idx = (idx)} -#define CREATE_TOPIC(n) {.op = TEST_OP_CREATE_TOPIC, .topic_cnt = (n)} -#define SUBSCRIBE_EXISTING() {.op = TEST_OP_SUBSCRIBE_EXISTING, .repeat_cnt = 1} -#define POLL_NO_SUB() {.op = TEST_OP_POLL_NO_SUB} -#define SUBSCRIBE_EMPTY() {.op = TEST_OP_SUBSCRIBE_EMPTY} -#define TEST_OPS_END() {.op = TEST_OP_END} + { .op = TEST_OP_CREATE_CONSUMER, .consumer_idx = (idx) } +#define CREATE_TOPIC(n) \ + { .op = TEST_OP_CREATE_TOPIC, .topic_cnt = (n) } +#define SUBSCRIBE_EXISTING() \ + { .op = TEST_OP_SUBSCRIBE_EXISTING, .repeat_cnt = 1 } +#define POLL_NO_SUB() \ + { .op = TEST_OP_POLL_NO_SUB } +#define SUBSCRIBE_EMPTY() \ + { .op = TEST_OP_SUBSCRIBE_EMPTY } +#define TEST_OPS_END() \ + { .op = TEST_OP_END } /** diff --git a/tests/test.c b/tests/test.c index 2f96939bb4..664376afda 100644 --- a/tests/test.c +++ b/tests/test.c @@ -114,7 +114,7 @@ static const char *test_states[] = { #define _TEST_DECL(NAME) extern int main_##NAME(int, char **) #define _TEST(NAME, FLAGS, ...) \ - {.name = #NAME, .mainfunc = main_##NAME, .flags = FLAGS, __VA_ARGS__} + { .name = #NAME, .mainfunc = main_##NAME, .flags = FLAGS, __VA_ARGS__ } /**