From 786b93ffc42e254ee783e9da277b671834940e8d Mon Sep 17 00:00:00 2001 From: Andrew Zaborowski Date: Fri, 22 Sep 2017 05:06:35 +0200 Subject: [PATCH] unit: Add Extended Element ID tests in test-ie --- unit/test-ie.c | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/unit/test-ie.c b/unit/test-ie.c index e5f3de18..06db50ea 100644 --- a/unit/test-ie.c +++ b/unit/test-ie.c @@ -258,7 +258,7 @@ static void ie_test_writer_invalid_tag(const void *data) struct ie_tlv_builder builder; assert(ie_tlv_builder_init(&builder)); - assert(!ie_tlv_builder_next(&builder, 256)); + assert(!ie_tlv_builder_next(&builder, 512)); } static void ie_test_writer_invalid_len(const void *data) @@ -270,6 +270,45 @@ static void ie_test_writer_invalid_len(const void *data) assert(!ie_tlv_builder_set_length(&builder, MAX_BUILDER_SIZE)); } +static void ie_test_reader_extended(const void *data) +{ + struct ie_tlv_iter iter; + static const uint8_t test_buf[] = { + 0xff, 0x05, 0x0a, 0xff, 0x01, 0x02, 0x03, + }; + + ie_tlv_iter_init(&iter, test_buf, L_ARRAY_SIZE(test_buf)); + + assert(ie_tlv_iter_next(&iter)); + + assert(ie_tlv_iter_get_tag(&iter) == IE_TYPE_EXTENDED_REQUEST); + assert(ie_tlv_iter_get_length(&iter) == 4); + assert(ie_tlv_iter_get_data(&iter) == test_buf + 3); + + assert(!ie_tlv_iter_next(&iter)); +} + +static void ie_test_writer_extended(const void *data) +{ + struct ie_tlv_builder builder; + unsigned int builder_len; + static const uint8_t expected[] = { + 0xff, 0x05, 0x0a, 0xff, 0x01, 0x02, 0x03, + }; + + assert(ie_tlv_builder_init(&builder)); + + assert(ie_tlv_builder_next(&builder, IE_TYPE_EXTENDED_REQUEST)); + assert(ie_tlv_builder_set_length(&builder, 4)); + + memcpy(ie_tlv_builder_get_data(&builder), expected + 3, 4); + + ie_tlv_builder_finalize(&builder, &builder_len); + + assert(builder_len == L_ARRAY_SIZE(expected)); + assert(!memcmp(builder.buf, expected, builder_len)); +} + struct ie_rsne_info_test { const unsigned char *data; size_t data_len; @@ -664,6 +703,9 @@ int main(int argc, char *argv[]) l_test_add("/ie/writer/create", ie_test_writer, &beacon_frame_data); + l_test_add("/ie/reader/extended", ie_test_reader_extended, NULL); + l_test_add("/ie/writer/extended", ie_test_writer_extended, NULL); + l_test_add("/ie/RSN Info Parser/Test Case 1", ie_test_rsne_info, &ie_rsne_info_test_1); l_test_add("/ie/RSN Info Parser/Test Case 2",