Commit 37ed6f90bf79a1efa70657fb14843539c5d3a071
1 parent
d14a031e
Add unit tests for modbus_mapping_new
Showing
2 changed files
with
27 additions
and
2 deletions
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 |