Skip to content

Commit 568a8e5

Browse files
improging decode unit testing by means of REQUIRE_THAT
1 parent 79df7a6 commit 568a8e5

File tree

1 file changed

+29
-81
lines changed

1 file changed

+29
-81
lines changed

extras/test/src/test_command_decode.cpp

+29-81
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
******************************************************************************/
88

99
#include <catch2/catch_test_macros.hpp>
10+
#include <catch2/matchers/catch_matchers_vector.hpp>
11+
1012
#include <string.h>
1113

1214
#include <memory>
@@ -174,20 +176,15 @@ SCENARIO("Test the decoding of command messages") {
174176

175177
THEN("The decode is successful") {
176178
REQUIRE(err == MessageDecoder::Status::Complete);
177-
REQUIRE(command.lastValuesUpdateCmd.params.length == 13);
178-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[0] == (uint8_t)0x00);
179-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[1] == (uint8_t)0x01);
180-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[2] == (uint8_t)0x02);
181-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[3] == (uint8_t)0x03);
182-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[4] == (uint8_t)0x04);
183-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[5] == (uint8_t)0x05);
184-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[6] == (uint8_t)0x06);
185-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[7] == (uint8_t)0x07);
186-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[8] == (uint8_t)0x08);
187-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[9] == (uint8_t)0x09);
188-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[10] == (uint8_t)0x10);
189-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[11] == (uint8_t)0x11);
190-
REQUIRE(command.lastValuesUpdateCmd.params.last_values[12] == (uint8_t)0x12);
179+
180+
std::vector<int> last_values(command.lastValuesUpdateCmd.params.last_values,
181+
command.lastValuesUpdateCmd.params.last_values+13);
182+
183+
REQUIRE_THAT(last_values,
184+
Catch::Matchers::Equals(std::vector<int>{
185+
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, 0x11, 0x12,
186+
}));
187+
191188
REQUIRE(command.c.id == LastValuesUpdateCmdId);
192189
}
193190
free(command.lastValuesUpdateCmd.params.last_values);
@@ -260,73 +257,24 @@ SCENARIO("Test the decoding of command messages") {
260257
REQUIRE(err == MessageDecoder::Status::Complete);
261258
REQUIRE(memcmp(command.otaUpdateCmdDown.params.id, otaIdToMatch, ID_SIZE) == 0);
262259
REQUIRE(strcmp(command.otaUpdateCmdDown.params.url, urlToMatch) == 0);
263-
// Initial SHA256 check
264-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[0] == (uint8_t)0x00);
265-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[1] == (uint8_t)0x00);
266-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[2] == (uint8_t)0x00);
267-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[3] == (uint8_t)0x00);
268-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[4] == (uint8_t)0x00);
269-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[5] == (uint8_t)0x00);
270-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[6] == (uint8_t)0x00);
271-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[7] == (uint8_t)0x00);
272-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[8] == (uint8_t)0x00);
273-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[9] == (uint8_t)0x00);
274-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[10] == (uint8_t)0x00);
275-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[11] == (uint8_t)0x00);
276-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[12] == (uint8_t)0x00);
277-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[13] == (uint8_t)0x00);
278-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[14] == (uint8_t)0x00);
279-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[15] == (uint8_t)0x00);
280-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[16] == (uint8_t)0x00);
281-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[17] == (uint8_t)0x00);
282-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[18] == (uint8_t)0x00);
283-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[19] == (uint8_t)0x00);
284-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[20] == (uint8_t)0x00);
285-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[21] == (uint8_t)0x00);
286-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[22] == (uint8_t)0x00);
287-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[23] == (uint8_t)0x00);
288-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[24] == (uint8_t)0x00);
289-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[25] == (uint8_t)0x00);
290-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[26] == (uint8_t)0x00);
291-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[27] == (uint8_t)0x00);
292-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[28] == (uint8_t)0x00);
293-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[29] == (uint8_t)0x00);
294-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[30] == (uint8_t)0x00);
295-
REQUIRE(command.otaUpdateCmdDown.params.initialSha256[31] == (uint8_t)0x00);
296-
297-
// Final SHA256 check
298-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[0] == (uint8_t)0xdf);
299-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[1] == (uint8_t)0x1e);
300-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[2] == (uint8_t)0xac);
301-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[3] == (uint8_t)0x9c);
302-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[4] == (uint8_t)0x7b);
303-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[5] == (uint8_t)0xd6);
304-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[6] == (uint8_t)0x34);
305-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[7] == (uint8_t)0x73);
306-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[8] == (uint8_t)0xff);
307-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[9] == (uint8_t)0xfb);
308-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[10] == (uint8_t)0x11);
309-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[11] == (uint8_t)0x7f);
310-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[12] == (uint8_t)0x98);
311-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[13] == (uint8_t)0x73);
312-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[14] == (uint8_t)0x70);
313-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[15] == (uint8_t)0x3e);
314-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[16] == (uint8_t)0x4e);
315-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[17] == (uint8_t)0xc9);
316-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[18] == (uint8_t)0x55);
317-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[19] == (uint8_t)0x93);
318-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[20] == (uint8_t)0x1e);
319-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[21] == (uint8_t)0x26);
320-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[22] == (uint8_t)0x7f);
321-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[23] == (uint8_t)0x26);
322-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[24] == (uint8_t)0x26);
323-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[25] == (uint8_t)0x2b);
324-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[26] == (uint8_t)0x09);
325-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[27] == (uint8_t)0x49);
326-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[28] == (uint8_t)0xbc);
327-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[29] == (uint8_t)0x16);
328-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[30] == (uint8_t)0xdc);
329-
REQUIRE(command.otaUpdateCmdDown.params.finalSha256[31] == (uint8_t)0x49);
260+
261+
std::vector<int> initialSha256(command.otaUpdateCmdDown.params.initialSha256,
262+
command.otaUpdateCmdDown.params.initialSha256+32);
263+
264+
REQUIRE_THAT(initialSha256,
265+
Catch::Matchers::Equals(std::vector<int>{
266+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
267+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
268+
}));
269+
270+
std::vector<int> finalSha256(command.otaUpdateCmdDown.params.finalSha256,
271+
command.otaUpdateCmdDown.params.finalSha256+32);
272+
273+
REQUIRE_THAT(finalSha256,
274+
Catch::Matchers::Equals(std::vector<int>{
275+
0xdf, 0x1e, 0xac, 0x9c, 0x7b, 0xd6, 0x34, 0x73, 0xff, 0xfb, 0x11, 0x7f, 0x98, 0x73, 0x70, 0x3e,
276+
0x4e, 0xc9, 0x55, 0x93, 0x1e, 0x26, 0x7f, 0x26, 0x26, 0x2b, 0x09, 0x49, 0xbc, 0x16, 0xdc, 0x49
277+
}));
330278

331279
REQUIRE(command.c.id == OtaUpdateCmdDownId);
332280
}

0 commit comments

Comments
 (0)