diff options
Diffstat (limited to 'fluent-bit/lib/librdkafka-2.1.0/tests/0132-strategy_ordering.c')
-rw-r--r-- | fluent-bit/lib/librdkafka-2.1.0/tests/0132-strategy_ordering.c | 171 |
1 files changed, 0 insertions, 171 deletions
diff --git a/fluent-bit/lib/librdkafka-2.1.0/tests/0132-strategy_ordering.c b/fluent-bit/lib/librdkafka-2.1.0/tests/0132-strategy_ordering.c deleted file mode 100644 index 5199f4f81..000000000 --- a/fluent-bit/lib/librdkafka-2.1.0/tests/0132-strategy_ordering.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * librdkafka - Apache Kafka C library - * - * Copyright (c) 2022, Magnus Edenhill - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "test.h" - - -#define _PART_CNT 4 - -static void verify_roundrobin_assignment(rd_kafka_t *c[]) { - rd_kafka_topic_partition_list_t *assignment1; - rd_kafka_topic_partition_list_t *assignment2; - - TEST_CALL_ERR__(rd_kafka_assignment(c[0], &assignment1)); - - TEST_ASSERT(assignment1->cnt == _PART_CNT / 2, - "Roundrobin: Assignment partitions for %s" - "is %d, but the expected is %d\n", - rd_kafka_name(c[0]), assignment1->cnt, _PART_CNT / 2); - - TEST_ASSERT(assignment1->elems[0].partition == 0, - "Roundrobin: First assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[0]), assignment1->elems[0].partition, 0); - TEST_ASSERT(assignment1->elems[1].partition == 2, - "Roundrobin: Second assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[0]), assignment1->elems[1].partition, 2); - - TEST_CALL_ERR__(rd_kafka_assignment(c[1], &assignment2)); - TEST_ASSERT(assignment2->cnt == _PART_CNT / 2, - "Roundrobin: Assignment partitions for %s" - "is %d, but the expected is %d\n", - rd_kafka_name(c[1]), assignment2->cnt, _PART_CNT / 2); - - TEST_ASSERT(assignment2->elems[0].partition == 1, - "Roundrobin: First assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[1]), assignment2->elems[0].partition, 1); - TEST_ASSERT(assignment2->elems[1].partition == 3, - "Roundrobin: Second assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[1]), assignment2->elems[1].partition, 3); - - rd_kafka_topic_partition_list_destroy(assignment1); - rd_kafka_topic_partition_list_destroy(assignment2); -} - -static void verify_range_assignment(rd_kafka_t *c[]) { - rd_kafka_topic_partition_list_t *assignment1; - rd_kafka_topic_partition_list_t *assignment2; - - TEST_CALL_ERR__(rd_kafka_assignment(c[0], &assignment1)); - - TEST_ASSERT(assignment1->cnt == _PART_CNT / 2, - "Range: Assignment partition for %s" - "is %d, but the expected is %d\n", - rd_kafka_name(c[0]), assignment1->cnt, _PART_CNT / 2); - - TEST_ASSERT(assignment1->elems[0].partition == 0, - "Range: First assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[0]), assignment1->elems[0].partition, 0); - TEST_ASSERT(assignment1->elems[1].partition == 1, - "Range: Second assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[0]), assignment1->elems[1].partition, 1); - - TEST_CALL_ERR__(rd_kafka_assignment(c[1], &assignment2)); - TEST_ASSERT(assignment2->cnt == _PART_CNT / 2, - "Range: Assignment partition for %s" - "is %d, but the expected is %d\n", - rd_kafka_name(c[1]), assignment2->cnt, _PART_CNT / 2); - - TEST_ASSERT(assignment2->elems[0].partition == 2, - "Range: First assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[1]), assignment2->elems[0].partition, 2); - TEST_ASSERT(assignment2->elems[1].partition == 3, - "Range: Second assignment partition for %s" - "is %d, but the expectation is %d\n", - rd_kafka_name(c[1]), assignment2->elems[1].partition, 3); - - rd_kafka_topic_partition_list_destroy(assignment1); - rd_kafka_topic_partition_list_destroy(assignment2); -} - -static void do_test_stragety_ordering(const char *assignor, - const char *expected_assignor) { - rd_kafka_conf_t *conf; -#define _C_CNT 2 - rd_kafka_t *c[_C_CNT]; - - const char *topic; - const int msgcnt = 100; - int i; - uint64_t testid; - - SUB_TEST("partition.assignment.strategy = %s", assignor); - - testid = test_id_generate(); - - topic = test_mk_topic_name("0132-strategy_ordering", 1); - test_create_topic(NULL, topic, _PART_CNT, 1); - test_produce_msgs_easy(topic, testid, RD_KAFKA_PARTITION_UA, msgcnt); - - test_conf_init(&conf, NULL, 30); - test_conf_set(conf, "partition.assignment.strategy", assignor); - - for (i = 0; i < _C_CNT; i++) { - char name[16]; - - rd_snprintf(name, sizeof(name), "c%d", i); - test_conf_set(conf, "client.id", name); - - c[i] = test_create_consumer(assignor, NULL, - rd_kafka_conf_dup(conf), NULL); - - test_consumer_subscribe(c[i], topic); - } - - rd_kafka_conf_destroy(conf); - - /* Await assignments for all consumers */ - for (i = 0; i < _C_CNT; i++) { - test_consumer_wait_assignment(c[i], rd_true); - } - - if (!strcmp(expected_assignor, "range")) - verify_range_assignment(c); - else - verify_roundrobin_assignment(c); - - for (i = 0; i < _C_CNT; i++) { - test_consumer_close(c[i]); - rd_kafka_destroy(c[i]); - } - - SUB_TEST_PASS(); -} - - -int main_0132_strategy_ordering(int argc, char **argv) { - do_test_stragety_ordering("roundrobin,range", "roundrobin"); - do_test_stragety_ordering("range,roundrobin", "range"); - return 0; -} |