Files
esp-mqtt/test/apps/publish_connect_test/main/publish_connect_test.h
T
2025-09-26 17:45:16 +02:00

60 lines
1.5 KiB
C

/*
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
#pragma once
#include "mqtt_client.h"
typedef enum {NONE, TCP, SSL, WS, WSS} transport_t;
typedef struct {
esp_mqtt_client_handle_t mqtt_client;
void *data;
} command_context_t;
typedef struct {
transport_t selected_transport;
char *pattern;
char *subscribe_to;
char *publish_to;
int pattern_repetitions;
int qos;
char *expected;
size_t expected_size;
size_t nr_of_msg_received;
size_t nr_of_msg_expected;
char *received_data;
} publish_context_t ;
typedef struct {
struct arg_str *uri;
struct arg_int *test_case;
struct arg_end *end;
} connection_args_t;
typedef struct {
struct arg_int *expected_to_publish;
struct arg_int *qos;
struct arg_int *enqueue;
struct arg_end *end;
} publish_args_t;
typedef struct {
struct arg_str *transport;
struct arg_str *subscribe_to;
struct arg_str *publish_to;
struct arg_str *pattern;
struct arg_int *pattern_repetitions;
struct arg_end *end;
} publish_setup_args_t;
void publish_init_flags(void);
void publish_setup(command_context_t *ctx, char const *transport);
void publish_teardown(command_context_t *ctx);
void publish_test(command_context_t *ctx, int expect_to_publish, int qos, bool enqueue);
void connection_test(command_context_t *ctx, const char *uri, int test_case);
void connect_setup(command_context_t *ctx);
void connect_teardown(command_context_t *ctx);