Home | History | Annotate | Download | only in network_WiFi_DarkResumeActiveScans
      1 # Copyright 2015 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 from autotest_lib.server import utils
      6 
      7 AUTHOR = 'samueltan, ejcaruso'
      8 NAME = 'network_WiFi_DarkResumeActiveScans'
      9 TIME = 'MEDIUM'
     10 TEST_TYPE = 'Server'
     11 DEPENDENCIES = 'wificell, servo, lucidsleep'
     12 ATTRIBUTES = 'suite:wifi_correctness_cros_core, suite:wifi_lucidsleep'
     13 SUITE = 'wifi_correctness_cros_core, wifi_lucidsleep'
     14 
     15 DOC = """
     16 When wake on WiFi is supported and enabled, our system could wake up from
     17 suspend in dark resume for several reasons. Due to privacy concerns, we do not
     18 want active scans to be launched on certain types of dark resume wakes where the
     19 user does not expect information that can uniquely identify their system
     20 (e.g. MAC addresses) to be broadcasted.
     21 
     22 We permit active scans to be launched when the system wakes up due to a SSID
     23 match or disconnect, since we might try to connect or reconnect to known
     24 networks during these periods, and the connection/authentication process
     25 inevitably broadcasts MAC addresses.
     26 
     27 However, when the system wakes up due to a RTC timer (e.g. the periodic scan
     28 timer or DHCP lease renewal timer) or a packet pattern match, we expect the
     29 system to carry out its tasks and re-suspend without active scanning and
     30 broadcasting MAC addresses.
     31 
     32 This test attempts to verify that no active scans are started in dark resumes
     33 that are triggered by RTC timers or packet pattern matches. Verify this by
     34 triggering these wake events and analyzing packet captures to ensure that the
     35 DUT does not launch any probe requests during these dark resumes.
     36 """
     37 
     38 args_dict = utils.args_to_dict(args)
     39 servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
     40 
     41 def run(machine):
     42     host = hosts.create_host(machine, servo_args=servo_args)
     43     job.run_test('network_WiFi_DarkResumeActiveScans',
     44                  host=host,
     45                  raw_cmdline_args=args)
     46 
     47 parallel_simple(run, machines)
     48