Commit 37ed6f90bf79a1efa70657fb14843539c5d3a071

Authored by Stéphane Raimbault
1 parent d14a031e

Add unit tests for modbus_mapping_new

src/modbus.h
... ... @@ -190,8 +190,8 @@ EXPORT int modbus_write_and_read_registers(modbus_t *ctx, int write_addr, int wr
190 190 uint16_t *dest);
191 191 EXPORT int modbus_report_slave_id(modbus_t *ctx, uint8_t *dest);
192 192  
193   -EXPORT modbus_mapping_t* modbus_mapping_new(int nb_coil_status, int nb_input_status,
194   - int nb_holding_registers, int nb_input_registers);
  193 +EXPORT modbus_mapping_t* modbus_mapping_new(int nb_bits, int nb_input_bits,
  194 + int nb_registers, int nb_input_registers);
195 195 EXPORT void modbus_mapping_free(modbus_mapping_t *mb_mapping);
196 196  
197 197 EXPORT int modbus_send_raw_request(modbus_t *ctx, uint8_t *raw_req, int raw_req_length);
... ...
tests/unit-test-server.c
... ... @@ -84,6 +84,31 @@ int main(int argc, char*argv[])
84 84 return -1;
85 85 }
86 86  
  87 + /* Unit tests of modbus_mapping_new (tests would not be sufficient if two nb_* were identical) */
  88 + if (mb_mapping->nb_bits != UT_BITS_ADDRESS + UT_BITS_NB) {
  89 + printf("Invalid nb bits (%d != %d)\n", UT_BITS_ADDRESS + UT_BITS_NB, mb_mapping->nb_bits);
  90 + modbus_free(ctx);
  91 + return -1;
  92 + }
  93 +
  94 + if (mb_mapping->nb_input_bits != UT_INPUT_BITS_ADDRESS + UT_INPUT_BITS_NB) {
  95 + printf("Invalid nb input bits: %d\n", UT_INPUT_BITS_ADDRESS + UT_INPUT_BITS_NB);
  96 + modbus_free(ctx);
  97 + return -1;
  98 + }
  99 +
  100 + if (mb_mapping->nb_registers != UT_REGISTERS_ADDRESS + UT_REGISTERS_NB) {
  101 + printf("Invalid nb registers: %d\n", UT_REGISTERS_ADDRESS + UT_REGISTERS_NB);
  102 + modbus_free(ctx);
  103 + return -1;
  104 + }
  105 +
  106 + if (mb_mapping->nb_input_registers != UT_INPUT_REGISTERS_ADDRESS + UT_INPUT_REGISTERS_NB) {
  107 + printf("Invalid bb input registers: %d\n", UT_INPUT_REGISTERS_ADDRESS + UT_INPUT_REGISTERS_NB);
  108 + modbus_free(ctx);
  109 + return -1;
  110 + }
  111 +
87 112 /* Examples from PI_MODBUS_300.pdf.
88 113 Only the read-only input values are assigned. */
89 114  
... ...