Home | History | Annotate | Download | only in tests
      1 /*
      2  * Copyright (C) 2016, The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *     http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 #include <vector>
     18 
     19 #include "wificond/tests/offload_hal_test_constants.h"
     20 #include "wificond/tests/offload_test_utils.h"
     21 
     22 using android::hardware::wifi::offload::V1_0::ScanResult;
     23 using android::hardware::wifi::offload::V1_0::ScanStats;
     24 using android::hardware::wifi::offload::V1_0::ScanRecord;
     25 using android::hardware::wifi::offload::V1_0::OffloadStatus;
     26 using android::hardware::wifi::offload::V1_0::OffloadStatusCode;
     27 
     28 using ::com::android::server::wifi::wificond::NativeScanResult;
     29 using ::com::android::server::wifi::wificond::NativeScanStats;
     30 
     31 using namespace android::wificond::offload_hal_test_constants;
     32 
     33 namespace android {
     34 namespace wificond {
     35 
     36 std::vector<ScanResult> OffloadTestUtils::createOffloadScanResults() {
     37   std::vector<ScanResult> scanResults;
     38   ScanResult scanResult;
     39   std::vector<uint8_t> ssid(kSsid1, kSsid1 + kSsid1_size);
     40   scanResult.tsf = kTsf;
     41   scanResult.rssi = kRssi;
     42   scanResult.frequency = kFrequency1;
     43   scanResult.capability = kCapability;
     44   memcpy(&scanResult.bssid[0], &kBssid[0], kBssidSize);
     45   scanResult.networkInfo.ssid = ssid;
     46   scanResult.networkInfo.flags = kNetworkFlags;
     47   scanResults.push_back(scanResult);
     48   return scanResults;
     49 }
     50 
     51 ScanStats OffloadTestUtils::createScanStats(NativeScanStats* nativeScanStats) {
     52   std::vector<ScanRecord> scan_records;
     53   std::vector<uint8_t> histogram_channels;
     54   uint32_t scan_duration_ms = 0;
     55   uint32_t num_channels_scanned = 0;
     56   ScanStats scan_stats;
     57   int numEntriesInScanRecord =
     58       sizeof(kNumChannelsScanned) / sizeof(kNumChannelsScanned[0]);
     59   for (int i = 0; i < numEntriesInScanRecord; i++) {
     60     ScanRecord scan_record;
     61     scan_record.durationMs = kScanDurationMs[i];
     62     scan_duration_ms += kScanDurationMs[i];
     63     scan_record.numChannelsScanned = kNumChannelsScanned[i];
     64     num_channels_scanned += kNumChannelsScanned[i];
     65     scan_record.numEntriesAggregated = 1;
     66     scan_records.push_back(scan_record);
     67   }
     68   scan_stats.scanRecord = scan_records;
     69   scan_stats.numScansRequestedByWifi = kDefaultNumScansRequestedByWifi;
     70   scan_stats.numScansServicedByWifi = kDefaultNumScansServicedByWifi;
     71   scan_stats.subscriptionDurationMs = kSubscriptionDurationMs;
     72   uint32_t skip_tmp = 256 / num_channels_scanned;
     73   for (size_t i = 0; i < 256; i++) {
     74     if (i % skip_tmp == 0) {
     75       scan_stats.histogramChannelsScanned[i] =
     76           kDefaultNumTimesAChannelsIsScanned;
     77       histogram_channels.push_back(kDefaultNumTimesAChannelsIsScanned);
     78     } else {
     79       scan_stats.histogramChannelsScanned[i] = kChannelNotScanned;
     80       histogram_channels.push_back(kChannelNotScanned);
     81     }
     82   }
     83   NativeScanStats native_scan_stats(kDefaultNumScansRequestedByWifi,
     84                                     kDefaultNumScansServicedByWifi,
     85                                     kSubscriptionDurationMs, scan_duration_ms,
     86                                     num_channels_scanned, histogram_channels);
     87   *nativeScanStats = native_scan_stats;
     88   return scan_stats;
     89 }
     90 
     91 OffloadStatus OffloadTestUtils::createOffloadStatus(OffloadStatusCode code) {
     92   return createOffloadStatus(code, "");
     93 }
     94 
     95 OffloadStatus OffloadTestUtils::createOffloadStatus(OffloadStatusCode code,
     96                                                     const std::string& desc) {
     97   return {code, desc};
     98 }
     99 
    100 }  // namespace wificond
    101 }  // namespace android
    102