From 37ed6f90bf79a1efa70657fb14843539c5d3a071 Mon Sep 17 00:00:00 2001 From: Stéphane Raimbault Date: Thu, 1 Nov 2012 23:46:54 +0100 Subject: [PATCH] Add unit tests for modbus_mapping_new --- src/modbus.h | 4 ++-- tests/unit-test-server.c | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/modbus.h b/src/modbus.h index 399c41b..ee114ac 100644 --- a/src/modbus.h +++ b/src/modbus.h @@ -190,8 +190,8 @@ EXPORT int modbus_write_and_read_registers(modbus_t *ctx, int write_addr, int wr uint16_t *dest); EXPORT int modbus_report_slave_id(modbus_t *ctx, uint8_t *dest); -EXPORT modbus_mapping_t* modbus_mapping_new(int nb_coil_status, int nb_input_status, - int nb_holding_registers, int nb_input_registers); +EXPORT modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits, + int nb_registers, int nb_input_registers); EXPORT void modbus_mapping_free(modbus_mapping_t *mb_mapping); EXPORT int modbus_send_raw_request(modbus_t *ctx, uint8_t *raw_req, int raw_req_length); diff --git a/tests/unit-test-server.c b/tests/unit-test-server.c index 380ae08..ebf47e1 100644 --- a/tests/unit-test-server.c +++ b/tests/unit-test-server.c @@ -84,6 +84,31 @@ int main(int argc, char*argv[]) return -1; } + /* Unit tests of modbus_mapping_new (tests would not be sufficient if two nb_* were identical) */ + if (mb_mapping->nb_bits != UT_BITS_ADDRESS + UT_BITS_NB) { + printf("Invalid nb bits (%d != %d)\n", UT_BITS_ADDRESS + UT_BITS_NB, mb_mapping->nb_bits); + modbus_free(ctx); + return -1; + } + + if (mb_mapping->nb_input_bits != UT_INPUT_BITS_ADDRESS + UT_INPUT_BITS_NB) { + printf("Invalid nb input bits: %d\n", UT_INPUT_BITS_ADDRESS + UT_INPUT_BITS_NB); + modbus_free(ctx); + return -1; + } + + if (mb_mapping->nb_registers != UT_REGISTERS_ADDRESS + UT_REGISTERS_NB) { + printf("Invalid nb registers: %d\n", UT_REGISTERS_ADDRESS + UT_REGISTERS_NB); + modbus_free(ctx); + return -1; + } + + if (mb_mapping->nb_input_registers != UT_INPUT_REGISTERS_ADDRESS + UT_INPUT_REGISTERS_NB) { + printf("Invalid bb input registers: %d\n", UT_INPUT_REGISTERS_ADDRESS + UT_INPUT_REGISTERS_NB); + modbus_free(ctx); + return -1; + } + /* Examples from PI_MODBUS_300.pdf. Only the read-only input values are assigned. */ -- libgit2 0.21.4