Commit 861e6a84b9bc5d2f5de68defdf8b8ebdf737a59d
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 | 38 | uint8_t value; |
| 39 | 39 | uint16_t address; |
| 40 | 40 | uint16_t nb_points; |
| 41 | + int ret; | |
| 41 | 42 | |
| 42 | 43 | /* RTU parity : none, even, odd */ |
| 43 | 44 | /* modbus_init_rtu(&mb_param, "/dev/ttyS0", 19200, "none", 8, 1); */ |
| 44 | 45 | |
| 45 | 46 | /* TCP */ |
| 46 | 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 | 50 | modbus_connect(&mb_param); |
| 50 | 51 | |
| ... | ... | @@ -60,11 +61,18 @@ int main(void) |
| 60 | 61 | tab_rp_registers = (uint16_t *) malloc(nb_points * sizeof(uint16_t)); |
| 61 | 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 | 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 | 77 | i = 0; |
| 70 | 78 | address = UT_COIL_STATUS_ADDRESS; |
| ... | ... | @@ -74,7 +82,7 @@ int main(void) |
| 74 | 82 | |
| 75 | 83 | value = get_byte_from_bits(tab_rp_status, i*8, nb_bits); |
| 76 | 84 | if (value != UT_COIL_STATUS_TAB[i]) { |
| 77 | - printf("Coil status: FAILED (%0X != %0X)\n", | |
| 85 | + printf("FAILED (%0X != %0X)\n", | |
| 78 | 86 | value, UT_COIL_STATUS_TAB[i]); |
| 79 | 87 | goto close; |
| 80 | 88 | } |
| ... | ... | @@ -82,12 +90,17 @@ int main(void) |
| 82 | 90 | nb_points -= nb_bits; |
| 83 | 91 | i++; |
| 84 | 92 | } |
| 85 | - printf("Coil status: OK\n"); | |
| 86 | - | |
| 93 | + printf("OK\n"); | |
| 87 | 94 | |
| 88 | 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 | 105 | i = 0; |
| 93 | 106 | address = UT_INPUT_STATUS_ADDRESS; |
| ... | ... | @@ -97,7 +110,7 @@ int main(void) |
| 97 | 110 | |
| 98 | 111 | value = get_byte_from_bits(tab_rp_status, i*8, nb_bits); |
| 99 | 112 | if (value != UT_INPUT_STATUS_TAB[i]) { |
| 100 | - printf("Input status: FAILED (%0X != %0X)\n", | |
| 113 | + printf("FAILED (%0X != %0X)\n", | |
| 101 | 114 | value, UT_INPUT_STATUS_TAB[i]); |
| 102 | 115 | goto close; |
| 103 | 116 | } |
| ... | ... | @@ -105,37 +118,83 @@ int main(void) |
| 105 | 118 | nb_points -= nb_bits; |
| 106 | 119 | i++; |
| 107 | 120 | } |
| 108 | - printf("Input status: OK\n"); | |
| 121 | + printf("OK\n"); | |
| 109 | 122 | |
| 110 | 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 | 132 | for (i=0; i < UT_HOLDING_REGISTERS_NB_POINTS; i++) { |
| 114 | 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 | 135 | tab_rp_registers[i], UT_HOLDING_REGISTERS_TAB[i]); |
| 117 | 136 | goto close; |
| 118 | 137 | } |
| 119 | 138 | } |
| 120 | - printf("Holding registers: OK\n"); | |
| 139 | + printf("OK\n"); | |
| 121 | 140 | |
| 122 | 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 | 150 | for (i=0; i < UT_INPUT_REGISTERS_NB_POINTS; i++) { |
| 126 | 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 | 153 | tab_rp_registers[i], UT_INPUT_REGISTERS_TAB[i]); |
| 129 | 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 | 198 | close: |
| 140 | 199 | /* Free the memory */ |
| 141 | 200 | free(tab_rp_status); | ... | ... |