| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include <gtest/gtest.h> |
| #include <wlan/mlme/device_caps.h> |
| |
| namespace wlan { |
| |
| TEST(FindBandByChannel, OneBands) { |
| constexpr wlan_info_t info = { |
| .bands = |
| { |
| { |
| .supported_channels = |
| { |
| .channels = {1, 2, 3}, |
| }, |
| }, |
| { |
| // Still fill out the second band with "garbage": |
| .supported_channels = |
| { |
| .channels = {4, 5, 6, 7}, |
| }, |
| }, |
| }, |
| .num_bands = 1, |
| }; |
| EXPECT_EQ(&info.bands[0], FindBandByChannel(info, 3)); |
| EXPECT_EQ(nullptr, FindBandByChannel(info, 4)); |
| EXPECT_EQ(nullptr, FindBandByChannel(info, 10)); |
| } |
| |
| TEST(FindBandByChannel, TwoBands) { |
| constexpr static wlan_info_t info = { |
| .bands = |
| { |
| { |
| .supported_channels = |
| { |
| .channels = {1, 2, 3}, |
| }, |
| }, |
| { |
| .supported_channels = |
| { |
| .channels = {4, 5, 6, 7}, |
| }, |
| }, |
| }, |
| .num_bands = 2, |
| }; |
| |
| EXPECT_EQ(&info.bands[0], FindBandByChannel(info, 3)); |
| EXPECT_EQ(&info.bands[1], FindBandByChannel(info, 4)); |
| EXPECT_EQ(nullptr, FindBandByChannel(info, 10)); |
| } |
| |
| TEST(GetRatesByChannel, SimpleTest) { |
| constexpr static wlan_info_t info = { |
| .bands = |
| { |
| { |
| .supported_channels = |
| { |
| .channels = {1, 2, 3}, |
| }, |
| .basic_rates = {10, 20, 30}, |
| }, |
| { |
| .supported_channels = |
| { |
| .channels = {4, 5, 6, 7}, |
| }, |
| .basic_rates = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120}, |
| }, |
| }, |
| .num_bands = 2, |
| }; |
| |
| auto rates = GetRatesByChannel(info, 2); |
| EXPECT_EQ(info.bands[0].basic_rates, rates.data()); |
| EXPECT_EQ(3u, rates.size()); |
| |
| rates = GetRatesByChannel(info, 5); |
| EXPECT_EQ(info.bands[1].basic_rates, rates.data()); |
| EXPECT_EQ(static_cast<size_t>(WLAN_BASIC_RATES_MAX_LEN), rates.size()); |
| |
| rates = GetRatesByChannel(info, 17); |
| EXPECT_EQ(nullptr, rates.data()); |
| EXPECT_EQ(0u, rates.size()); |
| } |
| |
| } // namespace wlan |