You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
3.8 KiB
101 lines
3.8 KiB
/* |
|
* 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
|
|
|