| /* |
| * Copyright (C) 2016, The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| #include <vector> |
| |
| #include "wificond/tests/offload_hal_test_constants.h" |
| #include "wificond/tests/offload_test_utils.h" |
| |
| using android::hardware::wifi::offload::V1_0::ScanResult; |
| using android::hardware::wifi::offload::V1_0::ScanStats; |
| using android::hardware::wifi::offload::V1_0::ScanRecord; |
| using android::hardware::wifi::offload::V1_0::OffloadStatus; |
| using android::hardware::wifi::offload::V1_0::OffloadStatusCode; |
| |
| using ::com::android::server::wifi::wificond::NativeScanResult; |
| using ::com::android::server::wifi::wificond::NativeScanStats; |
| |
| using namespace android::wificond::offload_hal_test_constants; |
| |
| namespace android { |
| namespace wificond { |
| |
| std::vector<ScanResult> OffloadTestUtils::createOffloadScanResults() { |
| std::vector<ScanResult> scanResults; |
| ScanResult scanResult; |
| std::vector<uint8_t> ssid(kSsid1, kSsid1 + kSsid1_size); |
| scanResult.tsf = kTsf; |
| scanResult.rssi = kRssi; |
| scanResult.frequency = kFrequency1; |
| scanResult.capability = kCapability; |
| memcpy(&scanResult.bssid[0], &kBssid[0], kBssidSize); |
| scanResult.networkInfo.ssid = ssid; |
| scanResult.networkInfo.flags = kNetworkFlags; |
| scanResults.push_back(scanResult); |
| return scanResults; |
| } |
| |
| ScanStats OffloadTestUtils::createScanStats(NativeScanStats* nativeScanStats) { |
| std::vector<ScanRecord> scan_records; |
| std::vector<uint8_t> histogram_channels; |
| uint32_t scan_duration_ms = 0; |
| uint32_t num_channels_scanned = 0; |
| ScanStats scan_stats; |
| int numEntriesInScanRecord = |
| sizeof(kNumChannelsScanned) / sizeof(kNumChannelsScanned[0]); |
| for (int i = 0; i < numEntriesInScanRecord; i++) { |
| ScanRecord scan_record; |
| scan_record.durationMs = kScanDurationMs[i]; |
| scan_duration_ms += kScanDurationMs[i]; |
| scan_record.numChannelsScanned = kNumChannelsScanned[i]; |
| num_channels_scanned += kNumChannelsScanned[i]; |
| scan_record.numEntriesAggregated = 1; |
| scan_records.push_back(scan_record); |
| } |
| scan_stats.scanRecord = scan_records; |
| scan_stats.numScansRequestedByWifi = kDefaultNumScansRequestedByWifi; |
| scan_stats.numScansServicedByWifi = kDefaultNumScansServicedByWifi; |
| scan_stats.subscriptionDurationMs = kSubscriptionDurationMs; |
| uint32_t skip_tmp = 256 / num_channels_scanned; |
| for (size_t i = 0; i < 256; i++) { |
| if (i % skip_tmp == 0) { |
| scan_stats.histogramChannelsScanned[i] = |
| kDefaultNumTimesAChannelsIsScanned; |
| histogram_channels.push_back(kDefaultNumTimesAChannelsIsScanned); |
| } else { |
| scan_stats.histogramChannelsScanned[i] = kChannelNotScanned; |
| histogram_channels.push_back(kChannelNotScanned); |
| } |
| } |
| NativeScanStats native_scan_stats(kDefaultNumScansRequestedByWifi, |
| kDefaultNumScansServicedByWifi, |
| kSubscriptionDurationMs, scan_duration_ms, |
| num_channels_scanned, histogram_channels); |
| *nativeScanStats = native_scan_stats; |
| return scan_stats; |
| } |
| |
| OffloadStatus OffloadTestUtils::createOffloadStatus(OffloadStatusCode code) { |
| return createOffloadStatus(code, ""); |
| } |
| |
| OffloadStatus OffloadTestUtils::createOffloadStatus(OffloadStatusCode code, |
| const std::string& desc) { |
| return {code, desc}; |
| } |
| |
| } // namespace wificond |
| } // namespace android |