101 lines
3.8 KiB
C++
101 lines
3.8 KiB
C++
/*
|
|
* 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
|