about summary refs log tree commit diff stats
path: root/test/src/timing_ad_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/timing_ad_tests.c')
-rw-r--r--test/src/timing_ad_tests.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/src/timing_ad_tests.c b/test/src/timing_ad_tests.c new file mode 100644 index 0000000..59d20eb --- /dev/null +++ b/test/src/timing_ad_tests.c
@@ -0,0 +1,57 @@
1#include "../../src/libwifi.h"
2
3#include <errno.h>
4#include <stdio.h>
5#include <string.h>
6
7#define BCAST_MAC "\xff\xff\xff\xff\xff\xff"
8#define TO_MAC "\x00\x20\x91\xAA\xBB\xCC"
9const unsigned char to[] = TO_MAC;
10const unsigned char bcast[] = BCAST_MAC;
11
12int test_timing_ad_gen_full() {
13 struct libwifi_timing_advert time_ad = {0};
14 struct libwifi_timing_advert_fields ad_fields = {0};
15
16 ad_fields.timing_capabilities = 2;
17 memcpy(ad_fields.time_error, "\xCC\xCC\xCC\xCC\xCC", 5);
18 memcpy(ad_fields.time_update, "\xBB", 1);
19 memcpy(ad_fields.time_value,
20 "\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA\xAA", 10);
21
22 int ret = libwifi_create_timing_advert(&time_ad, to, to, &ad_fields, "GB", -56, -56, -30, -20);
23 if (ret != 0) {
24 fprintf(stderr, "Failed to create timing advert\n");
25 return ret;
26 }
27
28 unsigned char *buf = NULL;
29 size_t buf_len = libwifi_get_timing_advert_length(&time_ad);
30 buf = malloc(buf_len);
31 if (buf == NULL) {
32 fprintf(stderr, "Failed to create buffer\n");
33 return -1;
34 }
35 printf("buf_len: %zu\n", buf_len);
36
37 ret = libwifi_dump_timing_advert(&time_ad, buf, buf_len);
38 if (ret < 0) {
39 fprintf(stderr, "Failed to dump advert");
40 return ret;
41 }
42
43 return 0;
44}
45
46int main(int argc, char **argv) {
47 if (argc < 2) {
48 printf("Specify test\n");
49 return -1;
50 }
51
52 if (strcmp(argv[1], "--timing_ad-gen-full") == 0) {
53 return test_timing_ad_gen_full();
54 }
55
56 return -1;
57}