Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: NerfUS-Coord NerfUSTarget
Fork of APP3_xbee by
test.cpp@1:8a0e05ec166c, 2017-02-11 (annotated)
- Committer:
 - dupm2216
 - Date:
 - Sat Feb 11 20:53:30 2017 +0000
 - Revision:
 - 1:8a0e05ec166c
 - Parent:
 - 0:8f5379c94a69
 - Child:
 - 2:5d437f1b1548
 
Test make it fail
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| dupm2216 | 0:8f5379c94a69 | 1 | #include <cassert> | 
| dupm2216 | 0:8f5379c94a69 | 2 | #include <algorithm> | 
| dupm2216 | 0:8f5379c94a69 | 3 | #include "test.h" | 
| dupm2216 | 0:8f5379c94a69 | 4 | #include "xbee.h" | 
| dupm2216 | 0:8f5379c94a69 | 5 | |
| dupm2216 | 0:8f5379c94a69 | 6 | void run_all_tests() | 
| dupm2216 | 0:8f5379c94a69 | 7 | { | 
| dupm2216 | 0:8f5379c94a69 | 8 | assert_vector_equal_test(); | 
| dupm2216 | 0:8f5379c94a69 | 9 | generate_transmit_request_test(); | 
| dupm2216 | 0:8f5379c94a69 | 10 | parse_receive_packet_test(); | 
| dupm2216 | 0:8f5379c94a69 | 11 | } | 
| dupm2216 | 0:8f5379c94a69 | 12 | |
| dupm2216 | 0:8f5379c94a69 | 13 | void assert_vector_equal_test() | 
| dupm2216 | 0:8f5379c94a69 | 14 | { | 
| dupm2216 | 0:8f5379c94a69 | 15 | vector<char> v1; | 
| dupm2216 | 0:8f5379c94a69 | 16 | v1.push_back(1); | 
| dupm2216 | 0:8f5379c94a69 | 17 | v1.push_back(2); | 
| dupm2216 | 0:8f5379c94a69 | 18 | |
| dupm2216 | 0:8f5379c94a69 | 19 | vector<char> v2; | 
| dupm2216 | 0:8f5379c94a69 | 20 | v2.push_back(1); | 
| dupm2216 | 0:8f5379c94a69 | 21 | v2.push_back(2); | 
| dupm2216 | 0:8f5379c94a69 | 22 | |
| dupm2216 | 0:8f5379c94a69 | 23 | assert_vector_equal(v1, v2); | 
| dupm2216 | 0:8f5379c94a69 | 24 | } | 
| dupm2216 | 0:8f5379c94a69 | 25 | |
| dupm2216 | 0:8f5379c94a69 | 26 | void assert_vector_equal(const vector<char> v1, const vector<char> v2) | 
| dupm2216 | 0:8f5379c94a69 | 27 | { | 
| dupm2216 | 0:8f5379c94a69 | 28 | assert(v1.size() == v2.size()); | 
| dupm2216 | 0:8f5379c94a69 | 29 | |
| dupm2216 | 0:8f5379c94a69 | 30 | const bool all_elements_are_equal = equal(v1.begin(), v1.end(), v2.begin()); | 
| dupm2216 | 0:8f5379c94a69 | 31 | assert(all_elements_are_equal); | 
| dupm2216 | 0:8f5379c94a69 | 32 | } | 
| dupm2216 | 0:8f5379c94a69 | 33 | |
| dupm2216 | 0:8f5379c94a69 | 34 | vector<char> construct_vector(const char* content, int length) | 
| dupm2216 | 0:8f5379c94a69 | 35 | { | 
| dupm2216 | 0:8f5379c94a69 | 36 | vector<char> constructed_vector; | 
| dupm2216 | 0:8f5379c94a69 | 37 | for(int i = 0; i < length; ++i) | 
| dupm2216 | 0:8f5379c94a69 | 38 | { | 
| dupm2216 | 0:8f5379c94a69 | 39 | constructed_vector.push_back(content[i]); | 
| dupm2216 | 0:8f5379c94a69 | 40 | } | 
| dupm2216 | 0:8f5379c94a69 | 41 | return constructed_vector; | 
| dupm2216 | 0:8f5379c94a69 | 42 | } | 
| dupm2216 | 0:8f5379c94a69 | 43 | |
| dupm2216 | 0:8f5379c94a69 | 44 | void generate_transmit_request_test() | 
| dupm2216 | 0:8f5379c94a69 | 45 | { | 
| dupm2216 | 0:8f5379c94a69 | 46 | const char expected_array[] = {0x7E, 0x00, 0x12, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFE, 0x00, 0x00, 0x54, 0x65, 0x73, 0x74, 0x51}; | 
| dupm2216 | 0:8f5379c94a69 | 47 | vector<char> expected_request = construct_vector(expected_array, 22); | 
| dupm2216 | 0:8f5379c94a69 | 48 | |
| dupm2216 | 1:8a0e05ec166c | 49 | vector<char> actual_request = generate_transmit_request("FUCK", 4); | 
| dupm2216 | 0:8f5379c94a69 | 50 | |
| dupm2216 | 0:8f5379c94a69 | 51 | assert_vector_equal(actual_request, expected_request); | 
| dupm2216 | 0:8f5379c94a69 | 52 | } | 
| dupm2216 | 0:8f5379c94a69 | 53 | |
| dupm2216 | 0:8f5379c94a69 | 54 | void parse_receive_packet_test() | 
| dupm2216 | 0:8f5379c94a69 | 55 | { | 
| dupm2216 | 0:8f5379c94a69 | 56 | const char receive_packet_array[] = {0x7E, 0x00, 0x10, 0x90, 0x00, 0x13, 0xA2, 0x00, 0x40, 0x86, 0xDA, 0x0E, 0x90, 0x1D, 0x01, 0x54, 0x65, 0x73, 0x74, 0xBE}; | 
| dupm2216 | 0:8f5379c94a69 | 57 | vector<char> receive_packet = construct_vector(receive_packet_array, 20); | 
| dupm2216 | 0:8f5379c94a69 | 58 | |
| dupm2216 | 0:8f5379c94a69 | 59 | const char expected_message_array[] = {0x54, 0x65, 0x73, 0x74}; | 
| dupm2216 | 0:8f5379c94a69 | 60 | vector<char> expected_message = construct_vector(expected_message_array, 4); | 
| dupm2216 | 0:8f5379c94a69 | 61 | |
| dupm2216 | 0:8f5379c94a69 | 62 | vector<char> actual_message = parse_receive_packet(receive_packet); | 
| dupm2216 | 0:8f5379c94a69 | 63 | |
| dupm2216 | 0:8f5379c94a69 | 64 | assert_vector_equal(actual_message, expected_message); | 
| dupm2216 | 0:8f5379c94a69 | 65 | } | 
