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 | 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 | ... | ... |