From 1d058c8e5e5cb268d5f75da26c8ebbc8aa703931 Mon Sep 17 00:00:00 2001 From: Stéphane Raimbault Date: Sun, 6 Apr 2008 18:05:07 +0200 Subject: [PATCH] Major changes to test-master-random - Use only addresses between address_start and address_end - Better memory usage --- tests/test-master-random.c | 261 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------- 1 file changed, 133 insertions(+), 128 deletions(-) diff --git a/tests/test-master-random.c b/tests/test-master-random.c index 9b58e16..6957075 100644 --- a/tests/test-master-random.c +++ b/tests/test-master-random.c @@ -35,25 +35,27 @@ - read_holding_registers All these functions are called with random values on a address - range defined by following defines. - - This program is also really useful to test your remote target unit. + range defined by the following defines. */ -#define LOOP 1 -#define SLAVE 0x11 -#define ADDR_MIN 0 -#define ADDR_MAX 499 -#define FIELDS 500 +#define LOOP 1 +#define SLAVE 0x11 +#define ADDRESS_START 0 +#define ADDRESS_END 499 +/* At each loop, the program works in the range ADDRESS_START to + * ADDRESS_END then ADDRESS_START + 1 to ADDRESS_END and so on. + */ int main(void) { - int ok, fail; - int loop_nb; + int ret; + int nb_fail; + int nb_loop; int addr; - int field_nb; - int *tab_rq; - int *tab_rq_bits; - int *tab_rp; + int nb_points_total; + uint8_t *tab_rq_status; + uint8_t *tab_rp_status; + uint16_t *tab_rq_registers; + uint16_t *tab_rp_registers; modbus_param_t mb_param; /* RTU parity : none, even, odd */ @@ -66,141 +68,144 @@ int main(void) modbus_connect(&mb_param); /* Allocate and initialize the different memory spaces */ - tab_rq = (int *) malloc(FIELDS * sizeof(int)); - memset(tab_rq, 0, FIELDS * sizeof(int)); - - tab_rq_bits = (int *) malloc(FIELDS * sizeof(int)); - memset(tab_rq_bits, 0, FIELDS * sizeof(int)); - - tab_rp = (int *) malloc(FIELDS * sizeof(int)); - memset(tab_rp, 0, FIELDS * sizeof(int)); - - loop_nb = ok = fail = 0; - while (loop_nb++ < LOOP) { - for (addr=ADDR_MIN; addr <= ADDR_MAX; addr++) { - for (field_nb=1; field_nb<=FIELDS; field_nb++) { - int i; - - /* Random numbers (short) */ - for (i=0; i