From e1046452796c0d0b08e0e404bcaf1015a792a775 Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Wed, 7 Oct 2020 17:20:50 +0100 Subject: [PATCH] msgps clients now report continuously. --- test/old/msgsps_common.h | 4 +-- test/old/msgsps_pub.c | 61 ++++++++++------------------------------ test/old/msgsps_sub.c | 59 ++++++++------------------------------ 3 files changed, 27 insertions(+), 97 deletions(-) diff --git a/test/old/msgsps_common.h b/test/old/msgsps_common.h index 54657861..ccd3fa89 100644 --- a/test/old/msgsps_common.h +++ b/test/old/msgsps_common.h @@ -1,9 +1,7 @@ #define HOST "127.0.0.1" -#define PORT 1888 +#define PORT 1883 #define PUB_QOS 1 #define SUB_QOS 1 - -#define MESSAGE_COUNT 100000L #define MESSAGE_SIZE 1024L diff --git a/test/old/msgsps_pub.c b/test/old/msgsps_pub.c index df4554bb..74255373 100644 --- a/test/old/msgsps_pub.c +++ b/test/old/msgsps_pub.c @@ -4,76 +4,45 @@ #include #include #include -#include +#include #include #include -static bool run = true; -static int message_count = 0; -static struct timeval start, stop; - -void my_connect_callback(struct mosquitto *mosq, void *obj, int rc) -{ - printf("rc: %d\n", rc); - gettimeofday(&start, NULL); -} - -void my_disconnect_callback(struct mosquitto *mosq, void *obj, int result) -{ - run = false; -} +static volatile int message_count = 0; void my_publish_callback(struct mosquitto *mosq, void *obj, int mid) { message_count++; - if(message_count == MESSAGE_COUNT){ - gettimeofday(&stop, NULL); - mosquitto_disconnect((struct mosquitto *)obj); - } } int main(int argc, char *argv[]) { struct mosquitto *mosq; int i; - double dstart, dstop, diff; - uint8_t *buf; + uint8_t buf[MESSAGE_SIZE]; - buf = malloc(MESSAGE_SIZE*MESSAGE_COUNT); - if(!buf){ - printf("Error: Out of memory.\n"); - return 1; - } - - start.tv_sec = 0; - start.tv_usec = 0; - stop.tv_sec = 0; - stop.tv_usec = 0; - mosquitto_lib_init(); - mosq = mosquitto_new("perftest", true, NULL); - mosquitto_connect_callback_set(mosq, my_connect_callback); - mosquitto_disconnect_callback_set(mosq, my_disconnect_callback); + mosq = mosquitto_new(NULL, true, NULL); mosquitto_publish_callback_set(mosq, my_publish_callback); - mosquitto_connect(mosq, HOST, PORT, 600); - mosquitto_loop_start(mosq); i=0; - for(i=0; i -static bool run = true; -static int message_count = 0; -static struct timeval start, stop; -FILE *fptr = NULL; - - -void my_connect_callback(struct mosquitto *mosq, void *obj, int rc) -{ - printf("rc: %d\n", rc); -} - -void my_disconnect_callback(struct mosquitto *mosq, void *obj, int result) -{ - run = false; -} +static volatile int message_count = 0; void my_message_callback(struct mosquitto *mosq, void *obj, const struct mosquitto_message *msg) { - if(message_count == 0){ - gettimeofday(&start, NULL); - } - //fwrite(msg->payload, sizeof(uint8_t), msg->payloadlen, fptr); message_count++; - if(message_count == MESSAGE_COUNT){ - gettimeofday(&stop, NULL); - mosquitto_disconnect((struct mosquitto *)obj); - } } int main(int argc, char *argv[]) { struct mosquitto *mosq; - double dstart, dstop, diff; - int mid = 0; - char id[50]; - - start.tv_sec = 0; - start.tv_usec = 0; - stop.tv_sec = 0; - stop.tv_usec = 0; + int c; - fptr = fopen("msgsps_sub.dat", "wb"); - if(!fptr){ - printf("Error: Unable to write to msgsps_sub.dat.\n"); - return 1; - } mosquitto_lib_init(); - snprintf(id, 50, "msgps_sub_%d", getpid()); - mosq = mosquitto_new(id, true, NULL); - mosquitto_connect_callback_set(mosq, my_connect_callback); - mosquitto_disconnect_callback_set(mosq, my_disconnect_callback); + mosq = mosquitto_new(NULL, true, NULL); mosquitto_message_callback_set(mosq, my_message_callback); mosquitto_connect(mosq, HOST, PORT, 600); - mosquitto_subscribe(mosq, &mid, "perf/test", SUB_QOS); - - mosquitto_loop_forever(mosq, 10, 1); + mosquitto_subscribe(mosq, NULL, "perf/test", SUB_QOS); - dstart = (double)start.tv_sec*1.0e6 + (double)start.tv_usec; - dstop = (double)stop.tv_sec*1.0e6 + (double)stop.tv_usec; - diff = (dstop-dstart)/1.0e6; + mosquitto_loop_start(mosq); + while(1){ + sleep(1); + c = message_count; + message_count = 0; + printf("%d\n", c); - printf("Start: %g\nStop: %g\nDiff: %g\nMessages/s: %g\n", dstart, dstop, diff, (double)MESSAGE_COUNT/diff); + } mosquitto_destroy(mosq); mosquitto_lib_cleanup(); - fclose(fptr); return 0; }