Commit 861e6a84b9bc5d2f5de68defdf8b8ebdf737a59d

Authored by Stéphane Raimbault
1 parent adbc98bc

New tests

Showing 1 changed file with 81 additions and 22 deletions
tests/unit-test-master.c
@@ -38,13 +38,14 @@ int main(void) @@ -38,13 +38,14 @@ int main(void)
38 uint8_t value; 38 uint8_t value;
39 uint16_t address; 39 uint16_t address;
40 uint16_t nb_points; 40 uint16_t nb_points;
  41 + int ret;
41 42
42 /* RTU parity : none, even, odd */ 43 /* RTU parity : none, even, odd */
43 /* modbus_init_rtu(&mb_param, "/dev/ttyS0", 19200, "none", 8, 1); */ 44 /* modbus_init_rtu(&mb_param, "/dev/ttyS0", 19200, "none", 8, 1); */
44 45
45 /* TCP */ 46 /* TCP */
46 modbus_init_tcp(&mb_param, "127.0.0.1", 1502); 47 modbus_init_tcp(&mb_param, "127.0.0.1", 1502);
47 - modbus_set_debug(&mb_param, TRUE); 48 +// modbus_set_debug(&mb_param, TRUE);
48 49
49 modbus_connect(&mb_param); 50 modbus_connect(&mb_param);
50 51
@@ -60,11 +61,18 @@ int main(void) @@ -60,11 +61,18 @@ int main(void)
60 tab_rp_registers = (uint16_t *) malloc(nb_points * sizeof(uint16_t)); 61 tab_rp_registers = (uint16_t *) malloc(nb_points * sizeof(uint16_t));
61 memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t)); 62 memset(tab_rp_registers, 0, nb_points * sizeof(uint16_t));
62 63
63 - printf("Unit testing\n"); 64 + printf("UNIT TESTING\n");
  65 +
  66 + printf("Test read functions:\n");
64 67
65 /** COIL STATUS **/ 68 /** COIL STATUS **/
66 - read_coil_status(&mb_param, SLAVE, UT_COIL_STATUS_ADDRESS,  
67 - UT_COIL_STATUS_NB_POINTS, tab_rp_status); 69 + ret = read_coil_status(&mb_param, SLAVE, UT_COIL_STATUS_ADDRESS,
  70 + UT_COIL_STATUS_NB_POINTS, tab_rp_status);
  71 + printf("* coil status: ");
  72 + if (ret != UT_COIL_STATUS_NB_POINTS) {
  73 + printf("FAILED (nb points %d)\n", ret);
  74 + goto close;
  75 + }
68 76
69 i = 0; 77 i = 0;
70 address = UT_COIL_STATUS_ADDRESS; 78 address = UT_COIL_STATUS_ADDRESS;
@@ -74,7 +82,7 @@ int main(void) @@ -74,7 +82,7 @@ int main(void)
74 82
75 value = get_byte_from_bits(tab_rp_status, i*8, nb_bits); 83 value = get_byte_from_bits(tab_rp_status, i*8, nb_bits);
76 if (value != UT_COIL_STATUS_TAB[i]) { 84 if (value != UT_COIL_STATUS_TAB[i]) {
77 - printf("Coil status: FAILED (%0X != %0X)\n", 85 + printf("FAILED (%0X != %0X)\n",
78 value, UT_COIL_STATUS_TAB[i]); 86 value, UT_COIL_STATUS_TAB[i]);
79 goto close; 87 goto close;
80 } 88 }
@@ -82,12 +90,17 @@ int main(void) @@ -82,12 +90,17 @@ int main(void)
82 nb_points -= nb_bits; 90 nb_points -= nb_bits;
83 i++; 91 i++;
84 } 92 }
85 - printf("Coil status: OK\n");  
86 - 93 + printf("OK\n");
87 94
88 /** INPUT STATUS **/ 95 /** INPUT STATUS **/
89 - read_input_status(&mb_param, SLAVE, UT_INPUT_STATUS_ADDRESS,  
90 - UT_INPUT_STATUS_NB_POINTS, tab_rp_status); 96 + ret = read_input_status(&mb_param, SLAVE, UT_INPUT_STATUS_ADDRESS,
  97 + UT_INPUT_STATUS_NB_POINTS, tab_rp_status);
  98 + printf("* input status :");
  99 +
  100 + if (ret != UT_INPUT_STATUS_NB_POINTS) {
  101 + printf("FAILED (nb points %d)\n", ret);
  102 + goto close;
  103 + }
91 104
92 i = 0; 105 i = 0;
93 address = UT_INPUT_STATUS_ADDRESS; 106 address = UT_INPUT_STATUS_ADDRESS;
@@ -97,7 +110,7 @@ int main(void) @@ -97,7 +110,7 @@ int main(void)
97 110
98 value = get_byte_from_bits(tab_rp_status, i*8, nb_bits); 111 value = get_byte_from_bits(tab_rp_status, i*8, nb_bits);
99 if (value != UT_INPUT_STATUS_TAB[i]) { 112 if (value != UT_INPUT_STATUS_TAB[i]) {
100 - printf("Input status: FAILED (%0X != %0X)\n", 113 + printf("FAILED (%0X != %0X)\n",
101 value, UT_INPUT_STATUS_TAB[i]); 114 value, UT_INPUT_STATUS_TAB[i]);
102 goto close; 115 goto close;
103 } 116 }
@@ -105,37 +118,83 @@ int main(void) @@ -105,37 +118,83 @@ int main(void)
105 nb_points -= nb_bits; 118 nb_points -= nb_bits;
106 i++; 119 i++;
107 } 120 }
108 - printf("Input status: OK\n"); 121 + printf("OK\n");
109 122
110 /** HOLDING REGISTERS **/ 123 /** HOLDING REGISTERS **/
111 - read_holding_registers(&mb_param, SLAVE, UT_HOLDING_REGISTERS_ADDRESS,  
112 - UT_HOLDING_REGISTERS_NB_POINTS, tab_rp_registers); 124 + ret = read_holding_registers(&mb_param, SLAVE, UT_HOLDING_REGISTERS_ADDRESS,
  125 + UT_HOLDING_REGISTERS_NB_POINTS, tab_rp_registers);
  126 + printf("* holding registers: ");
  127 + if (ret != UT_HOLDING_REGISTERS_NB_POINTS) {
  128 + printf("FAILED (nb points %d)\n", ret);
  129 + goto close;
  130 + }
  131 +
