Oliver Smith | 871713b | 2018-12-10 17:10:36 +0100 | [diff] [blame^] | 1 | #include <assert.h> |
| 2 | #include <lime/LimeSuite.h> |
| 3 | #include <string> |
| 4 | |
| 5 | extern "C" |
| 6 | { |
| 7 | size_t osmo_strlcpy(char *dst, const char *src, size_t siz); |
| 8 | } |
| 9 | |
| 10 | int info_list_find(lms_info_str_t* info_list, unsigned int count, const std::string &args); |
| 11 | |
| 12 | using namespace std; |
| 13 | |
| 14 | int main(void) |
| 15 | { |
| 16 | unsigned int count; |
| 17 | lms_info_str_t* info_list; |
| 18 | std::string args; |
| 19 | |
| 20 | /* two fake entries for info_list */ |
| 21 | count = 2; |
| 22 | info_list = new lms_info_str_t[count]; |
| 23 | osmo_strlcpy(info_list[0], "LimeSDR Mini, addr=24607:1337, serial=FAKESERIAL0001", sizeof(lms_info_str_t)); |
| 24 | osmo_strlcpy(info_list[1], "LimeSDR Mini, addr=24607:1338, serial=FAKESERIAL0002", sizeof(lms_info_str_t)); |
| 25 | |
| 26 | /* find second entry by args filter */ |
| 27 | args = "serial=FAKESERIAL0002,LimeSDR Mini"; |
| 28 | assert(info_list_find(info_list, count, args) == 1); |
| 29 | |
| 30 | /* empty args -> first entry */ |
| 31 | args = ""; |
| 32 | assert(info_list_find(info_list, count, args) == 0); |
| 33 | |
| 34 | /* not matching args -> -1 */ |
| 35 | args = "serial=NOTMATCHING"; |
| 36 | assert(info_list_find(info_list, count, args) == -1); |
| 37 | |
| 38 | /* clean up */ |
| 39 | delete[] info_list; |
| 40 | return 0; |
| 41 | } |