Эх сурвалжийг харах

Add unit tests for modbus_mapping_new

Stéphane Raimbault 12 жил өмнө
parent
commit
37ed6f90bf
2 өөрчлөгдсөн 27 нэмэгдсэн , 2 устгасан
  1. 2 2
      src/modbus.h
  2. 25 0
      tests/unit-test-server.c

+ 2 - 2
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);

+ 25 - 0
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. */