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,8 +190,8 @@ EXPORT int modbus_write_and_read_registers(modbus_t *ctx, int write_addr, int wr
190 uint16_t *dest); 190 uint16_t *dest);
191 EXPORT int modbus_report_slave_id(modbus_t *ctx, uint8_t *dest); 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 EXPORT void modbus_mapping_free(modbus_mapping_t *mb_mapping); 195 EXPORT void modbus_mapping_free(modbus_mapping_t *mb_mapping);
196 196
197 EXPORT int modbus_send_raw_request(modbus_t *ctx, uint8_t *raw_req, int raw_req_length); 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,6 +84,31 @@ int main(int argc, char*argv[])
84 return -1; 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 /* Examples from PI_MODBUS_300.pdf. 112 /* Examples from PI_MODBUS_300.pdf.
88 Only the read-only input values are assigned. */ 113 Only the read-only input values are assigned. */
89 114