113 for (i=0; i < UT_HOLDING_REGISTERS_NB_POINTS; i++) { 132 for (i=0; i < UT_HOLDING_REGISTERS_NB_POINTS; i++) {
114 if (tab_rp_registers[i] != UT_HOLDING_REGISTERS_TAB[i]) { 133 if (tab_rp_registers[i] != UT_HOLDING_REGISTERS_TAB[i]) {
115 - printf("Holding registers: FAILED (%0X != %0X)\n", 134 + printf("FAILED (%0X != %0X)\n",
116 tab_rp_registers[i], UT_HOLDING_REGISTERS_TAB[i]); 135 tab_rp_registers[i], UT_HOLDING_REGISTERS_TAB[i]);
117 goto close; 136 goto close;
118 } 137 }
119 } 138 }
120 - printf("Holding registers: OK\n"); 139 + printf("OK\n");
121 140
122 /** INPUT REGISTERS **/ 141 /** INPUT REGISTERS **/
123 - read_input_registers(&mb_param, SLAVE, UT_INPUT_REGISTERS_ADDRESS,  
124 - UT_INPUT_REGISTERS_NB_POINTS, tab_rp_registers); 142 + ret = read_input_registers(&mb_param, SLAVE, UT_INPUT_REGISTERS_ADDRESS,
  143 + UT_INPUT_REGISTERS_NB_POINTS, tab_rp_registers);
  144 + printf("* input registers: ");
  145 + if (ret != UT_INPUT_REGISTERS_NB_POINTS) {
  146 + printf("FAILED (nb points %d)\n", ret);
  147 + goto close;
  148 + }
  149 +
125 for (i=0; i < UT_INPUT_REGISTERS_NB_POINTS; i++) { 150 for (i=0; i < UT_INPUT_REGISTERS_NB_POINTS; i++) {
126 if (tab_rp_registers[i] != UT_INPUT_REGISTERS_TAB[i]) { 151 if (tab_rp_registers[i] != UT_INPUT_REGISTERS_TAB[i]) {
127 - printf("Input registers: FAILED (%0X != %0X)\n", 152 + printf("FAILED (%0X != %0X)\n",
128 tab_rp_registers[i], UT_INPUT_REGISTERS_TAB[i]); 153 tab_rp_registers[i], UT_INPUT_REGISTERS_TAB[i]);
129 goto close; 154 goto close;
130 } 155 }
131 } 156 }
132 - printf("Input registers: OK\n"); 157 + printf("OK\n");
133 158
134 159
135 - /** ILLEGAL DATA ADDRESSES */  
136 - read_coil_status(&mb_param, SLAVE, UT_COIL_STATUS_ADDRESS + UT_COIL_STATUS_NB_POINTS + 1,  
137 - UT_COIL_STATUS_NB_POINTS, tab_rp_status); 160 + /** ILLEGAL DATA ADDRESS */
  161 + printf("\nTest illegal data address:");
  162 +
  163 + /* The mapping begins at 0 and end at adresse + nb_points so
  164 + * the adresses above are not valid. */
138 165
  166 + ret = read_coil_status(&mb_param, SLAVE, UT_COIL_STATUS_ADDRESS,
  167 + UT_COIL_STATUS_NB_POINTS + 1, tab_rp_status);
  168 + printf("* coil status: ");
  169 + if (ret == ILLEGAL_DATA_ADDRESS)
  170 + printf("OK");
  171 + else
  172 + printf("FAILED");
  173 +
  174 + ret = read_input_status(&mb_param, SLAVE, UT_INPUT_STATUS_ADDRESS,
  175 + UT_INPUT_STATUS_NB_POINTS + 1, tab_rp_status);
  176 + printf("* input status: ");
  177 + if (ret == ILLEGAL_DATA_ADDRESS)
  178 + printf("OK");
  179 + else
  180 + printf("FAILED");
  181 +
  182 + ret = read_holding_registers(&mb_param, SLAVE, UT_HOLDING_REGISTERS_ADDRESS,
  183 + UT_HOLDING_REGISTERS_NB_POINTS + 1, tab_rp_registers);
  184 + printf("* holding registers: ");
  185 + if (ret == ILLEGAL_DATA_ADDRESS)
  186 + printf("OK");
  187 + else
  188 + printf("FAILED");
  189 +
  190 + ret = read_input_registers(&mb_param, SLAVE, UT_INPUT_REGISTERS_ADDRESS,
  191 + UT_INPUT_REGISTERS_NB_POINTS + 1, tab_rp_registers);
  192 + printf("* input registers: ");
  193 + if (ret == ILLEGAL_DATA_ADDRESS)
  194 + printf("OK");
  195 + else
  196 + printf("FAILED");
  197 +
139 close: 198 close:
140 /* Free the memory */ 199 /* Free the memory */
141 free(tab_rp_status); 200 free(tab_rp_status);