diff --git a/.gitignore b/.gitignore index c3e857d..029341d 100644 --- a/.gitignore +++ b/.gitignore
@@ -81,6 +81,7 @@ # antlion configuration files /*.json /*.yaml +/config/ # antlion runtime files /logs
diff --git a/CHANGELOG.md b/CHANGELOG.md index 54f6914..a9c7f67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -10,9 +10,61 @@ ## [Unreleased] -Nothing yet! +### Added -[unreleased]: https://fuchsia.googlesource.com/antlion/+/refs/tags/v0.1.0..refs/heads/main +### Changed + +### Removed + +### Fixed + +[unreleased]: https://fuchsia.googlesource.com/antlion/+/refs/tags/v0.2.0..refs/heads/main + +## [0.2.0] - 2022-01-03 + +### Added + +- Download radvd logs from AP for debugging IPv6 address allocation +- Optional `wlan_features` config field to `FuchsiaDevice` for declaring which +WLAN features the device supports, such as BSS Transition Management + +### Changed + +- All path config options in `FuchsiaDevice` expand the home directory (`~`) and +environmental variables + - Used by `ssh_priv_key`, `authorized_file_loc`, and `ffx_binary_path` for + sensible defaults using `$FUCHSIA_DIR` +- Running tests works out of the box without specifying `--testpaths` + - Moved `tests` and `unit_tests` to the `antlion` package, enabling + straight-forward packaging of tests. + - Merged `antlion` and `antlion_contrib` packages +- Converted several required dependencies to optional dependencies: + - `bokeh` is only needed for producing HTML graphing. If this feature is + desired, install antlion with the bokeh option: `pip install ".[bokeh]"` + - `usbinfo` and `psutil` are not needed when a static IP address is assigned + to the Fuchsia DUT. If assigning a static IP address is not an optional, + install antlion with the mdns option: `pip install ".[mdns]"` + +### Removed + +- [BREAKING CHANGE] Dependencies for Python versions older than 3.8. Please +upgrade your system to a newer version of Python to run antlion tests. +- `ssh_config` from `FuchsiaDevice` config. SSH configs are generated to provide +a reproducible connection method and ease initial setup. + +### Fixed + +- Failure to acquire IPv6 address in `WlanRebootTest` ([bug](http://b/256009189)) +- Typo in `ChannelSweepTest` preventing use of iPerf ([@patricklu]) +- "Country code never updated" error affecting all Fuchsia ToT builds +([@karlward], [bug](https://fxbug.dev/116500)) +- Parsing new stderr format from `ffx component destroy` ([@karlward], +[bug](https://fxbug.dev/116544)) +- "Socket operation on non-socket" error during initialization of ffx on MacOS +([@karlward], [bug](https://fxbug.dev/116626)) +- Python 3.8 support for IPv6 scope IDs ([bug](http://b/261746355)) + +[0.2.0]: https://fuchsia.googlesource.com/antlion/+/refs/tags/v0.1.0..refs/tags/v0.2.0 ## [0.1.0] - 2022-11-28 @@ -50,3 +102,5 @@ [src-layout]: https://setuptools.pypa.io/en/latest/userguide/package_discovery.html#src-layout [@sakuma]: https://fuchsia-review.git.corp.google.com/q/owner:sakuma%2540google.com +[@patricklu]: https://fuchsia-review.git.corp.google.com/q/owner:patricklu%2540google.com +[@karlward]: https://fuchsia-review.git.corp.google.com/q/owner:karlward%2540google.com
diff --git a/MANIFEST.in b/MANIFEST.in index 8918387..a8ad1bb 100644 --- a/MANIFEST.in +++ b/MANIFEST.in
@@ -1,6 +1,4 @@ include setup.py README.md recursive-include src/antlion * -recursive-include src/antlion_contrib * -recursive-include tests * global-exclude .DS_Store global-exclude *.pyc
diff --git a/README.md b/README.md index 374b5fa..be529cf 100644 --- a/README.md +++ b/README.md
@@ -21,31 +21,29 @@ git clone https://fuchsia.googlesource.com/antlion ``` -2. Install dependencies +2. Install dependencies using [venv](https://docs.python.org/3/library/venv.html#how-venvs-work) ```sh cd antlion - python3 -m venv .venv - source .venv/bin/activate - pip install --editable .[dev] # development mode + python3 -m venv .venv # creates a "virtual environment" in the `.venv` directory + source .venv/bin/activate # activates the virtual environment. Run `deactivate` to exit it later + pip install --editable ".[dev,test]" ``` 3. Write the sample config and update the Fuchsia controller to match your development environment ```sh - cat <<EOF > config.json + mkdir -p config + cat <<EOF > config/simple.json { "testbed": [{ "name": "simple_testbed", "FuchsiaDevice": [{ - "ip": "fuchsia-00e0-4c01-04df", - "ssh_config": "/home/fuchsia/out/default/ssh-keys/ssh_config", - "ffx_binary_path": "/home/fuchsia/out/default/host_x64/ffx" + "ip": "fuchsia-00e0-4c01-04df" }] }], - "logpath": "logs", - "testpaths": [ "tests" ] + "logpath": "logs" } EOF ``` @@ -53,7 +51,7 @@ 4. Run the sanity test ```sh - antlion -c config.json -tc Sl4fSanityTest + antlion -c config/simple.json -tc Sl4fSanityTest ``` See `antlion -h` for more full usage. @@ -67,8 +65,9 @@ request. 1. Create a feature branch (`git checkout -b feature/amazing-feature`) -2. Commit changes (`git commit -m 'Add some amazing feature'`) -3. Upload CL (`git push origin HEAD:refs/for/main`) +2. Document your change in `CHANGELOG.md` +3. Commit changes (`git commit -m 'Add some amazing feature'`) +4. Upload CL (`git push origin HEAD:refs/for/main`) > A public bug tracker is not (yet) available.
diff --git a/pyproject.toml b/pyproject.toml index bb12e16..c0fa915 100644 --- a/pyproject.toml +++ b/pyproject.toml
@@ -1,32 +1,23 @@ # Reference at https://peps.python.org/pep-0621/ [build-system] -requires = ["setuptools"] +requires = ["setuptools", "setuptools-scm[toml]"] build-backend = "setuptools.build_meta" [project] name = "antlion" -version = "0.1" -description = "Android Comms Test Suite" -readme = "README.md" +description = "Host-driven, hardware-agnostic Fuchsia connectivity tests" requires-python = ">=3.8" license = {text = "Apache-2.0"} +dynamic = ["version"] +readme = "README.md" dependencies = [ - "backoff", - "future>=0.16.0", # Future needs to have a newer version that contains urllib. "mobly==1.12.0", "pyyaml>=5.1", - "retry", + "tenacity~=8.0", ] [project.optional-dependencies] -# Required for running unit tests -test = [ - # Latest version of mock (4.0.0b) causes a number of compatibility issues with ACTS unit tests - # b/148695846, b/148814743 - "mock==3.0.5", - "pytest", -] # Required to support development tools dev = [ "shiv", # packaging python @@ -34,47 +25,20 @@ "vulture", # finds unused code "yapf", # code formatting ] -digital_loggers_pdu = ['dlipower'] -bluetooth = ['soundfile'] -bokeh = [ - 'bokeh; python_version>="3.8"', - 'bokeh<2.5; python_version>="3.7" and python_version<"3.8"', - 'bokeh<2.4; python_version>="3.6" and python_version<"3.7"', - 'bokeh<1.5; python_version>="3" and python_version<"3.6"', -] +digital_loggers_pdu = ["dlipower"] +bluetooth = ["soundfile"] +html_graphing = ["bokeh"] +flash = ["usbinfo"] +mdns = ["psutil", "zeroconf"] android = [ - "requests", "Monsoon", + "numpy", "paramiko[ed25519]", "pylibftdi", "pyserial", + "requests", "scapy", - - 'scipy; python_version>="3.8"', - 'scipy<1.8; python_version>="3.7" and python_version<"3.8"', - 'scipy<1.6; python_version>="3.6" and python_version<"3.7"', - 'scipy<1.5; python_version>="3" and python_version<"3.6"', - - 'numpy; python_version>="3.8"', - 'numpy<1.22; python_version>="3.7" and python_version<"3.8"', - 'numpy<1.20; python_version>="3.6" and python_version<"3.7"', - 'numpy<1.19; python_version>="3" and python_version<"3.6"', -] -fuchsia = [ - "usbinfo", # flash - "zeroconf", # mdns -] -old_python = [ - 'typing_extensions==4.1.1; python_version>="3.6" and python_version<"3.7"', - 'typing_extensions<4.0.0; python_version>="3" and python_version<"3.6"', - - 'dataclasses==0.8; python_version=="3.6"', - - 'enum34; python_version<"3"', - 'statistics; python_version<"3"', - 'futures; python_version<"3"', - 'py2-ipaddress; python_version<"3"', - 'subprocess32; python_version<"3"', + "scipy", ] [project.scripts] @@ -85,27 +49,25 @@ [tool.autoflake] imports = [ - "antlion", - "backoff", - "dataclasses", - "numpy", - "protobuf", - "scipy", "Monsoon", + "antlion", + "dataclasses", "dlipower", - "future", "mobly", "mock", + "numpy", "paramiko", + "protobuf", "pylibftdi", "requests", - "retry", "scapy", + "scipy", + "tenacity", "usbinfo", "zeroconf", ] [tools.vulture] -paths = ["src", "tests"] +paths = ["src"] sort_by_size = true min_confidence = 80
diff --git a/setup.py b/setup.py index db0526f..30f198d 100644 --- a/setup.py +++ b/setup.py
@@ -17,52 +17,36 @@ from setuptools import setup, find_packages install_requires = [ - "backoff", - "future>=0.16.0", # Future needs to have a newer version that contains urllib. "mobly==1.12.0", "pyyaml>=5.1", - "retry", - - 'bokeh; python_version>="3.8"', - 'bokeh<2.5; python_version>="3.7" and python_version<"3.8"', - 'bokeh<2.4; python_version>="3.6" and python_version<"3.7"', - 'bokeh<1.5; python_version>="3" and python_version<"3.6"', - - # Android - "requests", - "Monsoon", - "paramiko[ed25519]", - "pylibftdi", - "pyserial", - "scapy", - - 'scipy; python_version>="3.8"', - 'scipy<1.8; python_version>="3.7" and python_version<"3.8"', - 'scipy<1.6; python_version>="3.6" and python_version<"3.7"', - 'scipy<1.5; python_version>="3" and python_version<"3.6"', - - 'numpy; python_version>="3.8"', - 'numpy<1.22; python_version>="3.7" and python_version<"3.8"', - 'numpy<1.20; python_version>="3.6" and python_version<"3.7"', - 'numpy<1.19; python_version>="3" and python_version<"3.6"', - - # Fuchsia - "usbinfo", # flash - "zeroconf", # mdns + "tenacity~=8.0", ] setup(name='antlion', - version='0.1', - description='On-device Fuchsia connectivity testing', + version='0.2.0', + description = "Host-driven, hardware-agnostic Fuchsia connectivity tests", license='Apache-2.0', packages=find_packages( - where='src', - ), - package_dir={"": "src"}, + where='src', + ), + package_dir={"": "src"}, include_package_data=True, - tests_require=['pytest'], + tests_require=[], install_requires=install_requires, extras_require={ - 'dev': ['shiv', 'yapf', 'toml'], + 'html_graphing': ['bokeh'], + 'dev': ['shiv', 'toml', 'yapf'], 'digital_loggers_pdu': ['dlipower'], + 'flash': ['usbinfo'], + 'mdns': ['psutil', 'zeroconf'], + 'android': [ + 'Monsoon', + 'numpy', + 'paramiko[ed25519]', + 'pylibftdi', + 'pyserial', + 'requests', + 'scapy', + 'scipy', + ], })
diff --git a/src/antlion/bin/act.py b/src/antlion/bin/act.py index c670228..81d0452 100755 --- a/src/antlion/bin/act.py +++ b/src/antlion/bin/act.py
@@ -20,7 +20,6 @@ import signal import sys import traceback -from builtins import str from mobly import config_parser as mobly_config_parser @@ -208,9 +207,12 @@ testpath_key = keys.Config.key_test_paths.value if (testpath_key not in test_run_config.controller_configs or test_run_config.controller_configs[testpath_key] is None): - test_run_config.controller_configs[testpath_key] = utils.abs_path( - utils.os.path.join(os.path.dirname(__file__), - '../../../../acts_tests/tests/')) + test_run_config.controller_configs[testpath_key] = [ + os.path.join(os.path.dirname(__file__), '../tests/'), + ] + + for path in test_run_config.controller_configs[testpath_key]: + path = utils.abs_path(path) # TODO(markdr): Find a way to merge this with the validation done in # Mobly's load_test_config_file.
diff --git a/src/antlion/bin/monsoon.py b/src/antlion/bin/monsoon.py deleted file mode 100755 index 39c9fc4..0000000 --- a/src/antlion/bin/monsoon.py +++ /dev/null
@@ -1,112 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright 2022 The Fuchsia Authors -# -# 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. -"""Interface for a USB-connected Monsoon power meter -(http://msoon.com/LabEquipment/PowerMonitor/). -""" - -import argparse - -import antlion.controllers.monsoon as monsoon_controller - - -def main(args): - """Simple command-line interface for Monsoon.""" - if args.avg and args.avg < 0: - print('--avg must be greater than 0') - return - - mon = monsoon_controller.create([int(args.serialno[0])])[0] - - if args.voltage is not None: - mon.set_voltage(args.voltage) - - if args.current is not None: - mon.set_max_current(args.current) - - if args.status: - items = sorted(mon.status.items()) - print('\n'.join(['%s: %s' % item for item in items])) - - if args.usbpassthrough: - mon.usb(args.usbpassthrough) - - if args.startcurrent is not None: - mon.set_max_initial_current(args.startcurrent) - - if args.samples: - result = mon.measure_power( - args.samples / args.hz, - measure_after_seconds=args.offset, - hz=args.hz, - output_path='monsoon_output.txt') - print(repr(result)) - - -if __name__ == '__main__': - parser = argparse.ArgumentParser( - description='This is a python utility tool to control monsoon power ' - 'measurement boxes.') - parser.add_argument( - '--status', action='store_true', help='Print power meter status.') - parser.add_argument( - '-avg', - '--avg', - type=int, - default=0, - help='Also report average over last n data points.') - parser.add_argument( - '-v', '--voltage', type=float, help='Set output voltage (0 for off)') - parser.add_argument( - '-c', '--current', type=float, help='Set max output current.') - parser.add_argument( - '-sc', - '--startcurrent', - type=float, - help='Set max power-up/initial current.') - parser.add_argument( - '-usb', - '--usbpassthrough', - choices=('on', 'off', 'auto'), - help='USB control (on, off, auto).') - parser.add_argument( - '-sp', - '--samples', - type=int, - help='Collect and print this many samples') - parser.add_argument( - '-hz', '--hz', type=int, help='Sample this many times per second.') - parser.add_argument('-d', '--device', help='Use this /dev/ttyACM... file.') - parser.add_argument( - '-sn', - '--serialno', - type=int, - nargs=1, - required=True, - help='The serial number of the Monsoon to use.') - parser.add_argument( - '--offset', - type=int, - nargs='?', - default=0, - help='The number of samples to discard when calculating average.') - parser.add_argument( - '-r', - '--ramp', - action='store_true', - help='Gradually increase voltage to prevent tripping Monsoon ' - 'overvoltage.') - arguments = parser.parse_args() - main(arguments)
diff --git a/src/antlion/config_parser.py b/src/antlion/config_parser.py index eff1af3..0cfb308 100755 --- a/src/antlion/config_parser.py +++ b/src/antlion/config_parser.py
@@ -16,7 +16,6 @@ import itertools import os import sys -from builtins import str import mobly.config_parser as mobly_config_parser
diff --git a/src/antlion/controllers/access_point.py b/src/antlion/controllers/access_point.py index a7569e9..d9116ce 100755 --- a/src/antlion/controllers/access_point.py +++ b/src/antlion/controllers/access_point.py
@@ -18,11 +18,11 @@ import ipaddress import os import time -from typing import FrozenSet, Set + +from typing import FrozenSet, Set, TYPE_CHECKING from antlion import logger from antlion import utils - from antlion.controllers import pdu from antlion.controllers.ap_lib import ap_get_interface from antlion.controllers.ap_lib import ap_iwconfig @@ -31,19 +31,21 @@ from antlion.controllers.ap_lib import dhcp_server from antlion.controllers.ap_lib import hostapd from antlion.controllers.ap_lib import hostapd_ap_preset -from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_config +from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import radvd from antlion.controllers.ap_lib import radvd_config from antlion.controllers.ap_lib.extended_capabilities import ExtendedCapabilities from antlion.controllers.ap_lib.wireless_network_management import BssTransitionManagementRequest from antlion.controllers.utils_lib.commands import ip from antlion.controllers.utils_lib.commands import route -from antlion.controllers.utils_lib.commands import shell from antlion.controllers.utils_lib.ssh import connection from antlion.controllers.utils_lib.ssh import settings from antlion.libs.proc import job +if TYPE_CHECKING: + from antlion.controllers.ap_lib.radvd import Radvd + MOBLY_CONTROLLER_CONFIG_NAME = 'AccessPoint' ACTS_CONTROLLER_REFERENCE_NAME = 'access_points' _BRCTL = 'brctl' @@ -239,7 +241,7 @@ self._aps = dict() self._dhcp = None self._dhcp_bss = dict() - self._radvd = None + self._radvd: Radvd = None self.bridge = bridge_interface.BridgeInterface(self) self.iwconfig = ap_iwconfig.ApIwconfig(self) @@ -290,7 +292,7 @@ self.ssh.run(BRIDGE_DEL) def start_ap(self, - hostapd_config, + hostapd_config: hostapd_config.HostapdConfig, radvd_config=None, setup_bridge=False, is_nat_enabled=True, @@ -332,6 +334,11 @@ interface = self.wlan_5g subnet = self._AP_5G_SUBNET + # radvd requires the interface to have a IPv6 link-local address. + if radvd_config: + self.ssh.run(f'sysctl -w net.ipv6.conf.{interface}.disable_ipv6=0') + self.ssh.run(f'sysctl -w net.ipv6.conf.{interface}.forwarding=1') + # In order to handle dhcp servers on any interface, the initiation of # the dhcp server must be done after the wlan interfaces are figured # out as opposed to being in __init__ @@ -362,6 +369,12 @@ self.stop_dhcp() # Clear all routes to prevent old routes from interfering. self._route_cmd.clear_routes(net_interface=interface) + # Add IPv6 link-local route so packets destined to the AP will be + # processed by the AP. This is necessary if an iperf server is running + # on the AP, but not for traffic handled by the Linux networking stack + # such as ping. + if radvd_config: + self._route_cmd.add_route(interface, 'fe80::/64') self._dhcp_bss = dict() if hostapd_config.bss_lookup: @@ -426,6 +439,8 @@ radvd_interface = bridge_interface_name if setup_bridge else interface self._radvd = radvd.Radvd(self.ssh, radvd_interface) self._radvd.start(radvd_config) + else: + self._radvd = None bss_interfaces = [bss for bss in hostapd_config.bss_lookup] bss_interfaces.append(interface) @@ -493,6 +508,20 @@ identifier).hostapd.pull_logs() return hostapd_logs + def get_radvd_logs(self): + """Get radvd logs for this AP object. + + This allows consumers of the access point objects to validate radvd + behavior. + + Returns: + A string of the radvd logs, or None is a radvd server has not been + started. + """ + if self._radvd: + return self._radvd.pull_logs() + return None + def enable_forwarding(self): """Enable IPv4 and IPv6 forwarding on the AP.
diff --git a/src/antlion/controllers/adb.py b/src/antlion/controllers/adb.py index bb52f14..9acfa1e 100644 --- a/src/antlion/controllers/adb.py +++ b/src/antlion/controllers/adb.py
@@ -14,8 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from builtins import str - import logging import re import shlex
diff --git a/src/antlion/controllers/android_device.py b/src/antlion/controllers/android_device.py index f8987e8..1668d82 100755 --- a/src/antlion/controllers/android_device.py +++ b/src/antlion/controllers/android_device.py
@@ -22,8 +22,6 @@ import shutil import socket import time -from builtins import open -from builtins import str from datetime import datetime from antlion import context
diff --git a/src/antlion/controllers/ap_lib/dhcp_server.py b/src/antlion/controllers/ap_lib/dhcp_server.py index a1419f6..01411c6 100644 --- a/src/antlion/controllers/ap_lib/dhcp_server.py +++ b/src/antlion/controllers/ap_lib/dhcp_server.py
@@ -13,7 +13,8 @@ # limitations under the License. import time -from retry import retry + +from tenacity import retry, retry_if_exception_type, stop_after_attempt, wait_fixed from antlion.controllers.utils_lib.commands import shell from antlion import logger @@ -62,7 +63,9 @@ # will happening. By adding this retry, the error appears to have gone away # but will still show a warning if the problem occurs. The error seems to # happen more with bridge interfaces than standard interfaces. - @retry(exceptions=NoInterfaceError, tries=3, delay=1) + @retry(retry=retry_if_exception_type(NoInterfaceError), + stop=stop_after_attempt(3), + wait=wait_fixed(1)) def start(self, config, timeout=60): """Starts the dhcp server.
diff --git a/src/antlion/controllers/buds_lib/apollo_lib.py b/src/antlion/controllers/buds_lib/apollo_lib.py index c988f44..1a63c62 100644 --- a/src/antlion/controllers/buds_lib/apollo_lib.py +++ b/src/antlion/controllers/buds_lib/apollo_lib.py
@@ -35,25 +35,22 @@ To send a list of commands: >>> apollo.cmd(['PowOff', 'PowOn', 'VolUp', 'VolDown'] """ -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - import atexit import os import re import subprocess import time +from logging import Logger import serial +from tenacity import retry, stop_after_attempt, wait_exponential + from antlion.controllers.buds_lib import tako_trace_logger from antlion.controllers.buds_lib import logserial from antlion.controllers.buds_lib.b29_lib import B29Device from antlion.controllers.buds_lib.dev_utils import apollo_log_decoder from antlion.controllers.buds_lib.dev_utils import apollo_log_regex from antlion.controllers.buds_lib.dev_utils import apollo_sink_events -from logging import Logger -from retry import retry logging = tako_trace_logger.TakoTraceLogger(Logger('apollo')) @@ -566,7 +563,8 @@ raise DeviceError('Cannot reconnect to %s with %d attempts.', self.commander_port, iterations) - @retry(Exception, tries=4, delay=1, backoff=2) + @retry(stop=stop_after_attempt(4), + wait=wait_exponential()) def wait_for_commander(self): """Wait for commander to function.
diff --git a/src/antlion/controllers/buds_lib/logserial.py b/src/antlion/controllers/buds_lib/logserial.py index de270b5..7b71f8d 100644 --- a/src/antlion/controllers/buds_lib/logserial.py +++ b/src/antlion/controllers/buds_lib/logserial.py
@@ -258,7 +258,6 @@ alive = self.monitor_port.port_exists(port=self.connection_handle.port) return alive - # @retry(Exception, tries=RETRIES, delay=1, backoff=2) def open(self): """Will open the connection with the current port settings.""" while self.connection_handle.isOpen():
diff --git a/src/antlion/controllers/fuchsia_device.py b/src/antlion/controllers/fuchsia_device.py index 92c528e..c0d62c7 100644 --- a/src/antlion/controllers/fuchsia_device.py +++ b/src/antlion/controllers/fuchsia_device.py
@@ -14,12 +14,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from typing import Optional +from typing import Optional, List import json import logging import os import re import subprocess +import textwrap import time from antlion import context @@ -27,23 +28,20 @@ from antlion import signals from antlion import utils from antlion.controllers import pdu -from antlion.libs.proc import job -from antlion.utils import get_fuchsia_mdns_ipv6_address, get_interface_ip_addresses - from antlion.controllers.fuchsia_lib.ffx import FFX -from antlion.controllers.fuchsia_lib.sl4f import SL4F from antlion.controllers.fuchsia_lib.lib_controllers.netstack_controller import NetstackController from antlion.controllers.fuchsia_lib.lib_controllers.wlan_controller import WlanController from antlion.controllers.fuchsia_lib.lib_controllers.wlan_policy_controller import WlanPolicyController from antlion.controllers.fuchsia_lib.package_server import PackageServer -from antlion.controllers.fuchsia_lib.ssh import DEFAULT_SSH_PORT, DEFAULT_SSH_USER, SSHConfig, SSHProvider, FuchsiaSSHError +from antlion.controllers.fuchsia_lib.sl4f import SL4F +from antlion.controllers.fuchsia_lib.ssh import DEFAULT_SSH_PORT, DEFAULT_SSH_PRIVATE_KEY, DEFAULT_SSH_USER, SSHConfig, SSHProvider, FuchsiaSSHError from antlion.controllers.fuchsia_lib.utils_lib import flash +from antlion.libs.proc import job +from antlion.utils import get_fuchsia_mdns_ipv6_address, get_interface_ip_addresses MOBLY_CONTROLLER_CONFIG_NAME = "FuchsiaDevice" ACTS_CONTROLLER_REFERENCE_NAME = "fuchsia_devices" -CONTROL_PATH_REPLACE_VALUE = " ControlPath /tmp/fuchsia--%r@%h:%p" - FUCHSIA_DEVICE_EMPTY_CONFIG_MSG = "Configuration is empty, abort!" FUCHSIA_DEVICE_NOT_LIST_CONFIG_MSG = "Configuration should be a list, abort!" FUCHSIA_DEVICE_INVALID_CONFIG = ("Fuchsia device config must be either a str " @@ -153,33 +151,60 @@ ssh_config: The ssh_config for connecting to the Fuchsia device. """ - def __init__(self, fd_conf_data): - """ - Args: - fd_conf_data: A dict of a fuchsia device configuration data - Required keys: - ip: IP address of fuchsia device - optional key: - sl4_port: Port for the sl4f web server on the fuchsia device - (Default: 80) - ssh_config: Location of the ssh_config file to connect to - the fuchsia device - (Default: None) - ssh_port: Port for the ssh server on the fuchsia device - (Default: 22) - """ + def __init__(self, fd_conf_data) -> None: self.conf_data = fd_conf_data if "ip" not in fd_conf_data: raise FuchsiaDeviceError(FUCHSIA_DEVICE_NO_IP_MSG) self.ip: str = fd_conf_data["ip"] self.orig_ip: str = fd_conf_data["ip"] self.sl4f_port: int = fd_conf_data.get("sl4f_port", 80) + self.ssh_username: str = fd_conf_data.get("ssh_username", + DEFAULT_SSH_USER) self.ssh_port: int = fd_conf_data.get("ssh_port", DEFAULT_SSH_PORT) - self.ssh_config: Optional[str] = fd_conf_data.get("ssh_config", None) - self.ssh_priv_key: Optional[str] = fd_conf_data.get( - "ssh_priv_key", None) - self.authorized_file: Optional[str] = fd_conf_data.get( - "authorized_file_loc", None) + + def expand(path: str) -> str: + return os.path.expandvars(os.path.expanduser(path)) + + def path_from_config(name: str, + default: Optional[str] = None) -> Optional[str]: + path = fd_conf_data.get(name, default) + if not path: + return path + return expand(path) + + def assert_exists(name: str, path: str) -> None: + if not path: + raise FuchsiaDeviceError( + f'Please specify "${name}" in your configuration file') + if not os.path.exists(path): + raise FuchsiaDeviceError( + f'Please specify a correct "${name}" in your configuration ' + f'file: "{path}" does not exist') + + self.specific_image: Optional[str] = path_from_config("specific_image") + if self.specific_image: + assert_exists("specific_image", self.specific_image) + + # Path to a tar.gz archive with pm and amber-files, as necessary for + # starting a package server. + self.packages_archive_path: Optional[str] = path_from_config( + "packages_archive_path", None) + if self.packages_archive_path: + assert_exists("packages_archive_path", self.packages_archive_path) + + def required_path_from_config(name: str, + default: Optional[str] = None) -> str: + path = path_from_config(name, default) + assert_exists(name, path) + return path + + self.ssh_priv_key: str = required_path_from_config( + "ssh_priv_key", DEFAULT_SSH_PRIVATE_KEY) + self.authorized_file: str = required_path_from_config( + "authorized_file_loc", f'{self.ssh_priv_key}.pub') + self.ffx_binary_path: str = required_path_from_config( + "ffx_binary_path", "${FUCHSIA_DIR}/.jiri_root/bin/ffx") + self.serial_number: Optional[str] = fd_conf_data.get( "serial_number", None) self.device_type: Optional[str] = fd_conf_data.get("device_type", None) @@ -189,34 +214,22 @@ self.build_number: Optional[str] = fd_conf_data.get( "build_number", None) self.build_type: Optional[str] = fd_conf_data.get("build_type", None) - self.server_path: Optional[str] = fd_conf_data.get("server_path", None) - self.specific_image: Optional[str] = fd_conf_data.get( - "specific_image", None) - self.ffx_binary_path: Optional[str] = fd_conf_data.get( - "ffx_binary_path", None) - # Path to a tar.gz archive with pm and amber-files, as necessary for - # starting a package server. - self.packages_archive_path: Optional[str] = fd_conf_data.get( - "packages_archive_path", None) + self.mdns_name: Optional[str] = fd_conf_data.get("mdns_name", None) - # Instead of the input ssh_config, a new config is generated with proper - # ControlPath to the test output directory. - output_path = context.get_current_context().get_base_output_path() - generated_ssh_config = os.path.join(output_path, - "ssh_config_{}".format(self.ip)) - self._set_control_path_config(self.ssh_config, generated_ssh_config) - self.ssh_config = generated_ssh_config - - self.ssh_username = fd_conf_data.get("ssh_username", DEFAULT_SSH_USER) - self.hard_reboot_on_fail = fd_conf_data.get("hard_reboot_on_fail", - False) - self.take_bug_report_on_fail = fd_conf_data.get( + self.hard_reboot_on_fail: bool = fd_conf_data.get( + "hard_reboot_on_fail", False) + self.take_bug_report_on_fail: bool = fd_conf_data.get( "take_bug_report_on_fail", False) self.device_pdu_config = fd_conf_data.get("PduDevice", None) - self.config_country_code = fd_conf_data.get( + self.config_country_code: str = fd_conf_data.get( 'country_code', FUCHSIA_DEFAULT_COUNTRY_CODE_US).upper() + output_path = context.get_current_context().get_base_output_path() + self.ssh_config = os.path.join(output_path, + "ssh_config_{}".format(self.ip)) + self._generate_ssh_config(self.ssh_config) + # WLAN interface info is populated inside configure_wlan self.wlan_client_interfaces = {} self.wlan_ap_interfaces = {} @@ -224,6 +237,7 @@ 'wlan_client_test_interface', None) self.wlan_ap_test_interface_name = fd_conf_data.get( 'wlan_ap_test_interface', None) + self.wlan_features: List[str] = fd_conf_data.get('wlan_features', []) # Whether to use 'policy' or 'drivers' for WLAN connect/disconnect calls # If set to None, wlan is not configured. @@ -286,6 +300,7 @@ def sl4f(self): if not hasattr(self, '_sl4f'): return + self.log.debug('Cleaning up SL4F') del self._sl4f @property @@ -307,6 +322,7 @@ def ssh(self): if not hasattr(self, '_ssh'): return + self.log.debug('Cleaning up SSH') del self._ssh @property @@ -321,10 +337,6 @@ calls. """ if not hasattr(self, '_ffx'): - if not self.ffx_binary_path: - raise FuchsiaConfigError( - 'Must provide "ffx_binary_path: <path to FFX binary>" in the device config' - ) if not self.mdns_name: raise FuchsiaConfigError( 'Must provide "mdns_name: <device mDNS name>" in the device config' @@ -337,29 +349,37 @@ def ffx(self): if not hasattr(self, '_ffx'): return + self.log.debug('Cleaning up ffx') self._ffx.clean_up() del self._ffx - def _set_control_path_config(self, old_config, new_config): - """Given an input ssh_config, write to a new config with proper - ControlPath values in place, if it doesn't exist already. + def _generate_ssh_config(self, file_path: str): + """Generate and write an SSH config for Fuchsia to disk. Args: - old_config: string, path to the input config - new_config: string, path to store the new config + file_path: Path to write the generated SSH config """ - if os.path.isfile(new_config): - return + content = textwrap.dedent(f"""\ + Host * + CheckHostIP no + StrictHostKeyChecking no + ForwardAgent no + ForwardX11 no + GSSAPIDelegateCredentials no + UserKnownHostsFile /dev/null + User fuchsia + IdentitiesOnly yes + IdentityFile {self.ssh_priv_key} + ControlPersist yes + ControlMaster auto + ControlPath /tmp/fuchsia--%r@%h:%p + ServerAliveInterval 1 + ServerAliveCountMax 1 + LogLevel ERROR + """) - ssh_config_copy = "" - - with open(old_config, 'r') as file: - ssh_config_copy = re.sub('(\sControlPath\s.*)', - CONTROL_PATH_REPLACE_VALUE, - file.read(), - flags=re.M) - with open(new_config, 'w') as file: - file.write(ssh_config_copy) + with open(file_path, 'w') as file: + file.write(content) def init_controllers(self): # Contains Netstack functions @@ -519,7 +539,7 @@ ping_timeout: int = FUCHSIA_DEFAULT_CONNECT_TIMEOUT, ssh_timeout: int = FUCHSIA_DEFAULT_CONNECT_TIMEOUT, reboot_type: int = FUCHSIA_REBOOT_TYPE_SOFT, - testbed_pdus: list[pdu.PduDevice] = None) -> None: + testbed_pdus: List[pdu.PduDevice] = None) -> None: """Reboot a FuchsiaDevice. Soft reboots the device, verifies it becomes unreachable, then verifies @@ -871,30 +891,39 @@ Usage: In FuchsiaDevice config, add "country_code": "<CC>" """ - if self.ssh_config: - # Country code can be None, from antlion config. - if desired_country_code: - desired_country_code = desired_country_code.upper() - response = self.sl4f.regulatory_region_lib.setRegion( - desired_country_code) - if response.get('error'): - raise FuchsiaDeviceError( - 'Failed to set regulatory domain. Err: %s' % - response['error']) - end_time = time.time() + FUCHSIA_COUNTRY_CODE_TIMEOUT - while time.time() < end_time: - ascii_cc = self.sl4f.wlan_lib.wlanGetCountry(0).get( - 'result') - # Convert ascii_cc to string, then compare - if ascii_cc and (''.join(chr(c) for c in ascii_cc).upper() - == desired_country_code): - self.log.debug('Country code successfully set to %s.' % - desired_country_code) - return - self.log.debug('Country code not yet updated. Retrying.') - time.sleep(1) - raise FuchsiaDeviceError('Country code never updated to %s' % - desired_country_code) + # Country code can be None, from antlion config. + if desired_country_code: + desired_country_code = desired_country_code.upper() + response = self.sl4f.regulatory_region_lib.setRegion( + desired_country_code) + if response.get('error'): + raise FuchsiaDeviceError( + 'Failed to set regulatory domain. Err: %s' % + response['error']) + + phy_list_response = self.sl4f.wlan_lib.wlanPhyIdList() + if phy_list_response.get('error'): + raise FuchsiaDeviceError( + f'Failed to get phy list. Err: {response["error"]}') + phy_list = phy_list_response.get('result') + if not phy_list: + raise FuchsiaDeviceError('No phy available in phy list') + phy_id = phy_list[0] + + end_time = time.time() + FUCHSIA_COUNTRY_CODE_TIMEOUT + while time.time() < end_time: + ascii_cc = self.sl4f.wlan_lib.wlanGetCountry(phy_id).get( + 'result') + # Convert ascii_cc to string, then compare + if ascii_cc and (''.join(chr(c) for c in ascii_cc).upper() + == desired_country_code): + self.log.debug('Country code successfully set to %s.' % + desired_country_code) + return + self.log.debug('Country code not yet updated. Retrying.') + time.sleep(1) + raise FuchsiaDeviceError('Country code never updated to %s' % + desired_country_code) def stop_services(self): """Stops the ffx daemon and deletes SL4F property.""" @@ -917,11 +946,6 @@ times in one test. Epoch time when the test started. If not specified, the current time will be used. """ - if not self.ssh_config: - self.log.warn( - 'Skipping take_bug_report because ssh_config is not specified') - return - if test_name: self.log.info( f"Taking snapshot of {self.mdns_name} for {test_name}")
diff --git a/src/antlion/controllers/fuchsia_lib/ffx.py b/src/antlion/controllers/fuchsia_lib/ffx.py index cdd34d4..ca05feb 100644 --- a/src/antlion/controllers/fuchsia_lib/ffx.py +++ b/src/antlion/controllers/fuchsia_lib/ffx.py
@@ -20,7 +20,8 @@ import subprocess import time -from pathlib import Path +from pathlib import Path, PurePath +from shutil import rmtree from typing import Any, MutableMapping, Optional from antlion import context @@ -28,7 +29,6 @@ from antlion import signals from antlion import utils - FFX_DEFAULT_COMMAND_TIMEOUT: int = 60 @@ -80,6 +80,7 @@ self.ssh_private_key_path = ssh_private_key_path self._env_config_path: Optional[str] = None + self._sock_dir: Optional[str] = None self._ssh_auth_sock_path: Optional[str] = None self._overnet_socket_path: Optional[str] = None self._has_been_reachable = False @@ -92,8 +93,11 @@ Path(self._ssh_auth_sock_path).unlink(missing_ok=True) if self._overnet_socket_path: Path(self._overnet_socket_path).unlink(missing_ok=True) + if self._sock_dir: + rmtree(self._sock_dir) self._env_config_path = None + self._sock_dir = None self._ssh_auth_sock_path = None self._overnet_socket_path = None self._has_been_reachable = False @@ -166,9 +170,13 @@ # Sockets need to be created in a different directory to be guaranteed # to stay under the maximum socket path length of 104 characters. # See https://unix.stackexchange.com/q/367008 - self._ssh_auth_sock_path = tempfile.mkstemp(suffix="ssh_auth_sock")[1] - self._overnet_socket_path = tempfile.mkstemp( - suffix="overnet_socket")[1] + self._sock_dir = tempfile.mkdtemp() + # On MacOS, the socket paths need to be just paths (not pre-created + # Python tempfiles, which are not socket files). + self._ssh_auth_sock_path = str( + PurePath(self._sock_dir, 'ssh_auth_sock')) + self._overnet_socket_path = str( + PurePath(self._sock_dir, 'overnet_socket')) config: MutableMapping[str, Any] = { "target": {
diff --git a/src/antlion/controllers/fuchsia_lib/lib_controllers/wlan_policy_controller.py b/src/antlion/controllers/fuchsia_lib/lib_controllers/wlan_policy_controller.py index 1ca8a80..25f06b4 100644 --- a/src/antlion/controllers/fuchsia_lib/lib_controllers/wlan_policy_controller.py +++ b/src/antlion/controllers/fuchsia_lib/lib_controllers/wlan_policy_controller.py
@@ -91,7 +91,8 @@ self.log.debug(f"Stopped session: {result.stdout}.") else: if (b'InstanceNotFound' in result.stderr - or b'instance was not found' in result.stderr): + or b'instance was not found' in result.stderr + or b'does not exist' in result.stderr): self.log.debug(f'Instance was not found: {result.stderr}.') else: raise WlanPolicyControllerError(
diff --git a/src/antlion/controllers/fuchsia_lib/sl4f.py b/src/antlion/controllers/fuchsia_lib/sl4f.py index 9cb36ee..1958772 100644 --- a/src/antlion/controllers/fuchsia_lib/sl4f.py +++ b/src/antlion/controllers/fuchsia_lib/sl4f.py
@@ -15,6 +15,7 @@ # limitations under the License. import ipaddress +import sys from antlion import logger from antlion.controllers.fuchsia_lib import utils_lib @@ -58,11 +59,21 @@ ssh: SSHProvider transport to start and stop SL4F. port: Port for the SL4F server to listen on. """ - host = ipaddress.ip_address(ssh.config.host_name) - if host.version == 4: - self.address = f'http://{host}:{port}' - elif host.version == 6: - self.address = f'http://[{host}]:{port}' + if sys.version_info < (3, 9): + # TODO(http://b/261746355): Remove this if statement once the + # minimum Python version is 3.9 or newer. + host = ipaddress.ip_address(ssh.config.host_name.split('%')[0]) + if host.version == 4: + self.address = f'http://{host}:{port}' + elif host.version == 6: + host = ssh.config.host_name + self.address = f'http://[{host}]:{port}' + else: + host = ipaddress.ip_address(ssh.config.host_name) + if host.version == 4: + self.address = f'http://{host}:{port}' + elif host.version == 6: + self.address = f'http://[{host}]:{port}' self.log = logger.create_tagged_trace_logger(f"SL4F | {self.address}")
diff --git a/src/antlion/controllers/fuchsia_lib/ssh.py b/src/antlion/controllers/fuchsia_lib/ssh.py index fd32d99..ec8f762 100644 --- a/src/antlion/controllers/fuchsia_lib/ssh.py +++ b/src/antlion/controllers/fuchsia_lib/ssh.py
@@ -25,6 +25,7 @@ DEFAULT_SSH_USER: str = "fuchsia" DEFAULT_SSH_PORT: int = 22 +DEFAULT_SSH_PRIVATE_KEY: str = "~/.ssh/fuchsia_ed25519" DEFAULT_SSH_TIMEOUT_SEC: int = 60 DEFAULT_SSH_CONNECT_TIMEOUT_SEC: int = 30 DEFAULT_SSH_SERVER_ALIVE_INTERVAL: int = 30
diff --git a/src/antlion/controllers/fuchsia_lib/utils_lib.py b/src/antlion/controllers/fuchsia_lib/utils_lib.py index bb3e24b..897749f 100644 --- a/src/antlion/controllers/fuchsia_lib/utils_lib.py +++ b/src/antlion/controllers/fuchsia_lib/utils_lib.py
@@ -16,12 +16,10 @@ import os import logging -import psutil import socket import tarfile import tempfile import time -import usbinfo from antlion import utils from antlion.controllers.fuchsia_lib.ssh import FuchsiaSSHError @@ -134,6 +132,9 @@ def reboot_to_bootloader(fuchsia_device, use_ssh=False, fuchsia_reconnect_after_reboot_time=5): + import psutil + import usbinfo + if use_ssh: logging.info('Sending reboot command via SSH to ' 'get into bootloader.')
diff --git a/src/antlion/controllers/iperf_client.py b/src/antlion/controllers/iperf_client.py index 78bb13b..c4d8e1d 100644 --- a/src/antlion/controllers/iperf_client.py +++ b/src/antlion/controllers/iperf_client.py
@@ -29,8 +29,6 @@ from antlion.controllers.utils_lib.ssh import connection from antlion.controllers.utils_lib.ssh import settings from antlion.libs.proc import job -from paramiko.buffered_pipe import PipeTimeout -from paramiko.ssh_exception import SSHException MOBLY_CONTROLLER_CONFIG_NAME = 'IPerfClient' ACTS_CONTROLLER_REFERENCE_NAME = 'iperf_clients' @@ -223,14 +221,9 @@ iperf_output = iperf_process.stdout with open(full_out_path, 'w') as out_file: out_file.write(iperf_output) - except PipeTimeout: - raise TimeoutError('Paramiko PipeTimeout. Timed out waiting for ' - 'iperf client to finish.') except socket.timeout: raise TimeoutError('Socket timeout. Timed out waiting for iperf ' 'client to finish.') - except SSHException as err: - raise ConnectionError('SSH connection failed: {}'.format(err)) except Exception as err: logging.exception('iperf run failed: {}'.format(err))
diff --git a/src/antlion/controllers/iperf_server.py b/src/antlion/controllers/iperf_server.py index 3454529..b1311ff 100755 --- a/src/antlion/controllers/iperf_server.py +++ b/src/antlion/controllers/iperf_server.py
@@ -679,7 +679,7 @@ iperf_command = '{} -s -J -p {}'.format(iperf_binary, self.port) self._iperf_process = self._android_device.adb.shell_nb( - '{cmd} {extra_flags} > {log_file}'.format( + '{cmd} {extra_flags} > {log_file} 2>&1'.format( cmd=iperf_command, extra_flags=extra_args, log_file=self._get_device_log_path()))
diff --git a/src/antlion/controllers/relay_lib/relay_board.py b/src/antlion/controllers/relay_lib/relay_board.py index a4f0412..464326d 100644 --- a/src/antlion/controllers/relay_lib/relay_board.py +++ b/src/antlion/controllers/relay_lib/relay_board.py
@@ -14,10 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - from antlion.controllers.relay_lib.errors import RelayConfigError from antlion.controllers.relay_lib.helpers import validate_key from antlion.controllers.relay_lib.relay import Relay
diff --git a/src/antlion/controllers/relay_lib/sain_smart_board.py b/src/antlion/controllers/relay_lib/sain_smart_board.py index 1695d7c..b5bc310 100644 --- a/src/antlion/controllers/relay_lib/sain_smart_board.py +++ b/src/antlion/controllers/relay_lib/sain_smart_board.py
@@ -14,8 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from future.moves.urllib.request import urlopen import re +from urllib.request import urlopen from antlion.controllers.relay_lib.errors import RelayDeviceConnectionError from antlion.controllers.relay_lib.helpers import validate_key
diff --git a/src/antlion/controllers/utils_lib/commands/route.py b/src/antlion/controllers/utils_lib/commands/route.py index d024c4b..3897f39 100644 --- a/src/antlion/controllers/utils_lib/commands/route.py +++ b/src/antlion/controllers/utils_lib/commands/route.py
@@ -35,11 +35,11 @@ """ Args: runner: Object that can take unix commands and run them in an - enviroment. + environment. """ self._runner = runner - def add_route(self, net_interface, address): + def add_route(self, net_interface, address, proto='static'): """Add an entry to the ip routing table. Will add a route for either a specific ip address, or a network. @@ -53,13 +53,15 @@ is given then the entire subnet will be routed. If DEFAULT_ROUTE is given then this will set the default route. + proto: string, Routing protocol identifier of this route + (e.g. kernel, redirect, boot, static, ra). + See `man ip-route(8)` for details. Raises: NetworkInterfaceDown: Raised when the network interface is down. """ try: - self._runner.run('ip route add %s dev %s' % - (address, net_interface)) + self._runner.run(f'ip route add {address} dev {net_interface} proto {proto}') except connection.CommandError as e: if 'File exists' in e.result.stderr: raise Error('Route already exists.') @@ -72,7 +74,7 @@ """Get the routes in the ip routing table. Args: - net_interface: string, If given, only retrive routes that have + net_interface: string, If given, only retrieve routes that have been registered to go through this network interface (eg. wlan0). @@ -82,22 +84,24 @@ it will be a ipaddress.IPv4Network otherwise it is a ipaddress.IPv4Address. """ - result = self._runner.run('ip route show') + result_ipv4 = self._runner.run('ip -4 route show') + result_ipv6 = self._runner.run('ip -6 route show') - lines = result.stdout.splitlines() + lines = result_ipv4.stdout.splitlines() + result_ipv6.stdout.splitlines() # Scan through each line for valid route entries # Example output: # default via 192.168.1.254 dev eth0 proto static # 192.168.1.0/24 dev eth0 proto kernel scope link src 172.22.100.19 metric 1 # 192.168.2.1 dev eth2 proto kernel scope link metric 1 + # fe80::/64 dev wlan0 proto static metric 1024 for line in lines: if not 'dev' in line: continue if line.startswith(self.DEFAULT_ROUTE): # The default route entry is formatted differently. - match = re.search('dev (?P<net_interface>.*)', line) + match = re.search('dev (?P<net_interface>\S+)', line) pair = None if match: # When there is a match for the route entry pattern create @@ -107,7 +111,7 @@ else: # Test the normal route entry pattern. match = re.search( - '(?P<address>[^\s]*) dev (?P<net_interface>[^\s]*)', line) + '(?P<address>[0-9A-Fa-f\.\:/]+) dev (?P<net_interface>\S+)', line) pair = None if match: # When there is a match for the route entry pattern create @@ -115,9 +119,9 @@ d = match.groupdict() # Route can be either a network or specific address try: - address = ipaddress.IPv4Address(d['address']) - except ipaddress.AddressValueError: - address = ipaddress.IPv4Network(d['address']) + address = ipaddress.ip_address(d['address']) + except ValueError: + address = d['address'] pair = (address, d['net_interface'])
diff --git a/src/antlion/controllers/utils_lib/ssh/connection.py b/src/antlion/controllers/utils_lib/ssh/connection.py index 4808f93..799905e 100644 --- a/src/antlion/controllers/utils_lib/ssh/connection.py +++ b/src/antlion/controllers/utils_lib/ssh/connection.py
@@ -286,7 +286,7 @@ Args: command: The command to execute over ssh. Can be either a string or a list. - env: A dictonary of environment variables to setup on the remote + env: A dictionary of environment variables to setup on the remote host. Returns: @@ -298,9 +298,7 @@ SshPermissionDeniedError: When permission is not allowed on the remote host. """ - command = '(%s) < /dev/null > /dev/null 2>&1 & echo -n $!' % command - result = self.run(command, env=env) - return result + return self.run(f'({command}) < /dev/null > /dev/null 2>&1 & echo -n $!', env=env) def close(self): """Clean up open connections to remote host."""
diff --git a/src/antlion/libs/proc/job.py b/src/antlion/libs/proc/job.py index 9530826..b17d904 100644 --- a/src/antlion/libs/proc/job.py +++ b/src/antlion/libs/proc/job.py
@@ -28,7 +28,7 @@ def __init__(self, result): super(Error, self).__init__(result) - self.result = result + self.result: Result = result class TimeoutError(Error):
diff --git a/src/antlion/logger.py b/src/antlion/logger.py index 2b46ff1..599e08b 100755 --- a/src/antlion/logger.py +++ b/src/antlion/logger.py
@@ -14,8 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from __future__ import print_function - import datetime import logging import os
diff --git a/src/antlion/test_runner.py b/src/antlion/test_runner.py index 81a1c49..261d0bd 100644 --- a/src/antlion/test_runner.py +++ b/src/antlion/test_runner.py
@@ -15,10 +15,6 @@ # limitations under the License. import itertools -from future import standard_library - -standard_library.install_aliases() - import importlib import inspect import fnmatch
diff --git a/src/antlion_contrib/test_utils/OWNERS b/src/antlion/test_utils/OWNERS similarity index 100% rename from src/antlion_contrib/test_utils/OWNERS rename to src/antlion/test_utils/OWNERS
diff --git a/src/antlion_contrib/test_utils/__init__.py b/src/antlion/test_utils/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/__init__.py rename to src/antlion/test_utils/__init__.py
diff --git a/src/antlion_contrib/test_utils/abstract_devices/__init__.py b/src/antlion/test_utils/abstract_devices/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/abstract_devices/__init__.py rename to src/antlion/test_utils/abstract_devices/__init__.py
diff --git a/src/antlion_contrib/test_utils/abstract_devices/bluetooth_device.py b/src/antlion/test_utils/abstract_devices/bluetooth_device.py similarity index 98% rename from src/antlion_contrib/test_utils/abstract_devices/bluetooth_device.py rename to src/antlion/test_utils/abstract_devices/bluetooth_device.py index b5dae7d..c0cb29e 100644 --- a/src/antlion_contrib/test_utils/abstract_devices/bluetooth_device.py +++ b/src/antlion/test_utils/abstract_devices/bluetooth_device.py
@@ -21,16 +21,16 @@ from antlion.controllers.android_device import AndroidDevice from antlion.controllers.fuchsia_device import FuchsiaDevice -from antlion_contrib.test_utils.bt.bt_constants import ble_scan_settings_modes -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_strings -from antlion_contrib.test_utils.bt.bt_constants import gatt_event -from antlion_contrib.test_utils.bt.bt_constants import scan_result -from antlion_contrib.test_utils.bt.bt_gatt_utils import GattTestUtilsError -from antlion_contrib.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_connection -from antlion_contrib.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name +from antlion.test_utils.bt.bt_constants import ble_scan_settings_modes +from antlion.test_utils.bt.bt_constants import gatt_cb_strings +from antlion.test_utils.bt.bt_constants import gatt_event +from antlion.test_utils.bt.bt_constants import scan_result +from antlion.test_utils.bt.bt_gatt_utils import GattTestUtilsError +from antlion.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_connection +from antlion.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name -import antlion_contrib.test_utils.bt.bt_test_utils as bt_test_utils +import antlion.test_utils.bt.bt_test_utils as bt_test_utils def create_bluetooth_device(hardware_device):
diff --git a/src/antlion_contrib/test_utils/abstract_devices/bluetooth_handsfree_abstract_device.py b/src/antlion/test_utils/abstract_devices/bluetooth_handsfree_abstract_device.py similarity index 99% rename from src/antlion_contrib/test_utils/abstract_devices/bluetooth_handsfree_abstract_device.py rename to src/antlion/test_utils/abstract_devices/bluetooth_handsfree_abstract_device.py index c320c32..2367b94 100644 --- a/src/antlion_contrib/test_utils/abstract_devices/bluetooth_handsfree_abstract_device.py +++ b/src/antlion/test_utils/abstract_devices/bluetooth_handsfree_abstract_device.py
@@ -17,7 +17,7 @@ import time from antlion import asserts from antlion.controllers.buds_lib.dev_utils import apollo_sink_events -from antlion_contrib.test_utils.bt.bt_constants import bt_default_timeout +from antlion.test_utils.bt.bt_constants import bt_default_timeout
diff --git a/src/antlion_contrib/test_utils/abstract_devices/wlan_device.py b/src/antlion/test_utils/abstract_devices/wlan_device.py similarity index 97% rename from src/antlion_contrib/test_utils/abstract_devices/wlan_device.py rename to src/antlion/test_utils/abstract_devices/wlan_device.py index ea55883..2d11a44 100644 --- a/src/antlion_contrib/test_utils/abstract_devices/wlan_device.py +++ b/src/antlion/test_utils/abstract_devices/wlan_device.py
@@ -18,7 +18,7 @@ import logging import time -import antlion_contrib.test_utils.wifi.wifi_test_utils as awutils +import antlion.test_utils.wifi.wifi_test_utils as awutils from antlion.utils import adb_shell_ping from antlion import asserts @@ -176,6 +176,10 @@ raise NotImplementedError("{} must be defined.".format( inspect.currentframe().f_code.co_name)) + def feature_is_present(self, feature: str) -> bool: + raise NotImplementedError("{} must be defined.".format( + inspect.currentframe().f_code.co_name)) + class AndroidWlanDevice(WlanDevice): """Class wrapper for an Android WLAN device. @@ -303,6 +307,9 @@ android_device_or_serial=self.device, test_interface=test_interface) + def feature_is_present(self, feature: str) -> bool: + pass + class FuchsiaWlanDevice(WlanDevice): """Class wrapper for an Fuchsia WLAN device. @@ -539,3 +546,6 @@ }, ssh_provider=self.device.ssh, test_interface=test_interface) + + def feature_is_present(self, feature: str) -> bool: + return feature in self.device.wlan_features
diff --git a/src/antlion_contrib/test_utils/abstract_devices/wmm_transceiver.py b/src/antlion/test_utils/abstract_devices/wmm_transceiver.py similarity index 100% rename from src/antlion_contrib/test_utils/abstract_devices/wmm_transceiver.py rename to src/antlion/test_utils/abstract_devices/wmm_transceiver.py
diff --git a/src/antlion_contrib/test_utils/audio_analysis_lib/__init__.py b/src/antlion/test_utils/audio_analysis_lib/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/audio_analysis_lib/__init__.py rename to src/antlion/test_utils/audio_analysis_lib/__init__.py
diff --git a/src/antlion_contrib/test_utils/audio_analysis_lib/audio_analysis.py b/src/antlion/test_utils/audio_analysis_lib/audio_analysis.py similarity index 100% rename from src/antlion_contrib/test_utils/audio_analysis_lib/audio_analysis.py rename to src/antlion/test_utils/audio_analysis_lib/audio_analysis.py
diff --git a/src/antlion_contrib/test_utils/audio_analysis_lib/audio_data.py b/src/antlion/test_utils/audio_analysis_lib/audio_data.py similarity index 100% rename from src/antlion_contrib/test_utils/audio_analysis_lib/audio_data.py rename to src/antlion/test_utils/audio_analysis_lib/audio_data.py
diff --git a/src/antlion_contrib/test_utils/audio_analysis_lib/audio_quality_measurement.py b/src/antlion/test_utils/audio_analysis_lib/audio_quality_measurement.py similarity index 99% rename from src/antlion_contrib/test_utils/audio_analysis_lib/audio_quality_measurement.py rename to src/antlion/test_utils/audio_analysis_lib/audio_quality_measurement.py index 5287b29..c347636 100644 --- a/src/antlion_contrib/test_utils/audio_analysis_lib/audio_quality_measurement.py +++ b/src/antlion/test_utils/audio_analysis_lib/audio_quality_measurement.py
@@ -20,7 +20,7 @@ import math import numpy -import antlion_contrib.test_utils.audio_analysis_lib.audio_analysis as audio_analysis +import antlion.test_utils.audio_analysis_lib.audio_analysis as audio_analysis # The input signal should be one sine wave with fixed frequency which # can have silence before and/or after sine wave.
diff --git a/src/antlion_contrib/test_utils/audio_analysis_lib/check_quality.py b/src/antlion/test_utils/audio_analysis_lib/check_quality.py similarity index 98% rename from src/antlion_contrib/test_utils/audio_analysis_lib/check_quality.py rename to src/antlion/test_utils/audio_analysis_lib/check_quality.py index 755d007..0eef51b 100644 --- a/src/antlion_contrib/test_utils/audio_analysis_lib/check_quality.py +++ b/src/antlion/test_utils/audio_analysis_lib/check_quality.py
@@ -24,9 +24,9 @@ import tempfile import wave -import antlion_contrib.test_utils.audio_analysis_lib.audio_analysis as audio_analysis -import antlion_contrib.test_utils.audio_analysis_lib.audio_data as audio_data -import antlion_contrib.test_utils.audio_analysis_lib.audio_quality_measurement as \ +import antlion.test_utils.audio_analysis_lib.audio_analysis as audio_analysis +import antlion.test_utils.audio_analysis_lib.audio_data as audio_data +import antlion.test_utils.audio_analysis_lib.audio_quality_measurement as \ audio_quality_measurement # Holder for quality parameters used in audio_quality_measurement module.
diff --git a/src/antlion_contrib/test_utils/bt/A2dpBaseTest.py b/src/antlion/test_utils/bt/A2dpBaseTest.py similarity index 96% rename from src/antlion_contrib/test_utils/bt/A2dpBaseTest.py rename to src/antlion/test_utils/bt/A2dpBaseTest.py index d0297f1..1b8d4e0 100644 --- a/src/antlion_contrib/test_utils/bt/A2dpBaseTest.py +++ b/src/antlion/test_utils/bt/A2dpBaseTest.py
@@ -20,16 +20,16 @@ import shutil import time -import antlion_contrib.test_utils.coex.audio_test_utils as atu -import antlion_contrib.test_utils.bt.bt_test_utils as btutils +import antlion.test_utils.coex.audio_test_utils as atu +import antlion.test_utils.bt.bt_test_utils as btutils from antlion import asserts -from antlion_contrib.test_utils.bt import bt_constants -from antlion_contrib.test_utils.bt import BtEnum -from antlion_contrib.test_utils.abstract_devices.bluetooth_handsfree_abstract_device import BluetoothHandsfreeAbstractDeviceFactory as bt_factory -from antlion_contrib.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest -from antlion_contrib.test_utils.bt.ble_performance_test_utils import plot_graph -from antlion_contrib.test_utils.power.PowerBTBaseTest import ramp_attenuation -from antlion_contrib.test_utils.bt.loggers import bluetooth_metric_logger as log +from antlion.test_utils.bt import bt_constants +from antlion.test_utils.bt import BtEnum +from antlion.test_utils.abstract_devices.bluetooth_handsfree_abstract_device import BluetoothHandsfreeAbstractDeviceFactory as bt_factory +from antlion.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest +from antlion.test_utils.bt.ble_performance_test_utils import plot_graph +from antlion.test_utils.power.PowerBTBaseTest import ramp_attenuation +from antlion.test_utils.bt.loggers import bluetooth_metric_logger as log from antlion.signals import TestPass, TestError PHONE_MUSIC_FILE_DIRECTORY = '/sdcard/Music'
diff --git a/src/antlion_contrib/test_utils/bt/AvrcpBaseTest.py b/src/antlion/test_utils/bt/AvrcpBaseTest.py similarity index 84% rename from src/antlion_contrib/test_utils/bt/AvrcpBaseTest.py rename to src/antlion/test_utils/bt/AvrcpBaseTest.py index 21cc5f5..d6d2007 100644 --- a/src/antlion_contrib/test_utils/bt/AvrcpBaseTest.py +++ b/src/antlion/test_utils/bt/AvrcpBaseTest.py
@@ -19,16 +19,16 @@ import queue from antlion import asserts -from antlion_contrib.test_utils.abstract_devices.bluetooth_handsfree_abstract_device import BluetoothHandsfreeAbstractDeviceFactory as Factory -from antlion_contrib.test_utils.bt.simulated_carkit_device import SimulatedCarkitDevice -from antlion_contrib.test_utils.bt.bt_test_utils import connect_phone_to_headset -from antlion_contrib.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest -from antlion_contrib.test_utils.car.car_media_utils import EVENT_PLAY_RECEIVED -from antlion_contrib.test_utils.car.car_media_utils import EVENT_PAUSE_RECEIVED -from antlion_contrib.test_utils.car.car_media_utils import EVENT_SKIP_NEXT_RECEIVED -from antlion_contrib.test_utils.car.car_media_utils import EVENT_SKIP_PREV_RECEIVED -from antlion_contrib.test_utils.car.car_media_utils import CMD_MEDIA_PLAY -from antlion_contrib.test_utils.car.car_media_utils import CMD_MEDIA_PAUSE +from antlion.test_utils.abstract_devices.bluetooth_handsfree_abstract_device import BluetoothHandsfreeAbstractDeviceFactory as Factory +from antlion.test_utils.bt.simulated_carkit_device import SimulatedCarkitDevice +from antlion.test_utils.bt.bt_test_utils import connect_phone_to_headset +from antlion.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest +from antlion.test_utils.car.car_media_utils import EVENT_PLAY_RECEIVED +from antlion.test_utils.car.car_media_utils import EVENT_PAUSE_RECEIVED +from antlion.test_utils.car.car_media_utils import EVENT_SKIP_NEXT_RECEIVED +from antlion.test_utils.car.car_media_utils import EVENT_SKIP_PREV_RECEIVED +from antlion.test_utils.car.car_media_utils import CMD_MEDIA_PLAY +from antlion.test_utils.car.car_media_utils import CMD_MEDIA_PAUSE ADB_FILE_EXISTS = 'test -e %s && echo True' DEFAULT_TIMEOUT = 5
diff --git a/src/antlion_contrib/test_utils/bt/BleEnum.py b/src/antlion/test_utils/bt/BleEnum.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/BleEnum.py rename to src/antlion/test_utils/bt/BleEnum.py
diff --git a/src/antlion_contrib/test_utils/bt/BluetoothBaseTest.py b/src/antlion/test_utils/bt/BluetoothBaseTest.py similarity index 90% rename from src/antlion_contrib/test_utils/bt/BluetoothBaseTest.py rename to src/antlion/test_utils/bt/BluetoothBaseTest.py index 9ddc0f3..4730bc9 100644 --- a/src/antlion_contrib/test_utils/bt/BluetoothBaseTest.py +++ b/src/antlion/test_utils/bt/BluetoothBaseTest.py
@@ -25,17 +25,17 @@ from antlion.signals import TestSignal from antlion.utils import dump_string_to_file -from antlion_contrib.test_utils.bt.bt_test_utils import get_device_selector_dictionary -from antlion_contrib.test_utils.bt.bt_test_utils import reset_bluetooth -from antlion_contrib.test_utils.bt.bt_test_utils import setup_multiple_devices_for_bt_test -from antlion_contrib.test_utils.bt.bt_test_utils import take_btsnoop_logs -from antlion_contrib.test_utils.bt.ble_lib import BleLib -from antlion_contrib.test_utils.bt.bta_lib import BtaLib -from antlion_contrib.test_utils.bt.config_lib import ConfigLib -from antlion_contrib.test_utils.bt.gattc_lib import GattClientLib -from antlion_contrib.test_utils.bt.gatts_lib import GattServerLib -from antlion_contrib.test_utils.bt.rfcomm_lib import RfcommLib -from antlion_contrib.test_utils.bt.shell_commands_lib import ShellCommands +from antlion.test_utils.bt.bt_test_utils import get_device_selector_dictionary +from antlion.test_utils.bt.bt_test_utils import reset_bluetooth +from antlion.test_utils.bt.bt_test_utils import setup_multiple_devices_for_bt_test +from antlion.test_utils.bt.bt_test_utils import take_btsnoop_logs +from antlion.test_utils.bt.ble_lib import BleLib +from antlion.test_utils.bt.bta_lib import BtaLib +from antlion.test_utils.bt.config_lib import ConfigLib +from antlion.test_utils.bt.gattc_lib import GattClientLib +from antlion.test_utils.bt.gatts_lib import GattServerLib +from antlion.test_utils.bt.rfcomm_lib import RfcommLib +from antlion.test_utils.bt.shell_commands_lib import ShellCommands class BluetoothBaseTest(BaseTestClass):
diff --git a/src/antlion_contrib/test_utils/bt/BluetoothCarHfpBaseTest.py b/src/antlion/test_utils/bt/BluetoothCarHfpBaseTest.py similarity index 94% rename from src/antlion_contrib/test_utils/bt/BluetoothCarHfpBaseTest.py rename to src/antlion/test_utils/bt/BluetoothCarHfpBaseTest.py index f43e35f..11e4c1b 100644 --- a/src/antlion_contrib/test_utils/bt/BluetoothCarHfpBaseTest.py +++ b/src/antlion/test_utils/bt/BluetoothCarHfpBaseTest.py
@@ -22,8 +22,8 @@ import time from antlion.keys import Config -from antlion_contrib.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest -from antlion_contrib.test_utils.bt.bt_test_utils import pair_pri_to_sec +from antlion.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest +from antlion.test_utils.bt.bt_test_utils import pair_pri_to_sec class BluetoothCarHfpBaseTest(BluetoothBaseTest):
diff --git a/src/antlion_contrib/test_utils/bt/BtEnum.py b/src/antlion/test_utils/bt/BtEnum.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/BtEnum.py rename to src/antlion/test_utils/bt/BtEnum.py
diff --git a/src/antlion_contrib/test_utils/bt/BtFunhausBaseTest.py b/src/antlion/test_utils/bt/BtFunhausBaseTest.py similarity index 97% rename from src/antlion_contrib/test_utils/bt/BtFunhausBaseTest.py rename to src/antlion/test_utils/bt/BtFunhausBaseTest.py index 9ea3beb..6975685 100644 --- a/src/antlion_contrib/test_utils/bt/BtFunhausBaseTest.py +++ b/src/antlion/test_utils/bt/BtFunhausBaseTest.py
@@ -17,8 +17,8 @@ Test script to automate the Bluetooth Audio Funhaus. """ from antlion.keys import Config -from antlion_contrib.test_utils.bt.BtMetricsBaseTest import BtMetricsBaseTest -from antlion_contrib.test_utils.bt.bt_test_utils import bluetooth_enabled_check +from antlion.test_utils.bt.BtMetricsBaseTest import BtMetricsBaseTest +from antlion.test_utils.bt.bt_test_utils import bluetooth_enabled_check from antlion.utils import bypass_setup_wizard from antlion.utils import exe_cmd from antlion.utils import sync_device_time
diff --git a/src/antlion_contrib/test_utils/bt/BtInterferenceBaseTest.py b/src/antlion/test_utils/bt/BtInterferenceBaseTest.py similarity index 95% rename from src/antlion_contrib/test_utils/bt/BtInterferenceBaseTest.py rename to src/antlion/test_utils/bt/BtInterferenceBaseTest.py index e7e4352..181a0da 100644 --- a/src/antlion_contrib/test_utils/bt/BtInterferenceBaseTest.py +++ b/src/antlion/test_utils/bt/BtInterferenceBaseTest.py
@@ -22,14 +22,14 @@ import logging import antlion.controllers.iperf_client as ipc import antlion.controllers.iperf_server as ipf -import antlion_contrib.test_utils.bt.bt_test_utils as btutils +import antlion.test_utils.bt.bt_test_utils as btutils from antlion import asserts -from antlion_contrib.test_utils.bt.A2dpBaseTest import A2dpBaseTest -from antlion_contrib.test_utils.bt.loggers import bluetooth_metric_logger as log -from antlion_contrib.test_utils.wifi import wifi_performance_test_utils as wpeutils -from antlion_contrib.test_utils.wifi import wifi_power_test_utils as wputils -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils -from antlion_contrib.test_utils.power.PowerBaseTest import ObjNew +from antlion.test_utils.bt.A2dpBaseTest import A2dpBaseTest +from antlion.test_utils.bt.loggers import bluetooth_metric_logger as log +from antlion.test_utils.wifi import wifi_performance_test_utils as wpeutils +from antlion.test_utils.wifi import wifi_power_test_utils as wputils +from antlion.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.power.PowerBaseTest import ObjNew MAX_ATTENUATION = 95 TEMP_FILE = '/sdcard/Download/tmp.log'
diff --git a/src/antlion_contrib/test_utils/bt/BtMetricsBaseTest.py b/src/antlion/test_utils/bt/BtMetricsBaseTest.py similarity index 91% rename from src/antlion_contrib/test_utils/bt/BtMetricsBaseTest.py rename to src/antlion/test_utils/bt/BtMetricsBaseTest.py index adc10cd..8abd13d 100644 --- a/src/antlion_contrib/test_utils/bt/BtMetricsBaseTest.py +++ b/src/antlion/test_utils/bt/BtMetricsBaseTest.py
@@ -11,7 +11,7 @@ # 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. -from antlion_contrib.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest +from antlion.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest class BtMetricsBaseTest(BluetoothBaseTest):
diff --git a/src/antlion_contrib/test_utils/bt/BtSarBaseTest.py b/src/antlion/test_utils/bt/BtSarBaseTest.py similarity index 97% rename from src/antlion_contrib/test_utils/bt/BtSarBaseTest.py rename to src/antlion/test_utils/bt/BtSarBaseTest.py index 02cd24f..eb06837 100644 --- a/src/antlion_contrib/test_utils/bt/BtSarBaseTest.py +++ b/src/antlion/test_utils/bt/BtSarBaseTest.py
@@ -24,12 +24,12 @@ from antlion.libs.proc import job from antlion.base_test import BaseTestClass -from antlion_contrib.test_utils.bt.bt_power_test_utils import MediaControl -from antlion_contrib.test_utils.bt.ble_performance_test_utils import run_ble_throughput_and_read_rssi -from antlion_contrib.test_utils.abstract_devices.bluetooth_handsfree_abstract_device import BluetoothHandsfreeAbstractDeviceFactory as bt_factory +from antlion.test_utils.bt.bt_power_test_utils import MediaControl +from antlion.test_utils.bt.ble_performance_test_utils import run_ble_throughput_and_read_rssi +from antlion.test_utils.abstract_devices.bluetooth_handsfree_abstract_device import BluetoothHandsfreeAbstractDeviceFactory as bt_factory -import antlion_contrib.test_utils.bt.bt_test_utils as bt_utils -import antlion_contrib.test_utils.wifi.wifi_performance_test_utils as wifi_utils +import antlion.test_utils.bt.bt_test_utils as bt_utils +import antlion.test_utils.wifi.wifi_performance_test_utils as wifi_utils PHONE_MUSIC_FILE_DIRECTORY = '/sdcard/Music'
diff --git a/src/antlion_contrib/test_utils/bt/GattConnectedBaseTest.py b/src/antlion/test_utils/bt/GattConnectedBaseTest.py similarity index 88% rename from src/antlion_contrib/test_utils/bt/GattConnectedBaseTest.py rename to src/antlion/test_utils/bt/GattConnectedBaseTest.py index c0d225f..c131530 100644 --- a/src/antlion_contrib/test_utils/bt/GattConnectedBaseTest.py +++ b/src/antlion/test_utils/bt/GattConnectedBaseTest.py
@@ -20,20 +20,20 @@ from queue import Empty -from antlion_contrib.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic -from antlion_contrib.test_utils.bt.bt_constants import gatt_descriptor -from antlion_contrib.test_utils.bt.bt_constants import gatt_service_types -from antlion_contrib.test_utils.bt.bt_constants import gatt_event -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_err -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_strings -from antlion_contrib.test_utils.bt.bt_constants import gatt_mtu_size -from antlion_contrib.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import orchestrate_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_characteristics -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_descriptors -from antlion_contrib.test_utils.bt.bt_constants import gatt_char_desc_uuids -from antlion_contrib.test_utils.bt.bt_constants import bt_default_timeout +from antlion.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest +from antlion.test_utils.bt.bt_constants import gatt_characteristic +from antlion.test_utils.bt.bt_constants import gatt_descriptor +from antlion.test_utils.bt.bt_constants import gatt_service_types +from antlion.test_utils.bt.bt_constants import gatt_event +from antlion.test_utils.bt.bt_constants import gatt_cb_err +from antlion.test_utils.bt.bt_constants import gatt_cb_strings +from antlion.test_utils.bt.bt_constants import gatt_mtu_size +from antlion.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import orchestrate_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_characteristics +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_descriptors +from antlion.test_utils.bt.bt_constants import gatt_char_desc_uuids +from antlion.test_utils.bt.bt_constants import bt_default_timeout class GattConnectedBaseTest(BluetoothBaseTest):
diff --git a/src/antlion_contrib/test_utils/bt/GattEnum.py b/src/antlion/test_utils/bt/GattEnum.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/GattEnum.py rename to src/antlion/test_utils/bt/GattEnum.py
diff --git a/src/antlion_contrib/test_utils/bt/__init__.py b/src/antlion/test_utils/bt/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/__init__.py rename to src/antlion/test_utils/bt/__init__.py
diff --git a/src/antlion_contrib/test_utils/bt/ble_lib.py b/src/antlion/test_utils/bt/ble_lib.py similarity index 92% rename from src/antlion_contrib/test_utils/bt/ble_lib.py rename to src/antlion/test_utils/bt/ble_lib.py index 725ee34..ee2cb1c 100644 --- a/src/antlion_contrib/test_utils/bt/ble_lib.py +++ b/src/antlion/test_utils/bt/ble_lib.py
@@ -17,15 +17,15 @@ Ble libraries """ -from antlion_contrib.test_utils.bt.bt_constants import ble_advertise_settings_modes -from antlion_contrib.test_utils.bt.bt_constants import ble_advertise_settings_tx_powers -from antlion_contrib.test_utils.bt.bt_constants import ble_scan_settings_modes -from antlion_contrib.test_utils.bt.bt_constants import small_timeout -from antlion_contrib.test_utils.bt.bt_constants import adv_fail -from antlion_contrib.test_utils.bt.bt_constants import adv_succ -from antlion_contrib.test_utils.bt.bt_constants import advertising_set_on_own_address_read -from antlion_contrib.test_utils.bt.bt_constants import advertising_set_started -from antlion_contrib.test_utils.bt.bt_test_utils import generate_ble_advertise_objects +from antlion.test_utils.bt.bt_constants import ble_advertise_settings_modes +from antlion.test_utils.bt.bt_constants import ble_advertise_settings_tx_powers +from antlion.test_utils.bt.bt_constants import ble_scan_settings_modes +from antlion.test_utils.bt.bt_constants import small_timeout +from antlion.test_utils.bt.bt_constants import adv_fail +from antlion.test_utils.bt.bt_constants import adv_succ +from antlion.test_utils.bt.bt_constants import advertising_set_on_own_address_read +from antlion.test_utils.bt.bt_constants import advertising_set_started +from antlion.test_utils.bt.bt_test_utils import generate_ble_advertise_objects import time
diff --git a/src/antlion_contrib/test_utils/bt/ble_performance_test_utils.py b/src/antlion/test_utils/bt/ble_performance_test_utils.py similarity index 91% rename from src/antlion_contrib/test_utils/bt/ble_performance_test_utils.py rename to src/antlion/test_utils/bt/ble_performance_test_utils.py index b40704d..29055f6 100644 --- a/src/antlion_contrib/test_utils/bt/ble_performance_test_utils.py +++ b/src/antlion/test_utils/bt/ble_performance_test_utils.py
@@ -19,21 +19,21 @@ import datetime import statistics import os -from antlion_contrib.test_utils.bt.bt_constants import advertising_set_started -import antlion_contrib.test_utils.wifi.wifi_performance_test_utils.bokeh_figure as bokeh_figure -from antlion_contrib.test_utils.bt.bt_constants import ble_scan_settings_phys -from antlion_contrib.test_utils.bt.bt_constants import ble_scan_settings_modes -from antlion_contrib.test_utils.bt.bt_gatt_utils import close_gatt_client -from antlion_contrib.test_utils.bt.bt_coc_test_utils import do_multi_connection_throughput -from antlion_contrib.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection +from antlion.test_utils.bt.bt_constants import advertising_set_started +import antlion.test_utils.wifi.wifi_performance_test_utils.bokeh_figure as bokeh_figure +from antlion.test_utils.bt.bt_constants import ble_scan_settings_phys +from antlion.test_utils.bt.bt_constants import ble_scan_settings_modes +from antlion.test_utils.bt.bt_gatt_utils import close_gatt_client +from antlion.test_utils.bt.bt_coc_test_utils import do_multi_connection_throughput +from antlion.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection from queue import Empty -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_err -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_strings -from antlion_contrib.test_utils.bt.bt_constants import l2cap_coc_header_size -from antlion_contrib.test_utils.bt.bt_gatt_utils import GattTestUtilsError -from antlion_contrib.test_utils.bt.bt_test_utils import generate_ble_scan_objects -from antlion_contrib.test_utils.bt.bt_coc_test_utils import orchestrate_coc_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import orchestrate_gatt_connection +from antlion.test_utils.bt.bt_constants import gatt_cb_err +from antlion.test_utils.bt.bt_constants import gatt_cb_strings +from antlion.test_utils.bt.bt_constants import l2cap_coc_header_size +from antlion.test_utils.bt.bt_gatt_utils import GattTestUtilsError +from antlion.test_utils.bt.bt_test_utils import generate_ble_scan_objects +from antlion.test_utils.bt.bt_coc_test_utils import orchestrate_coc_connection +from antlion.test_utils.bt.bt_gatt_utils import orchestrate_gatt_connection from concurrent.futures import ThreadPoolExecutor default_event_timeout = 10
diff --git a/src/antlion_contrib/test_utils/bt/bt_coc_test_utils.py b/src/antlion/test_utils/bt/bt_coc_test_utils.py similarity index 91% rename from src/antlion_contrib/test_utils/bt/bt_coc_test_utils.py rename to src/antlion/test_utils/bt/bt_coc_test_utils.py index cb25124..6da6350 100644 --- a/src/antlion_contrib/test_utils/bt/bt_coc_test_utils.py +++ b/src/antlion/test_utils/bt/bt_coc_test_utils.py
@@ -18,19 +18,19 @@ import time from antlion import utils -from antlion_contrib.test_utils.bt.bt_constants import bt_default_timeout -from antlion_contrib.test_utils.bt.bt_constants import default_bluetooth_socket_timeout_ms -from antlion_contrib.test_utils.bt.bt_constants import default_le_connection_interval_ms -from antlion_contrib.test_utils.bt.bt_constants import default_le_data_length -from antlion_contrib.test_utils.bt.bt_constants import gatt_phy -from antlion_contrib.test_utils.bt.bt_constants import gatt_transport -from antlion_contrib.test_utils.bt.bt_constants import l2cap_coc_header_size -from antlion_contrib.test_utils.bt.bt_constants import le_connection_event_time_step_ms -from antlion_contrib.test_utils.bt.bt_constants import le_connection_interval_time_step_ms -from antlion_contrib.test_utils.bt.bt_constants import le_default_supervision_timeout -from antlion_contrib.test_utils.bt.bt_test_utils import get_mac_address_of_generic_advertisement -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection +from antlion.test_utils.bt.bt_constants import bt_default_timeout +from antlion.test_utils.bt.bt_constants import default_bluetooth_socket_timeout_ms +from antlion.test_utils.bt.bt_constants import default_le_connection_interval_ms +from antlion.test_utils.bt.bt_constants import default_le_data_length +from antlion.test_utils.bt.bt_constants import gatt_phy +from antlion.test_utils.bt.bt_constants import gatt_transport +from antlion.test_utils.bt.bt_constants import l2cap_coc_header_size +from antlion.test_utils.bt.bt_constants import le_connection_event_time_step_ms +from antlion.test_utils.bt.bt_constants import le_connection_interval_time_step_ms +from antlion.test_utils.bt.bt_constants import le_default_supervision_timeout +from antlion.test_utils.bt.bt_test_utils import get_mac_address_of_generic_advertisement +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection log = logging
diff --git a/src/antlion_contrib/test_utils/bt/bt_constants.py b/src/antlion/test_utils/bt/bt_constants.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/bt_constants.py rename to src/antlion/test_utils/bt/bt_constants.py
diff --git a/src/antlion_contrib/test_utils/bt/bt_contacts_utils.py b/src/antlion/test_utils/bt/bt_contacts_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/bt_contacts_utils.py rename to src/antlion/test_utils/bt/bt_contacts_utils.py
diff --git a/src/antlion_contrib/test_utils/bt/bt_factory.py b/src/antlion/test_utils/bt/bt_factory.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/bt_factory.py rename to src/antlion/test_utils/bt/bt_factory.py
diff --git a/src/antlion_contrib/test_utils/bt/bt_gatt_utils.py b/src/antlion/test_utils/bt/bt_gatt_utils.py similarity index 95% rename from src/antlion_contrib/test_utils/bt/bt_gatt_utils.py rename to src/antlion/test_utils/bt/bt_gatt_utils.py index 8f271f4..0347d26 100644 --- a/src/antlion_contrib/test_utils/bt/bt_gatt_utils.py +++ b/src/antlion/test_utils/bt/bt_gatt_utils.py
@@ -16,16 +16,16 @@ import logging -from antlion_contrib.test_utils.bt.bt_test_utils import BtTestUtilsError -from antlion_contrib.test_utils.bt.bt_test_utils import get_mac_address_of_generic_advertisement -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_err -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_strings -from antlion_contrib.test_utils.bt.bt_constants import gatt_connection_state -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic -from antlion_contrib.test_utils.bt.bt_constants import gatt_descriptor -from antlion_contrib.test_utils.bt.bt_constants import gatt_phy_mask -from antlion_contrib.test_utils.bt.bt_constants import gatt_service_types -from antlion_contrib.test_utils.bt.bt_constants import gatt_transport +from antlion.test_utils.bt.bt_test_utils import BtTestUtilsError +from antlion.test_utils.bt.bt_test_utils import get_mac_address_of_generic_advertisement +from antlion.test_utils.bt.bt_constants import gatt_cb_err +from antlion.test_utils.bt.bt_constants import gatt_cb_strings +from antlion.test_utils.bt.bt_constants import gatt_connection_state +from antlion.test_utils.bt.bt_constants import gatt_characteristic +from antlion.test_utils.bt.bt_constants import gatt_descriptor +from antlion.test_utils.bt.bt_constants import gatt_phy_mask +from antlion.test_utils.bt.bt_constants import gatt_service_types +from antlion.test_utils.bt.bt_constants import gatt_transport import pprint from queue import Empty
diff --git a/src/antlion_contrib/test_utils/bt/bt_implementations/bt_stub.py b/src/antlion/test_utils/bt/bt_implementations/bt_stub.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/bt_implementations/bt_stub.py rename to src/antlion/test_utils/bt/bt_implementations/bt_stub.py
diff --git a/src/antlion_contrib/test_utils/bt/bt_metrics_utils.py b/src/antlion/test_utils/bt/bt_metrics_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/bt_metrics_utils.py rename to src/antlion/test_utils/bt/bt_metrics_utils.py
diff --git a/src/antlion_contrib/test_utils/bt/bt_power_test_utils.py b/src/antlion/test_utils/bt/bt_power_test_utils.py similarity index 97% rename from src/antlion_contrib/test_utils/bt/bt_power_test_utils.py rename to src/antlion/test_utils/bt/bt_power_test_utils.py index aa661af..f76bd6b 100644 --- a/src/antlion_contrib/test_utils/bt/bt_power_test_utils.py +++ b/src/antlion/test_utils/bt/bt_power_test_utils.py
@@ -16,8 +16,8 @@ import logging import time -import antlion_contrib.test_utils.bt.BleEnum as bleenum -import antlion_contrib.test_utils.instrumentation.device.command.instrumentation_command_builder as icb +import antlion.test_utils.bt.BleEnum as bleenum +import antlion.test_utils.instrumentation.device.command.instrumentation_command_builder as icb BLE_LOCATION_SCAN_ENABLE = 'settings put global ble_scan_always_enabled 1' BLE_LOCATION_SCAN_DISABLE = 'settings put global ble_scan_always_enabled 0'
diff --git a/src/antlion_contrib/test_utils/bt/bt_test_utils.py b/src/antlion/test_utils/bt/bt_test_utils.py similarity index 96% rename from src/antlion_contrib/test_utils/bt/bt_test_utils.py rename to src/antlion/test_utils/bt/bt_test_utils.py index 73ae6a1..2152c82 100644 --- a/src/antlion_contrib/test_utils/bt/bt_test_utils.py +++ b/src/antlion/test_utils/bt/bt_test_utils.py
@@ -28,37 +28,37 @@ from queue import Empty from subprocess import call from antlion import asserts -from antlion_contrib.test_utils.bt.bt_constants import adv_fail -from antlion_contrib.test_utils.bt.bt_constants import adv_succ -from antlion_contrib.test_utils.bt.bt_constants import batch_scan_not_supported_list -from antlion_contrib.test_utils.bt.bt_constants import batch_scan_result -from antlion_contrib.test_utils.bt.bt_constants import bits_per_samples -from antlion_contrib.test_utils.bt.bt_constants import ble_advertise_settings_modes -from antlion_contrib.test_utils.bt.bt_constants import ble_advertise_settings_tx_powers -from antlion_contrib.test_utils.bt.bt_constants import bluetooth_a2dp_codec_config_changed -from antlion_contrib.test_utils.bt.bt_constants import bluetooth_off -from antlion_contrib.test_utils.bt.bt_constants import bluetooth_on -from antlion_contrib.test_utils.bt.bt_constants import \ +from antlion.test_utils.bt.bt_constants import adv_fail +from antlion.test_utils.bt.bt_constants import adv_succ +from antlion.test_utils.bt.bt_constants import batch_scan_not_supported_list +from antlion.test_utils.bt.bt_constants import batch_scan_result +from antlion.test_utils.bt.bt_constants import bits_per_samples +from antlion.test_utils.bt.bt_constants import ble_advertise_settings_modes +from antlion.test_utils.bt.bt_constants import ble_advertise_settings_tx_powers +from antlion.test_utils.bt.bt_constants import bluetooth_a2dp_codec_config_changed +from antlion.test_utils.bt.bt_constants import bluetooth_off +from antlion.test_utils.bt.bt_constants import bluetooth_on +from antlion.test_utils.bt.bt_constants import \ bluetooth_profile_connection_state_changed -from antlion_contrib.test_utils.bt.bt_constants import bluetooth_socket_conn_test_uuid -from antlion_contrib.test_utils.bt.bt_constants import bt_default_timeout -from antlion_contrib.test_utils.bt.bt_constants import bt_profile_constants -from antlion_contrib.test_utils.bt.bt_constants import bt_profile_states -from antlion_contrib.test_utils.bt.bt_constants import bt_rfcomm_uuids -from antlion_contrib.test_utils.bt.bt_constants import bt_scan_mode_types -from antlion_contrib.test_utils.bt.bt_constants import btsnoop_last_log_path_on_device -from antlion_contrib.test_utils.bt.bt_constants import btsnoop_log_path_on_device -from antlion_contrib.test_utils.bt.bt_constants import channel_modes -from antlion_contrib.test_utils.bt.bt_constants import codec_types -from antlion_contrib.test_utils.bt.bt_constants import default_bluetooth_socket_timeout_ms -from antlion_contrib.test_utils.bt.bt_constants import default_rfcomm_timeout_ms -from antlion_contrib.test_utils.bt.bt_constants import hid_id_keyboard -from antlion_contrib.test_utils.bt.bt_constants import pairing_variant_passkey_confirmation -from antlion_contrib.test_utils.bt.bt_constants import pan_connect_timeout -from antlion_contrib.test_utils.bt.bt_constants import sample_rates -from antlion_contrib.test_utils.bt.bt_constants import scan_result -from antlion_contrib.test_utils.bt.bt_constants import sig_uuid_constants -from antlion_contrib.test_utils.bt.bt_constants import small_timeout +from antlion.test_utils.bt.bt_constants import bluetooth_socket_conn_test_uuid +from antlion.test_utils.bt.bt_constants import bt_default_timeout +from antlion.test_utils.bt.bt_constants import bt_profile_constants +from antlion.test_utils.bt.bt_constants import bt_profile_states +from antlion.test_utils.bt.bt_constants import bt_rfcomm_uuids +from antlion.test_utils.bt.bt_constants import bt_scan_mode_types +from antlion.test_utils.bt.bt_constants import btsnoop_last_log_path_on_device +from antlion.test_utils.bt.bt_constants import btsnoop_log_path_on_device +from antlion.test_utils.bt.bt_constants import channel_modes +from antlion.test_utils.bt.bt_constants import codec_types +from antlion.test_utils.bt.bt_constants import default_bluetooth_socket_timeout_ms +from antlion.test_utils.bt.bt_constants import default_rfcomm_timeout_ms +from antlion.test_utils.bt.bt_constants import hid_id_keyboard +from antlion.test_utils.bt.bt_constants import pairing_variant_passkey_confirmation +from antlion.test_utils.bt.bt_constants import pan_connect_timeout +from antlion.test_utils.bt.bt_constants import sample_rates +from antlion.test_utils.bt.bt_constants import scan_result +from antlion.test_utils.bt.bt_constants import sig_uuid_constants +from antlion.test_utils.bt.bt_constants import small_timeout from antlion.utils import exe_cmd from antlion import utils
diff --git a/src/antlion_contrib/test_utils/bt/bta_lib.py b/src/antlion/test_utils/bt/bta_lib.py similarity index 95% rename from src/antlion_contrib/test_utils/bt/bta_lib.py rename to src/antlion/test_utils/bt/bta_lib.py index dfa75c6..60e0980 100644 --- a/src/antlion_contrib/test_utils/bt/bta_lib.py +++ b/src/antlion/test_utils/bt/bta_lib.py
@@ -17,8 +17,8 @@ Bluetooth adapter libraries """ -from antlion_contrib.test_utils.bt.bt_constants import bt_scan_mode_types -from antlion_contrib.test_utils.bt.bt_test_utils import set_bt_scan_mode +from antlion.test_utils.bt.bt_constants import bt_scan_mode_types +from antlion.test_utils.bt.bt_test_utils import set_bt_scan_mode import pprint
diff --git a/src/antlion_contrib/test_utils/bt/config_lib.py b/src/antlion/test_utils/bt/config_lib.py similarity index 85% rename from src/antlion_contrib/test_utils/bt/config_lib.py rename to src/antlion/test_utils/bt/config_lib.py index a49a398..c1db8f5 100644 --- a/src/antlion_contrib/test_utils/bt/config_lib.py +++ b/src/antlion/test_utils/bt/config_lib.py
@@ -17,10 +17,10 @@ Bluetooth Config Pusher """ -from antlion_contrib.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_mtu -from antlion_contrib.test_utils.bt.bt_gatt_utils import log_gatt_server_uuids +from antlion.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_mtu +from antlion.test_utils.bt.bt_gatt_utils import log_gatt_server_uuids import os
diff --git a/src/antlion_contrib/test_utils/bt/configs/bt_stack.conf b/src/antlion/test_utils/bt/configs/bt_stack.conf similarity index 100% rename from src/antlion_contrib/test_utils/bt/configs/bt_stack.conf rename to src/antlion/test_utils/bt/configs/bt_stack.conf
diff --git a/src/antlion_contrib/test_utils/bt/configs/dis_mitm_bt_stack.conf b/src/antlion/test_utils/bt/configs/dis_mitm_bt_stack.conf similarity index 100% rename from src/antlion_contrib/test_utils/bt/configs/dis_mitm_bt_stack.conf rename to src/antlion/test_utils/bt/configs/dis_mitm_bt_stack.conf
diff --git a/src/antlion_contrib/test_utils/bt/configs/non_bond_bt_stack.conf b/src/antlion/test_utils/bt/configs/non_bond_bt_stack.conf similarity index 100% rename from src/antlion_contrib/test_utils/bt/configs/non_bond_bt_stack.conf rename to src/antlion/test_utils/bt/configs/non_bond_bt_stack.conf
diff --git a/src/antlion_contrib/test_utils/bt/gatt_test_database.py b/src/antlion/test_utils/bt/gatt_test_database.py similarity index 99% rename from src/antlion_contrib/test_utils/bt/gatt_test_database.py rename to src/antlion/test_utils/bt/gatt_test_database.py index 666ee96..6c452cd 100644 --- a/src/antlion_contrib/test_utils/bt/gatt_test_database.py +++ b/src/antlion/test_utils/bt/gatt_test_database.py
@@ -14,12 +14,12 @@ # See the License for the specific language governing permissions and # limitations under the License. -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic -from antlion_contrib.test_utils.bt.bt_constants import gatt_descriptor -from antlion_contrib.test_utils.bt.bt_constants import gatt_service_types -from antlion_contrib.test_utils.bt.bt_constants import gatt_char_types -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic_value_format -from antlion_contrib.test_utils.bt.bt_constants import gatt_char_desc_uuids +from antlion.test_utils.bt.bt_constants import gatt_characteristic +from antlion.test_utils.bt.bt_constants import gatt_descriptor +from antlion.test_utils.bt.bt_constants import gatt_service_types +from antlion.test_utils.bt.bt_constants import gatt_char_types +from antlion.test_utils.bt.bt_constants import gatt_characteristic_value_format +from antlion.test_utils.bt.bt_constants import gatt_char_desc_uuids STRING_512BYTES = ''' 11111222223333344444555556666677777888889999900000
diff --git a/src/antlion_contrib/test_utils/bt/gattc_lib.py b/src/antlion/test_utils/bt/gattc_lib.py similarity index 95% rename from src/antlion_contrib/test_utils/bt/gattc_lib.py rename to src/antlion/test_utils/bt/gattc_lib.py index 83f0cca..efd0c4a 100644 --- a/src/antlion_contrib/test_utils/bt/gattc_lib.py +++ b/src/antlion/test_utils/bt/gattc_lib.py
@@ -17,20 +17,20 @@ GATT Client Libraries """ -from antlion_contrib.test_utils.bt.bt_constants import default_le_connection_interval_ms -from antlion_contrib.test_utils.bt.bt_constants import default_bluetooth_socket_timeout_ms -from antlion_contrib.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_connection -from antlion_contrib.test_utils.bt.bt_gatt_utils import setup_gatt_mtu -from antlion_contrib.test_utils.bt.bt_constants import ble_scan_settings_modes -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_strings -from antlion_contrib.test_utils.bt.bt_constants import gatt_char_desc_uuids -from antlion_contrib.test_utils.bt.bt_constants import gatt_descriptor -from antlion_contrib.test_utils.bt.bt_constants import gatt_transport -from antlion_contrib.test_utils.bt.bt_constants import le_default_supervision_timeout -from antlion_contrib.test_utils.bt.bt_constants import le_connection_interval_time_step_ms -from antlion_contrib.test_utils.bt.bt_constants import scan_result -from antlion_contrib.test_utils.bt.bt_gatt_utils import log_gatt_server_uuids +from antlion.test_utils.bt.bt_constants import default_le_connection_interval_ms +from antlion.test_utils.bt.bt_constants import default_bluetooth_socket_timeout_ms +from antlion.test_utils.bt.bt_gatt_utils import disconnect_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_connection +from antlion.test_utils.bt.bt_gatt_utils import setup_gatt_mtu +from antlion.test_utils.bt.bt_constants import ble_scan_settings_modes +from antlion.test_utils.bt.bt_constants import gatt_cb_strings +from antlion.test_utils.bt.bt_constants import gatt_char_desc_uuids +from antlion.test_utils.bt.bt_constants import gatt_descriptor +from antlion.test_utils.bt.bt_constants import gatt_transport +from antlion.test_utils.bt.bt_constants import le_default_supervision_timeout +from antlion.test_utils.bt.bt_constants import le_connection_interval_time_step_ms +from antlion.test_utils.bt.bt_constants import scan_result +from antlion.test_utils.bt.bt_gatt_utils import log_gatt_server_uuids import time
diff --git a/src/antlion_contrib/test_utils/bt/gatts_lib.py b/src/antlion/test_utils/bt/gatts_lib.py similarity index 95% rename from src/antlion_contrib/test_utils/bt/gatts_lib.py rename to src/antlion/test_utils/bt/gatts_lib.py index 052d039..e7828d0 100644 --- a/src/antlion_contrib/test_utils/bt/gatts_lib.py +++ b/src/antlion/test_utils/bt/gatts_lib.py
@@ -18,16 +18,16 @@ from antlion.keys import Config from antlion.utils import rand_ascii_str -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_strings -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic_value_format -from antlion_contrib.test_utils.bt.bt_constants import gatt_cb_err -from antlion_contrib.test_utils.bt.bt_constants import gatt_transport -from antlion_contrib.test_utils.bt.bt_constants import gatt_event -from antlion_contrib.test_utils.bt.bt_constants import gatt_server_responses -from antlion_contrib.test_utils.bt.bt_constants import gatt_service_types -from antlion_contrib.test_utils.bt.bt_constants import small_timeout -from antlion_contrib.test_utils.bt.gatt_test_database import STRING_512BYTES +from antlion.test_utils.bt.bt_constants import gatt_cb_strings +from antlion.test_utils.bt.bt_constants import gatt_characteristic +from antlion.test_utils.bt.bt_constants import gatt_characteristic_value_format +from antlion.test_utils.bt.bt_constants import gatt_cb_err +from antlion.test_utils.bt.bt_constants import gatt_transport +from antlion.test_utils.bt.bt_constants import gatt_event +from antlion.test_utils.bt.bt_constants import gatt_server_responses +from antlion.test_utils.bt.bt_constants import gatt_service_types +from antlion.test_utils.bt.bt_constants import small_timeout +from antlion.test_utils.bt.gatt_test_database import STRING_512BYTES from antlion.utils import exe_cmd from math import ceil
diff --git a/src/antlion_contrib/test_utils/bt/native_bt_test_utils.py b/src/antlion/test_utils/bt/native_bt_test_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/native_bt_test_utils.py rename to src/antlion/test_utils/bt/native_bt_test_utils.py
diff --git a/src/antlion_contrib/test_utils/bt/protos/__init__.py b/src/antlion/test_utils/bt/protos/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/protos/__init__.py rename to src/antlion/test_utils/bt/protos/__init__.py
diff --git a/src/antlion_contrib/test_utils/bt/protos/bluetooth.proto b/src/antlion/test_utils/bt/protos/bluetooth.proto similarity index 100% rename from src/antlion_contrib/test_utils/bt/protos/bluetooth.proto rename to src/antlion/test_utils/bt/protos/bluetooth.proto
diff --git a/src/antlion_contrib/test_utils/bt/protos/bluetooth_pb2.py b/src/antlion/test_utils/bt/protos/bluetooth_pb2.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/protos/bluetooth_pb2.py rename to src/antlion/test_utils/bt/protos/bluetooth_pb2.py
diff --git a/src/antlion_contrib/test_utils/bt/pts/fuchsia_pts_ics_lib.py b/src/antlion/test_utils/bt/pts/fuchsia_pts_ics_lib.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/pts/fuchsia_pts_ics_lib.py rename to src/antlion/test_utils/bt/pts/fuchsia_pts_ics_lib.py
diff --git a/src/antlion_contrib/test_utils/bt/pts/fuchsia_pts_ixit_lib.py b/src/antlion/test_utils/bt/pts/fuchsia_pts_ixit_lib.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/pts/fuchsia_pts_ixit_lib.py rename to src/antlion/test_utils/bt/pts/fuchsia_pts_ixit_lib.py
diff --git a/src/antlion_contrib/test_utils/bt/pts/pts_base_class.py b/src/antlion/test_utils/bt/pts/pts_base_class.py similarity index 97% rename from src/antlion_contrib/test_utils/bt/pts/pts_base_class.py rename to src/antlion/test_utils/bt/pts/pts_base_class.py index c709edf..cee0389 100644 --- a/src/antlion_contrib/test_utils/bt/pts/pts_base_class.py +++ b/src/antlion/test_utils/bt/pts/pts_base_class.py
@@ -28,9 +28,9 @@ from antlion.controllers.bluetooth_pts_device import VERDICT_STRINGS from antlion.controllers.fuchsia_device import FuchsiaDevice from antlion.signals import TestSignal -from antlion_contrib.test_utils.abstract_devices.bluetooth_device import create_bluetooth_device -from antlion_contrib.test_utils.bt.bt_constants import gatt_transport -from antlion_contrib.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name +from antlion.test_utils.abstract_devices.bluetooth_device import create_bluetooth_device +from antlion.test_utils.bt.bt_constants import gatt_transport +from antlion.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name class PtsBaseClass(BaseTestClass):
diff --git a/src/antlion_contrib/test_utils/bt/rfcomm_lib.py b/src/antlion/test_utils/bt/rfcomm_lib.py similarity index 94% rename from src/antlion_contrib/test_utils/bt/rfcomm_lib.py rename to src/antlion/test_utils/bt/rfcomm_lib.py index 08db2fc..62d650c 100644 --- a/src/antlion_contrib/test_utils/bt/rfcomm_lib.py +++ b/src/antlion/test_utils/bt/rfcomm_lib.py
@@ -17,8 +17,8 @@ Bluetooth adapter libraries """ -from antlion_contrib.test_utils.bt.bt_constants import bt_rfcomm_uuids -from antlion_contrib.test_utils.bt.bt_test_utils import set_bt_scan_mode +from antlion.test_utils.bt.bt_constants import bt_rfcomm_uuids +from antlion.test_utils.bt.bt_test_utils import set_bt_scan_mode class RfcommLib():
diff --git a/src/antlion_contrib/test_utils/bt/shell_commands_lib.py b/src/antlion/test_utils/bt/shell_commands_lib.py similarity index 100% rename from src/antlion_contrib/test_utils/bt/shell_commands_lib.py rename to src/antlion/test_utils/bt/shell_commands_lib.py
diff --git a/src/antlion_contrib/test_utils/bt/simulated_carkit_device.py b/src/antlion/test_utils/bt/simulated_carkit_device.py similarity index 96% rename from src/antlion_contrib/test_utils/bt/simulated_carkit_device.py rename to src/antlion/test_utils/bt/simulated_carkit_device.py index c9840a9..533184e 100644 --- a/src/antlion_contrib/test_utils/bt/simulated_carkit_device.py +++ b/src/antlion/test_utils/bt/simulated_carkit_device.py
@@ -17,7 +17,7 @@ from antlion import asserts from antlion.controllers import android_device -from antlion_contrib.test_utils.bt.bt_test_utils import bluetooth_enabled_check +from antlion.test_utils.bt.bt_test_utils import bluetooth_enabled_check # TODO: This class to be deprecated for # ../acts/test_utils/abstract_devices/bluetooth_handsfree_abstract_device.py
diff --git a/src/antlion_contrib/test_utils/fuchsia/__init__.py b/src/antlion/test_utils/fuchsia/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/fuchsia/__init__.py rename to src/antlion/test_utils/fuchsia/__init__.py
diff --git a/src/antlion_contrib/test_utils/fuchsia/bt_test_utils.py b/src/antlion/test_utils/fuchsia/bt_test_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/fuchsia/bt_test_utils.py rename to src/antlion/test_utils/fuchsia/bt_test_utils.py
diff --git a/src/antlion_contrib/test_utils/fuchsia/sdp_records.py b/src/antlion/test_utils/fuchsia/sdp_records.py similarity index 98% rename from src/antlion_contrib/test_utils/fuchsia/sdp_records.py rename to src/antlion/test_utils/fuchsia/sdp_records.py index 21d4f91..84f442e 100644 --- a/src/antlion_contrib/test_utils/fuchsia/sdp_records.py +++ b/src/antlion/test_utils/fuchsia/sdp_records.py
@@ -14,8 +14,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -from antlion_contrib.test_utils.bt.bt_constants import bt_attribute_values -from antlion_contrib.test_utils.bt.bt_constants import sig_uuid_constants +from antlion.test_utils.bt.bt_constants import bt_attribute_values +from antlion.test_utils.bt.bt_constants import sig_uuid_constants BASE_UUID = sig_uuid_constants['BASE_UUID']
diff --git a/src/antlion_contrib/test_utils/fuchsia/utils.py b/src/antlion/test_utils/fuchsia/utils.py similarity index 100% rename from src/antlion_contrib/test_utils/fuchsia/utils.py rename to src/antlion/test_utils/fuchsia/utils.py
diff --git a/src/antlion_contrib/test_utils/fuchsia/wmm_test_cases.py b/src/antlion/test_utils/fuchsia/wmm_test_cases.py similarity index 100% rename from src/antlion_contrib/test_utils/fuchsia/wmm_test_cases.py rename to src/antlion/test_utils/fuchsia/wmm_test_cases.py
diff --git a/src/antlion_contrib/test_utils/net/NetstackBaseTest.py b/src/antlion/test_utils/net/NetstackBaseTest.py similarity index 100% rename from src/antlion_contrib/test_utils/net/NetstackBaseTest.py rename to src/antlion/test_utils/net/NetstackBaseTest.py
diff --git a/src/antlion_contrib/test_utils/net/__init__.py b/src/antlion/test_utils/net/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/net/__init__.py rename to src/antlion/test_utils/net/__init__.py
diff --git a/src/antlion_contrib/test_utils/net/arduino_test_utils.py b/src/antlion/test_utils/net/arduino_test_utils.py similarity index 96% rename from src/antlion_contrib/test_utils/net/arduino_test_utils.py rename to src/antlion/test_utils/net/arduino_test_utils.py index a9acc6c..45fc21a 100644 --- a/src/antlion_contrib/test_utils/net/arduino_test_utils.py +++ b/src/antlion/test_utils/net/arduino_test_utils.py
@@ -16,7 +16,7 @@ from antlion import asserts from antlion import utils -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.wifi import wifi_test_utils as wutils ARDUINO = "/root/arduino/arduino-1.8.5/arduino " CONNECT_WIFI = "/arduino/connect_wifi/connect_wifi.ino"
diff --git a/src/antlion_contrib/test_utils/net/connectivity_const.py b/src/antlion/test_utils/net/connectivity_const.py similarity index 100% rename from src/antlion_contrib/test_utils/net/connectivity_const.py rename to src/antlion/test_utils/net/connectivity_const.py
diff --git a/src/antlion_contrib/test_utils/net/connectivity_test_utils.py b/src/antlion/test_utils/net/connectivity_test_utils.py similarity index 98% rename from src/antlion_contrib/test_utils/net/connectivity_test_utils.py rename to src/antlion/test_utils/net/connectivity_test_utils.py index 92b8849..6841de9 100644 --- a/src/antlion_contrib/test_utils/net/connectivity_test_utils.py +++ b/src/antlion/test_utils/net/connectivity_test_utils.py
@@ -13,7 +13,7 @@ # limitations under the License. from antlion import asserts -from antlion_contrib.test_utils.net import connectivity_const as cconst +from antlion.test_utils.net import connectivity_const as cconst from queue import Empty def _listen_for_keepalive_event(ad, key, msg, ka_event):
diff --git a/src/antlion_contrib/test_utils/net/ipsec_test_utils.py b/src/antlion/test_utils/net/ipsec_test_utils.py similarity index 98% rename from src/antlion_contrib/test_utils/net/ipsec_test_utils.py rename to src/antlion/test_utils/net/ipsec_test_utils.py index 625b7c4..657aa7f 100644 --- a/src/antlion_contrib/test_utils/net/ipsec_test_utils.py +++ b/src/antlion/test_utils/net/ipsec_test_utils.py
@@ -16,7 +16,7 @@ import os import re -from antlion_contrib.test_utils.net import connectivity_const as cconst +from antlion.test_utils.net import connectivity_const as cconst from antlion import asserts PKTS = 5
diff --git a/src/antlion_contrib/test_utils/net/net_test_utils.py b/src/antlion/test_utils/net/net_test_utils.py similarity index 99% rename from src/antlion_contrib/test_utils/net/net_test_utils.py rename to src/antlion/test_utils/net/net_test_utils.py index 2886fcf..c4b6d0c 100644 --- a/src/antlion_contrib/test_utils/net/net_test_utils.py +++ b/src/antlion/test_utils/net/net_test_utils.py
@@ -27,7 +27,7 @@ from antlion.libs.proc import job from antlion.utils import start_standing_subprocess from antlion.utils import stop_standing_subprocess -from antlion_contrib.test_utils.net import connectivity_const as cconst +from antlion.test_utils.net import connectivity_const as cconst VPN_CONST = cconst.VpnProfile VPN_TYPE = cconst.VpnProfileType
diff --git a/src/antlion_contrib/test_utils/net/nsd_const.py b/src/antlion/test_utils/net/nsd_const.py similarity index 100% rename from src/antlion_contrib/test_utils/net/nsd_const.py rename to src/antlion/test_utils/net/nsd_const.py
diff --git a/src/antlion_contrib/test_utils/net/socket_test_utils.py b/src/antlion/test_utils/net/socket_test_utils.py similarity index 98% rename from src/antlion_contrib/test_utils/net/socket_test_utils.py rename to src/antlion/test_utils/net/socket_test_utils.py index 4bd39f5..a2d695c 100644 --- a/src/antlion_contrib/test_utils/net/socket_test_utils.py +++ b/src/antlion/test_utils/net/socket_test_utils.py
@@ -16,7 +16,7 @@ import threading import time -from antlion_contrib.test_utils.net import connectivity_const as cconst +from antlion.test_utils.net import connectivity_const as cconst from antlion import asserts MSG = "Test message "
diff --git a/src/antlion_contrib/test_utils/net/ui_utils.py b/src/antlion/test_utils/net/ui_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/net/ui_utils.py rename to src/antlion/test_utils/net/ui_utils.py
diff --git a/src/antlion_contrib/test_utils/users/__init__.py b/src/antlion/test_utils/users/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/users/__init__.py rename to src/antlion/test_utils/users/__init__.py
diff --git a/src/antlion_contrib/test_utils/users/users.py b/src/antlion/test_utils/users/users.py similarity index 100% rename from src/antlion_contrib/test_utils/users/users.py rename to src/antlion/test_utils/users/users.py
diff --git a/src/antlion_contrib/test_utils/wifi/OWNERS b/src/antlion/test_utils/wifi/OWNERS similarity index 100% rename from src/antlion_contrib/test_utils/wifi/OWNERS rename to src/antlion/test_utils/wifi/OWNERS
diff --git a/src/antlion_contrib/test_utils/wifi/RttPostFlightTest.py b/src/antlion/test_utils/wifi/RttPostFlightTest.py similarity index 87% rename from src/antlion_contrib/test_utils/wifi/RttPostFlightTest.py rename to src/antlion/test_utils/wifi/RttPostFlightTest.py index ee03ad0..16d85e2 100644 --- a/src/antlion_contrib/test_utils/wifi/RttPostFlightTest.py +++ b/src/antlion/test_utils/wifi/RttPostFlightTest.py
@@ -15,10 +15,10 @@ # limitations under the License. import time -import antlion_contrib.test_utils.wifi.rpm_controller_utils as rutils -import antlion_contrib.test_utils.wifi.wifi_test_utils as wutils +import antlion.test_utils.wifi.rpm_controller_utils as rutils +import antlion.test_utils.wifi.wifi_test_utils as wutils from antlion import asserts -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest SSID = "DO_NOT_CONNECT" TIMEOUT = 60
diff --git a/src/antlion_contrib/test_utils/wifi/RttPreFlightTest.py b/src/antlion/test_utils/wifi/RttPreFlightTest.py similarity index 87% rename from src/antlion_contrib/test_utils/wifi/RttPreFlightTest.py rename to src/antlion/test_utils/wifi/RttPreFlightTest.py index f0688cd..0ab6d99 100644 --- a/src/antlion_contrib/test_utils/wifi/RttPreFlightTest.py +++ b/src/antlion/test_utils/wifi/RttPreFlightTest.py
@@ -15,10 +15,10 @@ # limitations under the License. import time -import antlion_contrib.test_utils.wifi.rpm_controller_utils as rutils -import antlion_contrib.test_utils.wifi.wifi_test_utils as wutils +import antlion.test_utils.wifi.rpm_controller_utils as rutils +import antlion.test_utils.wifi.wifi_test_utils as wutils from antlion import asserts -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest SSID = "DO_NOT_CONNECT" TIMEOUT = 60
diff --git a/src/antlion_contrib/test_utils/wifi/WifiBaseTest.py b/src/antlion/test_utils/wifi/WifiBaseTest.py similarity index 97% rename from src/antlion_contrib/test_utils/wifi/WifiBaseTest.py rename to src/antlion/test_utils/wifi/WifiBaseTest.py index 36a8a3d..ac770f9 100644 --- a/src/antlion_contrib/test_utils/wifi/WifiBaseTest.py +++ b/src/antlion/test_utils/wifi/WifiBaseTest.py
@@ -31,8 +31,8 @@ from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security from antlion.keys import Config -from antlion_contrib.test_utils.net import net_test_utils as nutils -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.net import net_test_utils as nutils +from antlion.test_utils.wifi import wifi_test_utils as wutils from mobly.base_test import STAGE_NAME_TEARDOWN_CLASS @@ -43,6 +43,7 @@ class WifiBaseTest(BaseTestClass): + def __init__(self, configs): super().__init__(configs) self.enable_packet_log = False @@ -173,21 +174,25 @@ the DHCP and hostapd logs and outputs them to the correct path. """ current_path = context.get_current_context().get_full_output_path() - dhcp_full_out_path = os.path.join(current_path, "dhcp_log.txt") dhcp_log = self.access_point.get_dhcp_logs() if dhcp_log: - dhcp_log_file = open(dhcp_full_out_path, 'w') - dhcp_log_file.write(dhcp_log) - dhcp_log_file.close() + dhcp_log_path = os.path.join(current_path, "dhcp_log.txt") + with open(dhcp_log_path, 'w') as f: + f.write(dhcp_log) hostapd_logs = self.access_point.get_hostapd_logs() for interface in hostapd_logs: - out_name = interface + "_hostapd_log.txt" - hostapd_full_out_path = os.path.join(current_path, out_name) - hostapd_log_file = open(hostapd_full_out_path, 'w') - hostapd_log_file.write(hostapd_logs[interface]) - hostapd_log_file.close() + hostapd_log_path = os.path.join(current_path, + f'hostapd_log_{interface}.txt') + with open(hostapd_log_path, 'w') as f: + f.write(hostapd_logs[interface]) + + radvd_log = self.access_point.get_radvd_logs() + if radvd_log: + radvd_log_path = os.path.join(current_path, "radvd_log.txt") + with open(radvd_log_path, 'w') as f: + f.write(radvd_log) def get_psk_network( self, @@ -945,6 +950,7 @@ @staticmethod def wifi_test_wrap(fn): + def _safe_wrap_test_case(self, *args, **kwargs): test_id = "%s:%s:%s" % (self.__class__.__name__, self.test_name, self.log_begin_time.replace(' ', '-'))
diff --git a/src/antlion_contrib/test_utils/wifi/__init__.py b/src/antlion/test_utils/wifi/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/__init__.py rename to src/antlion/test_utils/wifi/__init__.py
diff --git a/src/antlion_contrib/test_utils/wifi/aware/AwareBaseTest.py b/src/antlion/test_utils/wifi/aware/AwareBaseTest.py similarity index 95% rename from src/antlion_contrib/test_utils/wifi/aware/AwareBaseTest.py rename to src/antlion/test_utils/wifi/aware/AwareBaseTest.py index 8bcce71..45b222d 100644 --- a/src/antlion_contrib/test_utils/wifi/aware/AwareBaseTest.py +++ b/src/antlion/test_utils/wifi/aware/AwareBaseTest.py
@@ -20,10 +20,10 @@ from antlion import utils from antlion.base_test import BaseTestClass from antlion.keys import Config -from antlion_contrib.test_utils.net import net_test_utils as nutils -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils -from antlion_contrib.test_utils.wifi.aware import aware_const as aconsts -from antlion_contrib.test_utils.wifi.aware import aware_test_utils as autils +from antlion.test_utils.net import net_test_utils as nutils +from antlion.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.wifi.aware import aware_const as aconsts +from antlion.test_utils.wifi.aware import aware_test_utils as autils class AwareBaseTest(BaseTestClass):
diff --git a/src/antlion_contrib/test_utils/wifi/aware/__init__.py b/src/antlion/test_utils/wifi/aware/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/aware/__init__.py rename to src/antlion/test_utils/wifi/aware/__init__.py
diff --git a/src/antlion_contrib/test_utils/wifi/aware/aware_const.py b/src/antlion/test_utils/wifi/aware/aware_const.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/aware/aware_const.py rename to src/antlion/test_utils/wifi/aware/aware_const.py
diff --git a/src/antlion_contrib/test_utils/wifi/aware/aware_test_utils.py b/src/antlion/test_utils/wifi/aware/aware_test_utils.py similarity index 99% rename from src/antlion_contrib/test_utils/wifi/aware/aware_test_utils.py rename to src/antlion/test_utils/wifi/aware/aware_test_utils.py index 2de7a1d..6c54791 100644 --- a/src/antlion_contrib/test_utils/wifi/aware/aware_test_utils.py +++ b/src/antlion/test_utils/wifi/aware/aware_test_utils.py
@@ -22,9 +22,9 @@ import time from antlion import asserts -from antlion_contrib.test_utils.net import connectivity_const as cconsts -from antlion_contrib.test_utils.net import socket_test_utils as sutils -from antlion_contrib.test_utils.wifi.aware import aware_const as aconsts +from antlion.test_utils.net import connectivity_const as cconsts +from antlion.test_utils.net import socket_test_utils as sutils +from antlion.test_utils.wifi.aware import aware_const as aconsts # arbitrary timeout for events EVENT_TIMEOUT = 10
diff --git a/src/antlion_contrib/test_utils/wifi/ota_chamber.py b/src/antlion/test_utils/wifi/ota_chamber.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/ota_chamber.py rename to src/antlion/test_utils/wifi/ota_chamber.py
diff --git a/src/antlion_contrib/test_utils/wifi/ota_sniffer.py b/src/antlion/test_utils/wifi/ota_sniffer.py similarity index 99% rename from src/antlion_contrib/test_utils/wifi/ota_sniffer.py rename to src/antlion/test_utils/wifi/ota_sniffer.py index 51d9296..4200d24 100644 --- a/src/antlion_contrib/test_utils/wifi/ota_sniffer.py +++ b/src/antlion/test_utils/wifi/ota_sniffer.py
@@ -18,7 +18,7 @@ import os import posixpath import time -import antlion_contrib.test_utils.wifi.wifi_test_utils as wutils +import antlion.test_utils.wifi.wifi_test_utils as wutils from antlion import context from antlion import logger
diff --git a/src/antlion_contrib/test_utils/wifi/p2p/WifiP2pBaseTest.py b/src/antlion/test_utils/wifi/p2p/WifiP2pBaseTest.py similarity index 96% rename from src/antlion_contrib/test_utils/wifi/p2p/WifiP2pBaseTest.py rename to src/antlion/test_utils/wifi/p2p/WifiP2pBaseTest.py index 2114934..5fb8081 100644 --- a/src/antlion_contrib/test_utils/wifi/p2p/WifiP2pBaseTest.py +++ b/src/antlion/test_utils/wifi/p2p/WifiP2pBaseTest.py
@@ -23,9 +23,9 @@ from antlion import utils from antlion.base_test import BaseTestClass from antlion.keys import Config -from antlion_contrib.test_utils.net import net_test_utils as nutils -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils -from antlion_contrib.test_utils.wifi.p2p import wifi_p2p_const as p2pconsts +from antlion.test_utils.net import net_test_utils as nutils +from antlion.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.wifi.p2p import wifi_p2p_const as p2pconsts WAIT_TIME = 60
diff --git a/src/antlion_contrib/test_utils/wifi/p2p/__init__.py b/src/antlion/test_utils/wifi/p2p/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/p2p/__init__.py rename to src/antlion/test_utils/wifi/p2p/__init__.py
diff --git a/src/antlion_contrib/test_utils/wifi/p2p/wifi_p2p_const.py b/src/antlion/test_utils/wifi/p2p/wifi_p2p_const.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/p2p/wifi_p2p_const.py rename to src/antlion/test_utils/wifi/p2p/wifi_p2p_const.py
diff --git a/src/antlion_contrib/test_utils/wifi/p2p/wifi_p2p_test_utils.py b/src/antlion/test_utils/wifi/p2p/wifi_p2p_test_utils.py similarity index 99% rename from src/antlion_contrib/test_utils/wifi/p2p/wifi_p2p_test_utils.py rename to src/antlion/test_utils/wifi/p2p/wifi_p2p_test_utils.py index 2811675..f9144b5 100755 --- a/src/antlion_contrib/test_utils/wifi/p2p/wifi_p2p_test_utils.py +++ b/src/antlion/test_utils/wifi/p2p/wifi_p2p_test_utils.py
@@ -18,7 +18,7 @@ from antlion import asserts from antlion import utils -from antlion_contrib.test_utils.wifi.p2p import wifi_p2p_const as p2pconsts +from antlion.test_utils.wifi.p2p import wifi_p2p_const as p2pconsts import antlion.utils
diff --git a/src/antlion_contrib/test_utils/wifi/pdu_controller_utils.py b/src/antlion/test_utils/wifi/pdu_controller_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/pdu_controller_utils.py rename to src/antlion/test_utils/wifi/pdu_controller_utils.py
diff --git a/src/antlion_contrib/test_utils/wifi/rpm_controller_utils.py b/src/antlion/test_utils/wifi/rpm_controller_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/rpm_controller_utils.py rename to src/antlion/test_utils/wifi/rpm_controller_utils.py
diff --git a/src/antlion_contrib/test_utils/wifi/rtt/RttBaseTest.py b/src/antlion/test_utils/wifi/rtt/RttBaseTest.py similarity index 93% rename from src/antlion_contrib/test_utils/wifi/rtt/RttBaseTest.py rename to src/antlion/test_utils/wifi/rtt/RttBaseTest.py index 75368cd..bbd3efd 100644 --- a/src/antlion_contrib/test_utils/wifi/rtt/RttBaseTest.py +++ b/src/antlion/test_utils/wifi/rtt/RttBaseTest.py
@@ -20,10 +20,10 @@ from antlion import utils from antlion.base_test import BaseTestClass from antlion.keys import Config -from antlion_contrib.test_utils.net import net_test_utils as nutils -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils -from antlion_contrib.test_utils.wifi.rtt import rtt_const as rconsts -from antlion_contrib.test_utils.wifi.rtt import rtt_test_utils as rutils +from antlion.test_utils.net import net_test_utils as nutils +from antlion.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.wifi.rtt import rtt_const as rconsts +from antlion.test_utils.wifi.rtt import rtt_test_utils as rutils class RttBaseTest(BaseTestClass):
diff --git a/src/antlion_contrib/test_utils/wifi/rtt/__init__.py b/src/antlion/test_utils/wifi/rtt/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/rtt/__init__.py rename to src/antlion/test_utils/wifi/rtt/__init__.py
diff --git a/src/antlion_contrib/test_utils/wifi/rtt/rtt_const.py b/src/antlion/test_utils/wifi/rtt/rtt_const.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/rtt/rtt_const.py rename to src/antlion/test_utils/wifi/rtt/rtt_const.py
diff --git a/src/antlion_contrib/test_utils/wifi/rtt/rtt_test_utils.py b/src/antlion/test_utils/wifi/rtt/rtt_test_utils.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/rtt/rtt_test_utils.py rename to src/antlion/test_utils/wifi/rtt/rtt_test_utils.py index 2e8f707..a0777d8 100644 --- a/src/antlion_contrib/test_utils/wifi/rtt/rtt_test_utils.py +++ b/src/antlion/test_utils/wifi/rtt/rtt_test_utils.py
@@ -20,8 +20,8 @@ import time from antlion import asserts -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils -from antlion_contrib.test_utils.wifi.rtt import rtt_const as rconsts +from antlion.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.wifi.rtt import rtt_const as rconsts # arbitrary timeout for events EVENT_TIMEOUT = 15
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_constants.py b/src/antlion/test_utils/wifi/wifi_constants.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/wifi_constants.py rename to src/antlion/test_utils/wifi/wifi_constants.py
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_datastore_utils.py b/src/antlion/test_utils/wifi/wifi_datastore_utils.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_datastore_utils.py rename to src/antlion/test_utils/wifi/wifi_datastore_utils.py index 3c922bc..0cd0820 100755 --- a/src/antlion_contrib/test_utils/wifi/wifi_datastore_utils.py +++ b/src/antlion/test_utils/wifi/wifi_datastore_utils.py
@@ -21,7 +21,7 @@ from antlion import asserts from antlion import signals from antlion import utils -from antlion_contrib.test_utils.wifi import wifi_constants +from antlion.test_utils.wifi import wifi_constants """This file consists of all the helper methods needed to interact with the Datastore @ https://chaos-188802.appspot.com/ used for Android Interop testing.
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/__init__.py b/src/antlion/test_utils/wifi/wifi_performance_test_utils/__init__.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/__init__.py rename to src/antlion/test_utils/wifi/wifi_performance_test_utils/__init__.py index 3ed523e..26466a8 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/__init__.py +++ b/src/antlion/test_utils/wifi/wifi_performance_test_utils/__init__.py
@@ -25,10 +25,10 @@ from antlion import utils from antlion.controllers.android_device import AndroidDevice from antlion.controllers.utils_lib import ssh -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils -from antlion_contrib.test_utils.wifi.wifi_performance_test_utils import ping_utils -from antlion_contrib.test_utils.wifi.wifi_performance_test_utils import qcom_utils -from antlion_contrib.test_utils.wifi.wifi_performance_test_utils import brcm_utils +from antlion.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.wifi.wifi_performance_test_utils import ping_utils +from antlion.test_utils.wifi.wifi_performance_test_utils import qcom_utils +from antlion.test_utils.wifi.wifi_performance_test_utils import brcm_utils from concurrent.futures import ThreadPoolExecutor
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/bokeh_figure.py b/src/antlion/test_utils/wifi/wifi_performance_test_utils/bokeh_figure.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/bokeh_figure.py rename to src/antlion/test_utils/wifi/wifi_performance_test_utils/bokeh_figure.py
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/brcm_utils.py b/src/antlion/test_utils/wifi/wifi_performance_test_utils/brcm_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/brcm_utils.py rename to src/antlion/test_utils/wifi/wifi_performance_test_utils/brcm_utils.py
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/ping_utils.py b/src/antlion/test_utils/wifi/wifi_performance_test_utils/ping_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/ping_utils.py rename to src/antlion/test_utils/wifi/wifi_performance_test_utils/ping_utils.py
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/qcom_utils.py b/src/antlion/test_utils/wifi/wifi_performance_test_utils/qcom_utils.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/wifi_performance_test_utils/qcom_utils.py rename to src/antlion/test_utils/wifi/wifi_performance_test_utils/qcom_utils.py
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_power_test_utils.py b/src/antlion/test_utils/wifi/wifi_power_test_utils.py similarity index 99% rename from src/antlion_contrib/test_utils/wifi/wifi_power_test_utils.py rename to src/antlion/test_utils/wifi/wifi_power_test_utils.py index 54f7d8a..cbd51fc 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_power_test_utils.py +++ b/src/antlion/test_utils/wifi/wifi_power_test_utils.py
@@ -19,7 +19,7 @@ from antlion import utils from antlion.libs.proc import job from antlion.controllers.ap_lib import bridge_interface as bi -from antlion_contrib.test_utils.wifi import wifi_test_utils as wutils +from antlion.test_utils.wifi import wifi_test_utils as wutils from antlion.controllers.adb_lib.error import AdbCommandError from antlion.controllers.ap_lib import hostapd_security from antlion.controllers.ap_lib import hostapd_ap_preset
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/__init__.py b/src/antlion/test_utils/wifi/wifi_retail_ap/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/__init__.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/__init__.py
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/brcm_ref.py b/src/antlion/test_utils/wifi/wifi_retail_ap/brcm_ref.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/brcm_ref.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/brcm_ref.py index ddb5f86..d5461f8 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/brcm_ref.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/brcm_ref.py
@@ -1,8 +1,8 @@ import collections import numpy import time -from antlion_contrib.test_utils.wifi.wifi_retail_ap import WifiRetailAP -from antlion_contrib.test_utils.wifi.wifi_retail_ap import BlockingBrowser +from antlion.test_utils.wifi.wifi_retail_ap import WifiRetailAP +from antlion.test_utils.wifi.wifi_retail_ap import BlockingBrowser BROWSER_WAIT_SHORT = 1 BROWSER_WAIT_MED = 3
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/google_wifi.py b/src/antlion/test_utils/wifi/wifi_retail_ap/google_wifi.py similarity index 99% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/google_wifi.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/google_wifi.py index f9025c6..ee2a821 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/google_wifi.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/google_wifi.py
@@ -18,7 +18,7 @@ from antlion.controllers.ap_lib import bridge_interface from antlion.controllers.ap_lib import hostapd_security from antlion.controllers.ap_lib import hostapd_ap_preset -from antlion_contrib.test_utils.wifi.wifi_retail_ap import WifiRetailAP +from antlion.test_utils.wifi.wifi_retail_ap import WifiRetailAP class GoogleWifiAP(WifiRetailAP):
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7000.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7000.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7000.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7000.py index de950cb..3f73aa6 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7000.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7000.py
@@ -15,8 +15,8 @@ # limitations under the License. import time -from antlion_contrib.test_utils.wifi.wifi_retail_ap import WifiRetailAP -from antlion_contrib.test_utils.wifi.wifi_retail_ap import BlockingBrowser +from antlion.test_utils.wifi.wifi_retail_ap import WifiRetailAP +from antlion.test_utils.wifi.wifi_retail_ap import BlockingBrowser BROWSER_WAIT_SHORT = 1 BROWSER_WAIT_MED = 3
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7500.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7500.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7500.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7500.py index d150146..4c2729e 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7500.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7500.py
@@ -16,8 +16,8 @@ import selenium import time -from antlion_contrib.test_utils.wifi.wifi_retail_ap import WifiRetailAP -from antlion_contrib.test_utils.wifi.wifi_retail_ap import BlockingBrowser +from antlion.test_utils.wifi.wifi_retail_ap import WifiRetailAP +from antlion.test_utils.wifi.wifi_retail_ap import BlockingBrowser BROWSER_WAIT_SHORT = 1 BROWSER_WAIT_MED = 3
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7800.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7800.py similarity index 93% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7800.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7800.py index 5d89bd6..7528b9c 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r7800.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r7800.py
@@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from antlion_contrib.test_utils.wifi.wifi_retail_ap import NetgearR7500AP +from antlion.test_utils.wifi.wifi_retail_ap import NetgearR7500AP class NetgearR7800AP(NetgearR7500AP):
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r8000.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r8000.py similarity index 97% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r8000.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r8000.py index 26c4cbe..81b96b8 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_r8000.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_r8000.py
@@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from antlion_contrib.test_utils.wifi.wifi_retail_ap import NetgearR7000AP +from antlion.test_utils.wifi.wifi_retail_ap import NetgearR7000AP class NetgearR8000AP(NetgearR7000AP):
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax120.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax120.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax120.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax120.py index ab1b55d..36ed18d 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax120.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax120.py
@@ -16,8 +16,8 @@ import selenium import time -from antlion_contrib.test_utils.wifi.wifi_retail_ap.netgear_r7500 import NetgearR7500AP -from antlion_contrib.test_utils.wifi.wifi_retail_ap import BlockingBrowser +from antlion.test_utils.wifi.wifi_retail_ap.netgear_r7500 import NetgearR7500AP +from antlion.test_utils.wifi.wifi_retail_ap import BlockingBrowser BROWSER_WAIT_SHORT = 1 BROWSER_WAIT_MED = 3
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax200.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax200.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax200.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax200.py index 191dfde..0034bf3 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax200.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax200.py
@@ -16,8 +16,8 @@ import collections import time -from antlion_contrib.test_utils.wifi.wifi_retail_ap import WifiRetailAP -from antlion_contrib.test_utils.wifi.wifi_retail_ap import BlockingBrowser +from antlion.test_utils.wifi.wifi_retail_ap import WifiRetailAP +from antlion.test_utils.wifi.wifi_retail_ap import BlockingBrowser BROWSER_WAIT_SHORT = 1 BROWSER_WAIT_MED = 3
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax80.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax80.py similarity index 97% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax80.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax80.py index 39de89e..6c99a3b 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_rax80.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_rax80.py
@@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from antlion_contrib.test_utils.wifi.wifi_retail_ap import NetgearR7000AP +from antlion.test_utils.wifi.wifi_retail_ap import NetgearR7000AP class NetgearRAX80AP(NetgearR7000AP):
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_raxe500.py b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_raxe500.py similarity index 98% rename from src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_raxe500.py rename to src/antlion/test_utils/wifi/wifi_retail_ap/netgear_raxe500.py index 3a3317b..73aeaec 100644 --- a/src/antlion_contrib/test_utils/wifi/wifi_retail_ap/netgear_raxe500.py +++ b/src/antlion/test_utils/wifi/wifi_retail_ap/netgear_raxe500.py
@@ -18,8 +18,8 @@ import numpy import re import time -from antlion_contrib.test_utils.wifi.wifi_retail_ap import WifiRetailAP -from antlion_contrib.test_utils.wifi.wifi_retail_ap import BlockingBrowser +from antlion.test_utils.wifi.wifi_retail_ap import WifiRetailAP +from antlion.test_utils.wifi.wifi_retail_ap import BlockingBrowser BROWSER_WAIT_SHORT = 1 BROWSER_WAIT_MED = 3
diff --git a/src/antlion_contrib/test_utils/wifi/wifi_test_utils.py b/src/antlion/test_utils/wifi/wifi_test_utils.py similarity index 99% rename from src/antlion_contrib/test_utils/wifi/wifi_test_utils.py rename to src/antlion/test_utils/wifi/wifi_test_utils.py index e512800..3a6105e 100755 --- a/src/antlion_contrib/test_utils/wifi/wifi_test_utils.py +++ b/src/antlion/test_utils/wifi/wifi_test_utils.py
@@ -20,12 +20,12 @@ import shutil import time -from retry import retry - from collections import namedtuple from enum import IntEnum from queue import Empty +from tenacity import retry, stop_after_attempt, wait_fixed + from antlion import asserts from antlion import context from antlion import signals @@ -35,9 +35,9 @@ from antlion.controllers.ap_lib import hostapd_ap_preset from antlion.controllers.ap_lib.hostapd_constants import BAND_2G from antlion.controllers.ap_lib.hostapd_constants import BAND_5G -from antlion_contrib.test_utils.net import connectivity_const as cconsts -from antlion_contrib.test_utils.wifi import wifi_constants -from antlion_contrib.test_utils.wifi.aware import aware_test_utils as autils +from antlion.test_utils.net import connectivity_const as cconsts +from antlion.test_utils.wifi import wifi_constants +from antlion.test_utils.wifi.aware import aware_test_utils as autils # Default timeout used for reboot, toggle WiFi and Airplane mode, # for the system to settle down after the operation. @@ -2790,7 +2790,7 @@ return False -@retry(tries=5, delay=2) +@retry(stop=stop_after_attempt(5), wait=wait_fixed(2)) def validate_ping_between_two_clients(dut1, dut2): """Make 2 DUT ping each other.
diff --git a/src/antlion_contrib/test_utils_tests/__init__.py b/src/antlion/test_utils_tests/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils_tests/__init__.py rename to src/antlion/test_utils_tests/__init__.py
diff --git a/src/antlion/test_utils_tests/acts_import_test_utils_test.py b/src/antlion/test_utils_tests/acts_import_test_utils_test.py new file mode 100755 index 0000000..4e2ce49 --- /dev/null +++ b/src/antlion/test_utils_tests/acts_import_test_utils_test.py
@@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +# +# Copyright 2022 The Fuchsia Authors +# +# 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. + +import unittest + + +class ActsImportTestUtilsTest(unittest.TestCase): + """This test class has unit tests for the implementation of everything + under acts_contrib.test_utils.* + """ + + def test_import_successful(self): + """ Test to return true if all imports were successful. + + This test will fail if any import was unsuccessful. + """ + try: + from antlion import utils + + from antlion.test_utils.bt import BleEnum + from antlion.test_utils.bt import BluetoothBaseTest + from antlion.test_utils.bt import BluetoothCarHfpBaseTest + from antlion.test_utils.bt import BtEnum + from antlion.test_utils.bt import GattConnectedBaseTest + from antlion.test_utils.bt import GattEnum + from antlion.test_utils.bt import bt_contacts_utils + from antlion.test_utils.bt import bt_gatt_utils + from antlion.test_utils.bt import bt_test_utils + from antlion.test_utils.bt import native_bt_test_utils + + from antlion.test_utils.net import connectivity_const + from antlion.test_utils.net import connectivity_const + + from antlion.test_utils.wifi import wifi_constants + from antlion.test_utils.wifi import wifi_test_utils + + except Exception: + self.fail('Unable to import all supported test_utils') + + +if __name__ == '__main__': + unittest.main()
diff --git a/src/antlion_contrib/test_utils_tests/audio_analysis_integrationtest.py b/src/antlion/test_utils_tests/audio_analysis_integrationtest.py similarity index 98% rename from src/antlion_contrib/test_utils_tests/audio_analysis_integrationtest.py rename to src/antlion/test_utils_tests/audio_analysis_integrationtest.py index d7e5e81..e7c17a2 100644 --- a/src/antlion_contrib/test_utils_tests/audio_analysis_integrationtest.py +++ b/src/antlion/test_utils_tests/audio_analysis_integrationtest.py
@@ -21,8 +21,8 @@ import os import unittest -import antlion_contrib.test_utils.audio_analysis_lib.audio_analysis as audio_analysis -import antlion_contrib.test_utils.audio_analysis_lib.audio_data as audio_data +import antlion.test_utils.audio_analysis_lib.audio_analysis as audio_analysis +import antlion.test_utils.audio_analysis_lib.audio_data as audio_data class SpectralAnalysisTest(unittest.TestCase):
diff --git a/src/antlion_contrib/test_utils_tests/audio_quality_measurement_integrationtest.py b/src/antlion/test_utils_tests/audio_quality_measurement_integrationtest.py similarity index 98% rename from src/antlion_contrib/test_utils_tests/audio_quality_measurement_integrationtest.py rename to src/antlion/test_utils_tests/audio_quality_measurement_integrationtest.py index fd156a7..824bd60 100644 --- a/src/antlion_contrib/test_utils_tests/audio_quality_measurement_integrationtest.py +++ b/src/antlion/test_utils_tests/audio_quality_measurement_integrationtest.py
@@ -22,7 +22,7 @@ import numpy import unittest -import antlion_contrib.test_utils.audio_analysis_lib.audio_quality_measurement as audio_quality_measurement +import antlion.test_utils.audio_analysis_lib.audio_quality_measurement as audio_quality_measurement class NoiseLevelTest(unittest.TestCase):
diff --git a/src/antlion_contrib/test_utils_tests/instrumentation/__init__.py b/src/antlion/test_utils_tests/instrumentation/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils_tests/instrumentation/__init__.py rename to src/antlion/test_utils_tests/instrumentation/__init__.py
diff --git a/src/antlion_contrib/test_utils_tests/instrumentation/device/__init__.py b/src/antlion/test_utils_tests/instrumentation/device/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils_tests/instrumentation/device/__init__.py rename to src/antlion/test_utils_tests/instrumentation/device/__init__.py
diff --git a/src/antlion_contrib/test_utils_tests/instrumentation/device/command/__init__.py b/src/antlion/test_utils_tests/instrumentation/device/command/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils_tests/instrumentation/device/command/__init__.py rename to src/antlion/test_utils_tests/instrumentation/device/command/__init__.py
diff --git a/src/antlion_contrib/test_utils_tests/instrumentation/device/command/instrumentation_command_builder_test.py b/src/antlion/test_utils_tests/instrumentation/device/command/instrumentation_command_builder_test.py similarity index 95% rename from src/antlion_contrib/test_utils_tests/instrumentation/device/command/instrumentation_command_builder_test.py rename to src/antlion/test_utils_tests/instrumentation/device/command/instrumentation_command_builder_test.py index 08d284a..6afae91 100755 --- a/src/antlion_contrib/test_utils_tests/instrumentation/device/command/instrumentation_command_builder_test.py +++ b/src/antlion/test_utils_tests/instrumentation/device/command/instrumentation_command_builder_test.py
@@ -16,8 +16,8 @@ import unittest -from antlion_contrib.test_utils.instrumentation.device.command.instrumentation_command_builder import InstrumentationCommandBuilder -from antlion_contrib.test_utils.instrumentation.device.command.instrumentation_command_builder import InstrumentationTestCommandBuilder +from antlion.test_utils.instrumentation.device.command.instrumentation_command_builder import InstrumentationCommandBuilder +from antlion.test_utils.instrumentation.device.command.instrumentation_command_builder import InstrumentationTestCommandBuilder class InstrumentationCommandBuilderTest(unittest.TestCase):
diff --git a/src/antlion_contrib/test_utils_tests/power/__init__.py b/src/antlion/test_utils_tests/power/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils_tests/power/__init__.py rename to src/antlion/test_utils_tests/power/__init__.py
diff --git a/src/antlion_contrib/test_utils_tests/power/tel/__init__.py b/src/antlion/test_utils_tests/power/tel/__init__.py similarity index 100% rename from src/antlion_contrib/test_utils_tests/power/tel/__init__.py rename to src/antlion/test_utils_tests/power/tel/__init__.py
diff --git a/src/antlion_contrib/test_utils_tests/power/tel/lab/consume_parameter_test.py b/src/antlion/test_utils_tests/power/tel/lab/consume_parameter_test.py similarity index 96% rename from src/antlion_contrib/test_utils_tests/power/tel/lab/consume_parameter_test.py rename to src/antlion/test_utils_tests/power/tel/lab/consume_parameter_test.py index 7d9e137..ca26e53 100644 --- a/src/antlion_contrib/test_utils_tests/power/tel/lab/consume_parameter_test.py +++ b/src/antlion/test_utils_tests/power/tel/lab/consume_parameter_test.py
@@ -26,7 +26,7 @@ """ @classmethod def setUpClass(self): - from antlion_contrib.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT + from antlion.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT self.PCBT = PCBT PCBT.log = mock.Mock() PCBT.log_path = ''
diff --git a/src/antlion_contrib/test_utils_tests/power/tel/lab/ensure_valid_calibration_table_test.py b/src/antlion/test_utils_tests/power/tel/lab/ensure_valid_calibration_table_test.py similarity index 96% rename from src/antlion_contrib/test_utils_tests/power/tel/lab/ensure_valid_calibration_table_test.py rename to src/antlion/test_utils_tests/power/tel/lab/ensure_valid_calibration_table_test.py index 348b3fd..1aa9361 100644 --- a/src/antlion_contrib/test_utils_tests/power/tel/lab/ensure_valid_calibration_table_test.py +++ b/src/antlion/test_utils_tests/power/tel/lab/ensure_valid_calibration_table_test.py
@@ -31,7 +31,7 @@ @classmethod def setUpClass(self): - from antlion_contrib.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT + from antlion.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT self.PCBT = PCBT PCBT.log = mock.Mock() PCBT.log_path = ''
diff --git a/src/antlion_contrib/test_utils_tests/power/tel/lab/init_simulation_test.py b/src/antlion/test_utils_tests/power/tel/lab/init_simulation_test.py similarity index 96% rename from src/antlion_contrib/test_utils_tests/power/tel/lab/init_simulation_test.py rename to src/antlion/test_utils_tests/power/tel/lab/init_simulation_test.py index b07b54e..c7c4285 100644 --- a/src/antlion_contrib/test_utils_tests/power/tel/lab/init_simulation_test.py +++ b/src/antlion/test_utils_tests/power/tel/lab/init_simulation_test.py
@@ -28,7 +28,7 @@ """ @classmethod def setUpClass(self): - from antlion_contrib.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT + from antlion.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT self.PCBT = PCBT PCBT.log = mock.Mock() PCBT.log_path = ''
diff --git a/src/antlion_contrib/test_utils_tests/power/tel/lab/initialize_simulator_test.py b/src/antlion/test_utils_tests/power/tel/lab/initialize_simulator_test.py similarity index 97% rename from src/antlion_contrib/test_utils_tests/power/tel/lab/initialize_simulator_test.py rename to src/antlion/test_utils_tests/power/tel/lab/initialize_simulator_test.py index f474f91..cd23f4b 100644 --- a/src/antlion_contrib/test_utils_tests/power/tel/lab/initialize_simulator_test.py +++ b/src/antlion/test_utils_tests/power/tel/lab/initialize_simulator_test.py
@@ -28,7 +28,7 @@ """ @classmethod def setUpClass(self): - from antlion_contrib.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT + from antlion.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT self.PCBT = PCBT PCBT.log = mock.Mock() PCBT.log_path = ''
diff --git a/src/antlion_contrib/test_utils_tests/power/tel/lab/power_tel_traffic_e2e_test.py b/src/antlion/test_utils_tests/power/tel/lab/power_tel_traffic_e2e_test.py similarity index 97% rename from src/antlion_contrib/test_utils_tests/power/tel/lab/power_tel_traffic_e2e_test.py rename to src/antlion/test_utils_tests/power/tel/lab/power_tel_traffic_e2e_test.py index 7fe4e81..be71fee 100644 --- a/src/antlion_contrib/test_utils_tests/power/tel/lab/power_tel_traffic_e2e_test.py +++ b/src/antlion/test_utils_tests/power/tel/lab/power_tel_traffic_e2e_test.py
@@ -17,7 +17,7 @@ import unittest from unittest import mock -import antlion_contrib.test_utils.power.cellular.cellular_traffic_power_test as ctpt +import antlion.test_utils.power.cellular.cellular_traffic_power_test as ctpt import mobly.config_parser as mobly_config_parser from antlion.controllers.cellular_lib.LteSimulation import LteSimulation from antlion.controllers.rohdeschwarz_lib import cmw500_cellular_simulator as cmw
diff --git a/src/antlion_contrib/test_utils_tests/power/tel/lab/save_summary_to_file_test.py b/src/antlion/test_utils_tests/power/tel/lab/save_summary_to_file_test.py similarity index 93% rename from src/antlion_contrib/test_utils_tests/power/tel/lab/save_summary_to_file_test.py rename to src/antlion/test_utils_tests/power/tel/lab/save_summary_to_file_test.py index 853e4cd..556cfdb 100644 --- a/src/antlion_contrib/test_utils_tests/power/tel/lab/save_summary_to_file_test.py +++ b/src/antlion/test_utils_tests/power/tel/lab/save_summary_to_file_test.py
@@ -29,7 +29,7 @@ @classmethod def setUpClass(self): - from antlion_contrib.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT + from antlion.test_utils.power.cellular.cellular_power_base_test import PowerCellularLabBaseTest as PCBT self.PCBT = PCBT PCBT.log = mock.Mock() PCBT.log_path = ''
diff --git a/tests/bt/BleFuchsiaAndroidTest.py b/src/antlion/tests/bt/BleFuchsiaAndroidTest.py similarity index 90% rename from tests/bt/BleFuchsiaAndroidTest.py rename to src/antlion/tests/bt/BleFuchsiaAndroidTest.py index d360262..982c3ac 100644 --- a/tests/bt/BleFuchsiaAndroidTest.py +++ b/src/antlion/tests/bt/BleFuchsiaAndroidTest.py
@@ -20,14 +20,14 @@ import pprint from antlion.controllers import android_device -from antlion_contrib.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name -from antlion_contrib.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest -from antlion_contrib.test_utils.bt.bt_constants import ble_advertise_settings_modes -from antlion_contrib.test_utils.bt.bt_constants import adv_succ -from antlion_contrib.test_utils.bt.bt_constants import ble_scan_settings_modes -from antlion_contrib.test_utils.bt.bt_constants import scan_result -from antlion_contrib.test_utils.bt.bt_test_utils import cleanup_scanners_and_advertisers -from antlion_contrib.test_utils.bt.bt_test_utils import reset_bluetooth +from antlion.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name +from antlion.test_utils.bt.BluetoothBaseTest import BluetoothBaseTest +from antlion.test_utils.bt.bt_constants import ble_advertise_settings_modes +from antlion.test_utils.bt.bt_constants import adv_succ +from antlion.test_utils.bt.bt_constants import ble_scan_settings_modes +from antlion.test_utils.bt.bt_constants import scan_result +from antlion.test_utils.bt.bt_test_utils import cleanup_scanners_and_advertisers +from antlion.test_utils.bt.bt_test_utils import reset_bluetooth class BleFuchsiaAndroidTest(BluetoothBaseTest):
diff --git a/tests/bt/BleFuchsiaTest.py b/src/antlion/tests/bt/BleFuchsiaTest.py similarity index 97% rename from tests/bt/BleFuchsiaTest.py rename to src/antlion/tests/bt/BleFuchsiaTest.py index f7f7dbe..6730924 100644 --- a/tests/bt/BleFuchsiaTest.py +++ b/src/antlion/tests/bt/BleFuchsiaTest.py
@@ -19,7 +19,7 @@ import random from antlion.base_test import BaseTestClass -from antlion_contrib.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name +from antlion.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name class BleFuchsiaTest(BaseTestClass):
diff --git a/tests/bt/BluetoothCmdLineTest.py b/src/antlion/tests/bt/BluetoothCmdLineTest.py similarity index 100% rename from tests/bt/BluetoothCmdLineTest.py rename to src/antlion/tests/bt/BluetoothCmdLineTest.py
diff --git a/tests/bt/FuchsiaBtMacAddressTest.py b/src/antlion/tests/bt/FuchsiaBtMacAddressTest.py similarity index 96% rename from tests/bt/FuchsiaBtMacAddressTest.py rename to src/antlion/tests/bt/FuchsiaBtMacAddressTest.py index f069a81..67ee6dd 100644 --- a/tests/bt/FuchsiaBtMacAddressTest.py +++ b/src/antlion/tests/bt/FuchsiaBtMacAddressTest.py
@@ -24,7 +24,7 @@ from antlion import signals from antlion.base_test import BaseTestClass from antlion.test_decorators import test_tracker_info -from antlion_contrib.test_utils.bt.bt_test_utils import generate_id_by_size +from antlion.test_utils.bt.bt_test_utils import generate_id_by_size class FuchsiaBtMacAddressTest(BaseTestClass):
diff --git a/tests/bt/FuchsiaBtScanTest.py b/src/antlion/tests/bt/FuchsiaBtScanTest.py similarity index 97% rename from tests/bt/FuchsiaBtScanTest.py rename to src/antlion/tests/bt/FuchsiaBtScanTest.py index 3acc0a1..fd659a0 100644 --- a/tests/bt/FuchsiaBtScanTest.py +++ b/src/antlion/tests/bt/FuchsiaBtScanTest.py
@@ -26,7 +26,7 @@ from antlion import signals from antlion.base_test import BaseTestClass from antlion.test_decorators import test_tracker_info -from antlion_contrib.test_utils.bt.bt_test_utils import generate_id_by_size +from antlion.test_utils.bt.bt_test_utils import generate_id_by_size class FuchsiaBtScanTest(BaseTestClass):
diff --git a/tests/bt/GapSecSemTest.py b/src/antlion/tests/bt/GapSecSemTest.py similarity index 96% rename from tests/bt/GapSecSemTest.py rename to src/antlion/tests/bt/GapSecSemTest.py index 6c3888b..71a21c1 100644 --- a/tests/bt/GapSecSemTest.py +++ b/src/antlion/tests/bt/GapSecSemTest.py
@@ -24,10 +24,10 @@ from antlion import signals from antlion.base_test import BaseTestClass from antlion.test_decorators import test_tracker_info -from antlion_contrib.test_utils.bt.bt_test_utils import generate_id_by_size -from antlion_contrib.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name -from antlion_contrib.test_utils.fuchsia.bt_test_utils import get_link_keys -from antlion_contrib.test_utils.fuchsia.bt_test_utils import unbond_all_known_devices +from antlion.test_utils.bt.bt_test_utils import generate_id_by_size +from antlion.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name +from antlion.test_utils.fuchsia.bt_test_utils import get_link_keys +from antlion.test_utils.fuchsia.bt_test_utils import unbond_all_known_devices from contextlib import suppress import inspect
diff --git a/tests/bt/command_input.py b/src/antlion/tests/bt/command_input.py similarity index 98% rename from tests/bt/command_input.py rename to src/antlion/tests/bt/command_input.py index 26ed8f1..46e0e3f 100644 --- a/tests/bt/command_input.py +++ b/src/antlion/tests/bt/command_input.py
@@ -43,16 +43,16 @@ """ -from antlion_contrib.test_utils.audio_analysis_lib.check_quality import quality_analysis -from antlion_contrib.test_utils.bt.bt_constants import audio_bits_per_sample_32 -from antlion_contrib.test_utils.bt.bt_constants import audio_sample_rate_48000 -from antlion_contrib.test_utils.abstract_devices.bluetooth_device import create_bluetooth_device -from antlion_contrib.test_utils.bt.bt_constants import bt_attribute_values -from antlion_contrib.test_utils.bt.bt_constants import sig_appearance_constants -from antlion_contrib.test_utils.bt.bt_constants import sig_uuid_constants -from antlion_contrib.test_utils.fuchsia.sdp_records import sdp_pts_record_list +from antlion.test_utils.audio_analysis_lib.check_quality import quality_analysis +from antlion.test_utils.bt.bt_constants import audio_bits_per_sample_32 +from antlion.test_utils.bt.bt_constants import audio_sample_rate_48000 +from antlion.test_utils.abstract_devices.bluetooth_device import create_bluetooth_device +from antlion.test_utils.bt.bt_constants import bt_attribute_values +from antlion.test_utils.bt.bt_constants import sig_appearance_constants +from antlion.test_utils.bt.bt_constants import sig_uuid_constants +from antlion.test_utils.fuchsia.sdp_records import sdp_pts_record_list -import antlion_contrib.test_utils.bt.gatt_test_database as gatt_test_database +import antlion.test_utils.bt.gatt_test_database as gatt_test_database import cmd import pprint
diff --git a/tests/bt/ep/BtFuchsiaEPTest.py b/src/antlion/tests/bt/ep/BtFuchsiaEPTest.py similarity index 96% rename from tests/bt/ep/BtFuchsiaEPTest.py rename to src/antlion/tests/bt/ep/BtFuchsiaEPTest.py index d190f75..626c259 100644 --- a/tests/bt/ep/BtFuchsiaEPTest.py +++ b/src/antlion/tests/bt/ep/BtFuchsiaEPTest.py
@@ -22,11 +22,11 @@ from antlion.base_test import BaseTestClass from antlion.controllers.fuchsia_lib.ssh import FuchsiaSSHError from antlion.test_decorators import test_tracker_info -from antlion_contrib.test_utils.bt.bt_test_utils import generate_id_by_size -from antlion_contrib.test_utils.fuchsia.bt_test_utils import bredr_scan_for_device_by_name -from antlion_contrib.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name -from antlion_contrib.test_utils.fuchsia.bt_test_utils import unbond_all_known_devices -from antlion_contrib.test_utils.fuchsia.bt_test_utils import verify_device_state_by_name +from antlion.test_utils.bt.bt_test_utils import generate_id_by_size +from antlion.test_utils.fuchsia.bt_test_utils import bredr_scan_for_device_by_name +from antlion.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name +from antlion.test_utils.fuchsia.bt_test_utils import unbond_all_known_devices +from antlion.test_utils.fuchsia.bt_test_utils import verify_device_state_by_name import time
diff --git a/tests/bt/gatt/GattConnectionStressTest.py b/src/antlion/tests/bt/gatt/GattConnectionStressTest.py similarity index 96% rename from tests/bt/gatt/GattConnectionStressTest.py rename to src/antlion/tests/bt/gatt/GattConnectionStressTest.py index ff693b1..42e2f92 100644 --- a/tests/bt/gatt/GattConnectionStressTest.py +++ b/src/antlion/tests/bt/gatt/GattConnectionStressTest.py
@@ -30,8 +30,8 @@ from antlion import signals from antlion.base_test import BaseTestClass from antlion.test_decorators import test_tracker_info -from antlion_contrib.test_utils.bt.bt_test_utils import generate_id_by_size -from antlion_contrib.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name +from antlion.test_utils.bt.bt_test_utils import generate_id_by_size +from antlion.test_utils.fuchsia.bt_test_utils import le_scan_for_device_by_name class GattConnectionStressTest(BaseTestClass):
diff --git a/tests/bt/gatt/GattServerSetupTest.py b/src/antlion/tests/bt/gatt/GattServerSetupTest.py similarity index 100% rename from tests/bt/gatt/GattServerSetupTest.py rename to src/antlion/tests/bt/gatt/GattServerSetupTest.py
diff --git a/tests/bt/gatt/gatt_server_databases.py b/src/antlion/tests/bt/gatt/gatt_server_databases.py similarity index 99% rename from tests/bt/gatt/gatt_server_databases.py rename to src/antlion/tests/bt/gatt/gatt_server_databases.py index b50c141..ecdf40d 100644 --- a/tests/bt/gatt/gatt_server_databases.py +++ b/src/antlion/tests/bt/gatt/gatt_server_databases.py
@@ -17,12 +17,12 @@ GATT server dictionaries which will be setup in various tests. """ -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic -from antlion_contrib.test_utils.bt.bt_constants import gatt_descriptor -from antlion_contrib.test_utils.bt.bt_constants import gatt_service_types -from antlion_contrib.test_utils.bt.bt_constants import gatt_char_types -from antlion_contrib.test_utils.bt.bt_constants import gatt_characteristic_value_format -from antlion_contrib.test_utils.bt.bt_constants import gatt_char_desc_uuids +from antlion.test_utils.bt.bt_constants import gatt_characteristic +from antlion.test_utils.bt.bt_constants import gatt_descriptor +from antlion.test_utils.bt.bt_constants import gatt_service_types +from antlion.test_utils.bt.bt_constants import gatt_char_types +from antlion.test_utils.bt.bt_constants import gatt_characteristic_value_format +from antlion.test_utils.bt.bt_constants import gatt_char_desc_uuids SINGLE_PRIMARY_SERVICE = { 'services': [{
diff --git a/tests/bt/pts/GATT_PTS_INSTRUCTIONS b/src/antlion/tests/bt/pts/GATT_PTS_INSTRUCTIONS similarity index 100% rename from tests/bt/pts/GATT_PTS_INSTRUCTIONS rename to src/antlion/tests/bt/pts/GATT_PTS_INSTRUCTIONS
diff --git a/tests/dhcp/Dhcpv4InteropTest.py b/src/antlion/tests/dhcp/Dhcpv4InteropTest.py similarity index 98% rename from tests/dhcp/Dhcpv4InteropTest.py rename to src/antlion/tests/dhcp/Dhcpv4InteropTest.py index 09d6ea4..89aef29 100644 --- a/tests/dhcp/Dhcpv4InteropTest.py +++ b/src/antlion/tests/dhcp/Dhcpv4InteropTest.py
@@ -26,8 +26,8 @@ from antlion.controllers.ap_lib.hostapd_security import Security from antlion.controllers.ap_lib.hostapd_utils import generate_random_password from antlion.controllers.utils_lib.commands import ip -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest class Dhcpv4InteropFixture(WifiBaseTest):
diff --git a/tests/examples/Sl4fSanityTest.py b/src/antlion/tests/examples/Sl4fSanityTest.py similarity index 95% rename from tests/examples/Sl4fSanityTest.py rename to src/antlion/tests/examples/Sl4fSanityTest.py index 5921966..b8429af 100644 --- a/tests/examples/Sl4fSanityTest.py +++ b/src/antlion/tests/examples/Sl4fSanityTest.py
@@ -18,15 +18,15 @@ can communicate to ACTS successfully. """ -from antlion.base_test import BaseTestClass +from typing import List from antlion import asserts - +from antlion.base_test import BaseTestClass from antlion.controllers.fuchsia_device import FuchsiaDevice class Sl4fSanityTest(BaseTestClass): - fuchsia_devices: list[FuchsiaDevice] + fuchsia_devices: List[FuchsiaDevice] def setup_class(self): super().setup_class()
diff --git a/tests/flash/FlashTest.py b/src/antlion/tests/flash/FlashTest.py similarity index 100% rename from tests/flash/FlashTest.py rename to src/antlion/tests/flash/FlashTest.py
diff --git a/tests/logging/FuchsiaLoggingTest.py b/src/antlion/tests/logging/FuchsiaLoggingTest.py similarity index 100% rename from tests/logging/FuchsiaLoggingTest.py rename to src/antlion/tests/logging/FuchsiaLoggingTest.py
diff --git a/tests/netstack/NetstackIfaceTest.py b/src/antlion/tests/netstack/NetstackIfaceTest.py similarity index 100% rename from tests/netstack/NetstackIfaceTest.py rename to src/antlion/tests/netstack/NetstackIfaceTest.py
diff --git a/tests/netstack/NetstackIxiaTest.py b/src/antlion/tests/netstack/NetstackIxiaTest.py similarity index 98% rename from tests/netstack/NetstackIxiaTest.py rename to src/antlion/tests/netstack/NetstackIxiaTest.py index 6d1b8d1..bbe90a6 100644 --- a/tests/netstack/NetstackIxiaTest.py +++ b/src/antlion/tests/netstack/NetstackIxiaTest.py
@@ -20,7 +20,7 @@ from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security -from antlion_contrib.test_utils.net.NetstackBaseTest import NetstackBaseTest +from antlion.test_utils.net.NetstackBaseTest import NetstackBaseTest from antlion.utils import rand_ascii_str
diff --git a/tests/netstack/ToggleWlanInterfaceStressTest.py b/src/antlion/tests/netstack/ToggleWlanInterfaceStressTest.py similarity index 97% rename from tests/netstack/ToggleWlanInterfaceStressTest.py rename to src/antlion/tests/netstack/ToggleWlanInterfaceStressTest.py index 05798fc..5ce5fda 100644 --- a/tests/netstack/ToggleWlanInterfaceStressTest.py +++ b/src/antlion/tests/netstack/ToggleWlanInterfaceStressTest.py
@@ -17,7 +17,7 @@ from antlion import signals import time from antlion.base_test import BaseTestClass -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device class ToggleWlanInterfaceStressTest(BaseTestClass):
diff --git a/tests/wlan/compliance/VapeInteropTest.py b/src/antlion/tests/wlan/compliance/VapeInteropTest.py similarity index 99% rename from tests/wlan/compliance/VapeInteropTest.py rename to src/antlion/tests/wlan/compliance/VapeInteropTest.py index 33449e1..86bc3e3 100644 --- a/tests/wlan/compliance/VapeInteropTest.py +++ b/src/antlion/tests/wlan/compliance/VapeInteropTest.py
@@ -19,8 +19,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib.hostapd_security import Security -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest class VapeInteropTest(WifiBaseTest):
diff --git a/tests/wlan/compliance/WlanPhyCompliance11ACTest.py b/src/antlion/tests/wlan/compliance/WlanPhyCompliance11ACTest.py similarity index 98% rename from tests/wlan/compliance/WlanPhyCompliance11ACTest.py rename to src/antlion/tests/wlan/compliance/WlanPhyCompliance11ACTest.py index c5eb58c..5efe1f4 100644 --- a/tests/wlan/compliance/WlanPhyCompliance11ACTest.py +++ b/src/antlion/tests/wlan/compliance/WlanPhyCompliance11ACTest.py
@@ -21,8 +21,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib.hostapd_security import Security from antlion.controllers.ap_lib import hostapd_constants -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest from antlion.utils import rand_ascii_str # AC Capabilities
diff --git a/tests/wlan/compliance/WlanPhyCompliance11NTest.py b/src/antlion/tests/wlan/compliance/WlanPhyCompliance11NTest.py similarity index 98% rename from tests/wlan/compliance/WlanPhyCompliance11NTest.py rename to src/antlion/tests/wlan/compliance/WlanPhyCompliance11NTest.py index 61ae80e..d30982c 100644 --- a/tests/wlan/compliance/WlanPhyCompliance11NTest.py +++ b/src/antlion/tests/wlan/compliance/WlanPhyCompliance11NTest.py
@@ -23,8 +23,8 @@ from antlion.controllers.ap_lib import hostapd_config from antlion.controllers.ap_lib.hostapd_security import Security from antlion.controllers.ap_lib.hostapd_utils import generate_random_password -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest FREQUENCY_24 = ['2.4GHz'] FREQUENCY_5 = ['5GHz']
diff --git a/tests/wlan/compliance/WlanPhyComplianceABGTest.py b/src/antlion/tests/wlan/compliance/WlanPhyComplianceABGTest.py similarity index 99% rename from tests/wlan/compliance/WlanPhyComplianceABGTest.py rename to src/antlion/tests/wlan/compliance/WlanPhyComplianceABGTest.py index a1d4c9f..dc2116e 100644 --- a/tests/wlan/compliance/WlanPhyComplianceABGTest.py +++ b/src/antlion/tests/wlan/compliance/WlanPhyComplianceABGTest.py
@@ -19,8 +19,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest class WlanPhyComplianceABGTest(WifiBaseTest):
diff --git a/tests/wlan/compliance/WlanSecurityComplianceABGTest.py b/src/antlion/tests/wlan/compliance/WlanSecurityComplianceABGTest.py similarity index 99% rename from tests/wlan/compliance/WlanSecurityComplianceABGTest.py rename to src/antlion/tests/wlan/compliance/WlanSecurityComplianceABGTest.py index 50a1d9f..ade2036 100644 --- a/tests/wlan/compliance/WlanSecurityComplianceABGTest.py +++ b/src/antlion/tests/wlan/compliance/WlanSecurityComplianceABGTest.py
@@ -23,8 +23,8 @@ from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib.hostapd_security import Security from antlion.controllers.ap_lib.hostapd_utils import generate_random_password -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest AP_11ABG_PROFILE_NAME = 'whirlwind_11ag_legacy' SSID_LENGTH_DEFAULT = 15
diff --git a/tests/wlan/facade/WlanDeprecatedConfigurationTest.py b/src/antlion/tests/wlan/facade/WlanDeprecatedConfigurationTest.py similarity index 97% rename from tests/wlan/facade/WlanDeprecatedConfigurationTest.py rename to src/antlion/tests/wlan/facade/WlanDeprecatedConfigurationTest.py index 8c4feac..843d18f 100644 --- a/tests/wlan/facade/WlanDeprecatedConfigurationTest.py +++ b/src/antlion/tests/wlan/facade/WlanDeprecatedConfigurationTest.py
@@ -16,8 +16,8 @@ from antlion import asserts from antlion import utils -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device AP_ROLE = 'Ap' DEFAULT_SSID = 'testssid'
diff --git a/tests/wlan/facade/WlanFacadeTest.py b/src/antlion/tests/wlan/facade/WlanFacadeTest.py similarity index 93% rename from tests/wlan/facade/WlanFacadeTest.py rename to src/antlion/tests/wlan/facade/WlanFacadeTest.py index be9cac8..5a1d133 100644 --- a/tests/wlan/facade/WlanFacadeTest.py +++ b/src/antlion/tests/wlan/facade/WlanFacadeTest.py
@@ -20,8 +20,8 @@ import array from antlion import asserts, signals -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device class WlanFacadeTest(WifiBaseTest):
diff --git a/tests/wlan/facade/WlanStatusTest.py b/src/antlion/tests/wlan/facade/WlanStatusTest.py similarity index 97% rename from tests/wlan/facade/WlanStatusTest.py rename to src/antlion/tests/wlan/facade/WlanStatusTest.py index f9ab2cd..4c35c1e 100644 --- a/tests/wlan/facade/WlanStatusTest.py +++ b/src/antlion/tests/wlan/facade/WlanStatusTest.py
@@ -18,7 +18,7 @@ """ from antlion import signals -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest class WlanStatusTest(WifiBaseTest):
diff --git a/tests/wlan/functional/BeaconLossTest.py b/src/antlion/tests/wlan/functional/BeaconLossTest.py similarity index 96% rename from tests/wlan/functional/BeaconLossTest.py rename to src/antlion/tests/wlan/functional/BeaconLossTest.py index 44dba3d..6c8b74a 100644 --- a/tests/wlan/functional/BeaconLossTest.py +++ b/src/antlion/tests/wlan/functional/BeaconLossTest.py
@@ -30,8 +30,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device from antlion.utils import rand_ascii_str
diff --git a/tests/wlan/functional/ChannelSwitchTest.py b/src/antlion/tests/wlan/functional/ChannelSwitchTest.py similarity index 98% rename from tests/wlan/functional/ChannelSwitchTest.py rename to src/antlion/tests/wlan/functional/ChannelSwitchTest.py index 644e037..1c62919 100644 --- a/tests/wlan/functional/ChannelSwitchTest.py +++ b/src/antlion/tests/wlan/functional/ChannelSwitchTest.py
@@ -24,8 +24,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.utils import rand_ascii_str -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device from typing import Sequence
diff --git a/tests/wlan/functional/ConnectionStressTest.py b/src/antlion/tests/wlan/functional/ConnectionStressTest.py similarity index 97% rename from tests/wlan/functional/ConnectionStressTest.py rename to src/antlion/tests/wlan/functional/ConnectionStressTest.py index 2e70a83..635c902 100644 --- a/tests/wlan/functional/ConnectionStressTest.py +++ b/src/antlion/tests/wlan/functional/ConnectionStressTest.py
@@ -24,8 +24,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device from antlion.utils import rand_ascii_str
diff --git a/tests/wlan/functional/DownloadStressTest.py b/src/antlion/tests/wlan/functional/DownloadStressTest.py similarity index 96% rename from tests/wlan/functional/DownloadStressTest.py rename to src/antlion/tests/wlan/functional/DownloadStressTest.py index be87b98..e376539 100644 --- a/tests/wlan/functional/DownloadStressTest.py +++ b/src/antlion/tests/wlan/functional/DownloadStressTest.py
@@ -22,9 +22,9 @@ from antlion import signals from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.fuchsia import utils +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.fuchsia import utils from antlion.utils import rand_ascii_str
diff --git a/tests/wlan/functional/PingStressTest.py b/src/antlion/tests/wlan/functional/PingStressTest.py similarity index 97% rename from tests/wlan/functional/PingStressTest.py rename to src/antlion/tests/wlan/functional/PingStressTest.py index 510cfc9..1653205 100644 --- a/tests/wlan/functional/PingStressTest.py +++ b/src/antlion/tests/wlan/functional/PingStressTest.py
@@ -29,8 +29,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device from antlion.utils import rand_ascii_str LOOPBACK_IPV4 = '127.0.0.1'
diff --git a/tests/wlan/functional/SoftApTest.py b/src/antlion/tests/wlan/functional/SoftApTest.py similarity index 99% rename from tests/wlan/functional/SoftApTest.py rename to src/antlion/tests/wlan/functional/SoftApTest.py index baf85e9..7255b0c 100644 --- a/tests/wlan/functional/SoftApTest.py +++ b/src/antlion/tests/wlan/functional/SoftApTest.py
@@ -27,8 +27,8 @@ from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security from antlion.controllers.ap_lib.hostapd_utils import generate_random_password -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device CONNECTIVITY_MODE_LOCAL = 'local_only' CONNECTIVITY_MODE_UNRESTRICTED = 'unrestricted'
diff --git a/tests/wlan/functional/WlanRebootTest.py b/src/antlion/tests/wlan/functional/WlanRebootTest.py similarity index 93% rename from tests/wlan/functional/WlanRebootTest.py rename to src/antlion/tests/wlan/functional/WlanRebootTest.py index 85e5ab8..ed305c7 100644 --- a/tests/wlan/functional/WlanRebootTest.py +++ b/src/antlion/tests/wlan/functional/WlanRebootTest.py
@@ -25,16 +25,13 @@ from antlion import utils from antlion.controllers import iperf_client from antlion.controllers import iperf_server -from antlion.controllers.access_point import setup_ap +from antlion.controllers.access_point import AccessPoint, setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib.hostapd_security import Security from antlion.controllers.ap_lib.hostapd_utils import generate_random_password -from antlion.controllers.ap_lib.radvd import Radvd -from antlion.controllers.ap_lib import radvd_constants -from antlion.controllers.ap_lib.radvd_config import RadvdConfig -from antlion.controllers.fuchsia_device import IP_ADDRESS_TIMEOUT -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.controllers.fuchsia_lib.utils_lib import wait_for_port +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest # Constants, for readibility AP = 'ap' @@ -66,6 +63,7 @@ DEFAULT_IPERF_TIMEOUT = 30 DUT_NETWORK_CONNECTION_TIMEOUT = 60 +DUT_IP_ADDRESS_TIMEOUT = 30 # max time for DAD to complete # Constants for Custom Reboot Tests ALL = 'all' @@ -122,7 +120,7 @@ # Default is an android device, just like the other tests self.dut = create_wlan_device(self.android_devices[0]) - self.access_point = self.access_points[0] + self.access_point: AccessPoint = self.access_points[0] self.iperf_server_on_ap = None self.iperf_client_on_dut = None @@ -136,31 +134,18 @@ 'Skipping iperf throughput validation as requested by ACTS ' 'config') - self.router_adv_daemon = None - def setup_test(self): self.access_point.stop_all_aps() - if self.router_adv_daemon: - self.router_adv_daemon.stop() self.dut.wifi_toggle_state(True) for ad in self.android_devices: ad.droid.wakeLockAcquireBright() ad.droid.wakeUpNow() self.dut.disconnect() - self.router_adv_daemon = None self.ssid = utils.rand_ascii_str(hostapd_constants.AP_SSID_LENGTH_2G) def teardown_test(self): self.download_ap_logs() self.access_point.stop_all_aps() - if self.router_adv_daemon: - output_path = context.get_current_context().get_base_output_path() - full_output_path = os.path.join(output_path, "radvd_log.txt") - radvd_log_file = open(full_output_path, 'w') - radvd_log_file.write(self.router_adv_daemon.pull_logs()) - radvd_log_file.close() - self.router_adv_daemon.stop() - self.router_adv_daemon = None self.dut.disconnect() for ad in self.android_devices: ad.droid.wakeLockRelease() @@ -193,29 +178,23 @@ profile_name='whirlwind', channel=11, ssid=ssid, - security=security_profile) + security=security_profile, + is_ipv6_enabled=ipv6) elif band == BAND_5G: setup_ap(access_point=self.access_point, profile_name='whirlwind', channel=36, ssid=ssid, - security=security_profile) + security=security_profile, + is_ipv6_enabled=ipv6) if not ipv4: self.access_point.stop_dhcp() - if ipv6: - if band == BAND_2G: - self.router_adv_daemon = Radvd(self.access_point.ssh, - self.access_point.wlan_2g) - elif band == BAND_5G: - self.router_adv_daemon = Radvd(self.access_point.ssh, - self.access_point.wlan_5g) - radvd_config = RadvdConfig() - self.router_adv_daemon.start(radvd_config) self.log.info('Network (SSID: %s) is up.' % ssid) - def setup_iperf_server_on_ap(self, band): + def setup_iperf_server_on_ap(self, + band) -> iperf_server.IPerfServerOverSsh: """Configures iperf server based on the tests band. Args: @@ -522,15 +501,12 @@ self.iperf_server_on_ap = self.setup_iperf_server_on_ap(band) self.iperf_server_on_ap.start() + wait_for_port(self.iperf_server_on_ap.ssh_settings.hostname, 5201) - if ipv4: - self.verify_traffic_between_dut_and_ap( - self.iperf_server_on_ap, self.iperf_client_on_dut) - if ipv6: - self.verify_traffic_between_dut_and_ap( - self.iperf_server_on_ap, - self.iperf_client_on_dut, - ip_version=IPV6) + ip_version = IPV6 if ipv6 else IPV4 + self.verify_traffic_between_dut_and_ap(self.iperf_server_on_ap, + self.iperf_client_on_dut, + ip_version=ip_version) # Looping reboots for stress testing for run in range(iterations): @@ -784,4 +760,4 @@ self.dut_network_connection_timeout = self.wlan_reboot_test_params.get( 'dut_network_connection_timeout', DUT_NETWORK_CONNECTION_TIMEOUT) self.dut_ip_address_timeout = self.wlan_reboot_test_params.get( - 'dut_ip_address_timeout', IP_ADDRESS_TIMEOUT) + 'dut_ip_address_timeout', DUT_IP_ADDRESS_TIMEOUT)
diff --git a/tests/wlan/functional/WlanScanTest.py b/src/antlion/tests/wlan/functional/WlanScanTest.py similarity index 99% rename from tests/wlan/functional/WlanScanTest.py rename to src/antlion/tests/wlan/functional/WlanScanTest.py index a9b2545..ed5d08a 100644 --- a/tests/wlan/functional/WlanScanTest.py +++ b/src/antlion/tests/wlan/functional/WlanScanTest.py
@@ -26,7 +26,7 @@ from antlion.controllers.ap_lib import hostapd_bss_settings from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest class WlanScanTest(WifiBaseTest):
diff --git a/tests/wlan/functional/WlanTargetSecurityTest.py b/src/antlion/tests/wlan/functional/WlanTargetSecurityTest.py similarity index 98% rename from tests/wlan/functional/WlanTargetSecurityTest.py rename to src/antlion/tests/wlan/functional/WlanTargetSecurityTest.py index cc759e1..631df3b 100644 --- a/tests/wlan/functional/WlanTargetSecurityTest.py +++ b/src/antlion/tests/wlan/functional/WlanTargetSecurityTest.py
@@ -19,8 +19,8 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib.hostapd_security import Security -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device # TODO(fxb/68956): Add security protocol check to mixed mode tests when info is
diff --git a/tests/wlan/functional/WlanWirelessNetworkManagementTest.py b/src/antlion/tests/wlan/functional/WlanWirelessNetworkManagementTest.py similarity index 97% rename from tests/wlan/functional/WlanWirelessNetworkManagementTest.py rename to src/antlion/tests/wlan/functional/WlanWirelessNetworkManagementTest.py index b17511f..ffd41e2 100644 --- a/tests/wlan/functional/WlanWirelessNetworkManagementTest.py +++ b/src/antlion/tests/wlan/functional/WlanWirelessNetworkManagementTest.py
@@ -19,8 +19,8 @@ from datetime import datetime, timedelta, timezone from typing import FrozenSet -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device from antlion import asserts from antlion import signals from antlion import utils
diff --git a/tests/wlan/misc/WlanInterfaceTest.py b/src/antlion/tests/wlan/misc/WlanInterfaceTest.py similarity index 92% rename from tests/wlan/misc/WlanInterfaceTest.py rename to src/antlion/tests/wlan/misc/WlanInterfaceTest.py index d4773a3..352f704 100644 --- a/tests/wlan/misc/WlanInterfaceTest.py +++ b/src/antlion/tests/wlan/misc/WlanInterfaceTest.py
@@ -16,8 +16,8 @@ from antlion import signals -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device class WlanInterfaceTest(WifiBaseTest):
diff --git a/tests/wlan/misc/WlanMiscScenarioTest.py b/src/antlion/tests/wlan/misc/WlanMiscScenarioTest.py similarity index 96% rename from tests/wlan/misc/WlanMiscScenarioTest.py rename to src/antlion/tests/wlan/misc/WlanMiscScenarioTest.py index 72be614..ee4efa1 100644 --- a/tests/wlan/misc/WlanMiscScenarioTest.py +++ b/src/antlion/tests/wlan/misc/WlanMiscScenarioTest.py
@@ -20,8 +20,8 @@ from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib.hostapd_utils import generate_random_password from antlion.controllers.ap_lib.hostapd_security import Security -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device class WlanMiscScenarioTest(WifiBaseTest):
diff --git a/tests/wlan/performance/ChannelSweepTest.py b/src/antlion/tests/wlan/performance/ChannelSweepTest.py similarity index 98% rename from tests/wlan/performance/ChannelSweepTest.py rename to src/antlion/tests/wlan/performance/ChannelSweepTest.py index 893770e..4c84213 100644 --- a/tests/wlan/performance/ChannelSweepTest.py +++ b/src/antlion/tests/wlan/performance/ChannelSweepTest.py
@@ -19,11 +19,6 @@ from statistics import pstdev -from bokeh.plotting import ColumnDataSource -from bokeh.plotting import figure -from bokeh.plotting import output_file -from bokeh.plotting import save - from antlion import asserts from antlion import context from antlion import utils @@ -32,8 +27,8 @@ from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib.hostapd_security import Security from antlion.controllers.iperf_server import IPerfResult -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device N_CAPABILITIES_DEFAULT = [ hostapd_constants.N_CAPABILITY_LDPC, hostapd_constants.N_CAPABILITY_SGI20, @@ -399,6 +394,18 @@ # If performance measurement is skipped if not self.iperf_server: return + + try: + from bokeh.plotting import ColumnDataSource + from bokeh.plotting import figure + from bokeh.plotting import output_file + from bokeh.plotting import save + except ImportError as e: + self.log.warn("bokeh is not installed: skipping creation of graphs. " + "Note CSV files are still available. If graphs are " + "desired, install antlion with the \"bokeh\" feature.") + return + output_path = context.get_current_context().get_base_output_path() test_name = self.throughput_data['test'] channel_bandwidth = self.throughput_data['channel_bandwidth'] @@ -660,7 +667,7 @@ 'Getting ip address for DUT. Will retry for %s seconds.' % self.time_to_wait_for_ip_addr) iperf_client_address = self.get_and_verify_iperf_address( - channel, self.dut, self.iperf_client.test_interface) + channel, self.dut.device, self.iperf_client.test_interface) tx_throughput = self.get_iperf_throughput(iperf_server_address, iperf_client_address) rx_throughput = self.get_iperf_throughput(iperf_server_address,
diff --git a/tests/wlan/performance/WlanRvrTest.py b/src/antlion/tests/wlan/performance/WlanRvrTest.py similarity index 97% rename from tests/wlan/performance/WlanRvrTest.py rename to src/antlion/tests/wlan/performance/WlanRvrTest.py index 2ee500e..0c11c4b 100644 --- a/tests/wlan/performance/WlanRvrTest.py +++ b/src/antlion/tests/wlan/performance/WlanRvrTest.py
@@ -15,26 +15,20 @@ # limitations under the License. import os import time +import logging -from antlion import asserts -from antlion import context +from antlion import asserts, context from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib.radvd import Radvd -from antlion.controllers.ap_lib import radvd_constants from antlion.controllers.ap_lib.radvd_config import RadvdConfig from antlion.controllers.ap_lib.hostapd_security import Security from antlion.controllers.attenuator import get_attenuators_for_device from antlion.controllers.iperf_server import IPerfResult -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device from antlion.utils import rand_ascii_str -from bokeh.plotting import ColumnDataSource -from bokeh.plotting import figure -from bokeh.plotting import output_file -from bokeh.plotting import save - AP_11ABG_PROFILE_NAME = 'whirlwind_11ag_legacy' REPORTING_SPEED_UNITS = 'Mbps' @@ -53,6 +47,17 @@ Returns: A list of bokeh graph objects. """ + try: + from bokeh.plotting import ColumnDataSource + from bokeh.plotting import figure + from bokeh.plotting import output_file + from bokeh.plotting import save + except ImportError as e: + logging.warn("bokeh is not installed: skipping creation of graphs. " + "Note CSV files are still available. If graphs are " + "desired, install antlion with the \"bokeh\" feature.") + return [] + output_file('%srvr_throughput_vs_attn_%s.html' % (graph_path, test_name), title=test_name) throughput_vs_attn_data = ColumnDataSource(data=dict( @@ -201,12 +206,19 @@ if self.router_adv_daemon: self.router_adv_daemon.stop() try: + from bokeh.plotting import output_file + from bokeh.plotting import save + output_path = context.get_current_context().get_base_output_path() test_class_name = context.get_current_context().test_class_name output_file(f'{output_path}/{test_class_name}/rvr_summary.html', title='RvR Sumamry') save(list(self.rvr_graph_summary)) + except ImportError as e: + logging.warn("bokeh is not installed: skipping creation of graphs. " + "Note CSV files are still available. If graphs are " + "desired, install antlion with the \"bokeh\" feature.") except Exception as e: self.log.error(f'Unable to generate RvR summary file: {e}')
diff --git a/tests/wlan/performance/WlanWmmTest.py b/src/antlion/tests/wlan/performance/WlanWmmTest.py similarity index 96% rename from tests/wlan/performance/WlanWmmTest.py rename to src/antlion/tests/wlan/performance/WlanWmmTest.py index 72049ae..2094232 100644 --- a/tests/wlan/performance/WlanWmmTest.py +++ b/src/antlion/tests/wlan/performance/WlanWmmTest.py
@@ -17,20 +17,16 @@ import operator import time -from bokeh.palettes import Category10 -from bokeh.plotting import ColumnDataSource, figure, output_file, save -from bokeh.models import Span, Label - from antlion import asserts from antlion import context from antlion import utils from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security -from antlion_contrib.test_utils.abstract_devices import wmm_transceiver -from antlion_contrib.test_utils.fuchsia import wmm_test_cases -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest -from antlion_contrib.test_utils.abstract_devices.wlan_device import create_wlan_device +from antlion.test_utils.abstract_devices import wmm_transceiver +from antlion.test_utils.fuchsia import wmm_test_cases +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.abstract_devices.wlan_device import create_wlan_device DEFAULT_N_CAPABILITIES_20_MHZ = [ hostapd_constants.N_CAPABILITY_LDPC, hostapd_constants.N_CAPABILITY_SGI20, @@ -404,6 +400,16 @@ """ + try: + from bokeh.palettes import Category10 + from bokeh.plotting import ColumnDataSource, figure, output_file, save + from bokeh.models import Span, Label + except ImportError as e: + self.log.warn("bokeh is not installed: skipping creation of graphs. " + "Note CSV files are still available. If graphs are " + "desired, install antlion with the \"bokeh\" feature.") + return + output_path = context.get_current_context().get_base_output_path() output_file_name = '%s/WlanWmmTest/%s.html' % (output_path, self.test_name) @@ -451,12 +457,12 @@ dict(time=[ x for x in range(start_time, start_time + stream_time) ], - instantaneous_bws=instantaneous_rates, - avg_bw=[avg_rate for _ in range(stream_time)], - stream_id=[stream_id for _ in range(stream_time)], - attempted_bw=[ - stream_bw_formula_str for _ in range(stream_time) - ])) + instantaneous_bws=instantaneous_rates, + avg_bw=[avg_rate for _ in range(stream_time)], + stream_id=[stream_id for _ in range(stream_time)], + attempted_bw=[ + stream_bw_formula_str for _ in range(stream_time) + ])) line = { 'x_axis': 'time', 'y_axis': 'instantaneous_bws',
diff --git a/tests/wlan_policy/HiddenNetworksTest.py b/src/antlion/tests/wlan_policy/HiddenNetworksTest.py similarity index 98% rename from tests/wlan_policy/HiddenNetworksTest.py rename to src/antlion/tests/wlan_policy/HiddenNetworksTest.py index e4a2f6c..aa2c7ba 100644 --- a/tests/wlan_policy/HiddenNetworksTest.py +++ b/src/antlion/tests/wlan_policy/HiddenNetworksTest.py
@@ -20,7 +20,7 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest from antlion.utils import rand_ascii_str # These tests should have a longer timeout for connecting than normal connect
diff --git a/tests/wlan_policy/PolicyScanTest.py b/src/antlion/tests/wlan_policy/PolicyScanTest.py similarity index 98% rename from tests/wlan_policy/PolicyScanTest.py rename to src/antlion/tests/wlan_policy/PolicyScanTest.py index e38cdfe..ca05e6a 100644 --- a/tests/wlan_policy/PolicyScanTest.py +++ b/src/antlion/tests/wlan_policy/PolicyScanTest.py
@@ -21,7 +21,7 @@ from antlion import signals from antlion.controllers.ap_lib import (hostapd_ap_preset, hostapd_bss_settings, hostapd_constants, hostapd_security) -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest class PolicyScanTest(WifiBaseTest):
diff --git a/tests/wlan_policy/RegulatoryRecoveryTest.py b/src/antlion/tests/wlan_policy/RegulatoryRecoveryTest.py similarity index 98% rename from tests/wlan_policy/RegulatoryRecoveryTest.py rename to src/antlion/tests/wlan_policy/RegulatoryRecoveryTest.py index e5b770c..3e308bb 100644 --- a/tests/wlan_policy/RegulatoryRecoveryTest.py +++ b/src/antlion/tests/wlan_policy/RegulatoryRecoveryTest.py
@@ -15,7 +15,7 @@ # limitations under the License. from antlion import signals -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest class RegulatoryRecoveryTest(WifiBaseTest):
diff --git a/tests/wlan_policy/SavedNetworksTest.py b/src/antlion/tests/wlan_policy/SavedNetworksTest.py similarity index 99% rename from tests/wlan_policy/SavedNetworksTest.py rename to src/antlion/tests/wlan_policy/SavedNetworksTest.py index 8b174c2..ca9ade2 100644 --- a/tests/wlan_policy/SavedNetworksTest.py +++ b/src/antlion/tests/wlan_policy/SavedNetworksTest.py
@@ -22,7 +22,7 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest from antlion.utils import rand_ascii_str, rand_hex_str PSK_LEN = 64
diff --git a/tests/wlan_policy/StartStopClientConnectionsTest.py b/src/antlion/tests/wlan_policy/StartStopClientConnectionsTest.py similarity index 98% rename from tests/wlan_policy/StartStopClientConnectionsTest.py rename to src/antlion/tests/wlan_policy/StartStopClientConnectionsTest.py index c80e5b8..01a3094 100644 --- a/tests/wlan_policy/StartStopClientConnectionsTest.py +++ b/src/antlion/tests/wlan_policy/StartStopClientConnectionsTest.py
@@ -20,7 +20,7 @@ from antlion.controllers.access_point import setup_ap from antlion.controllers.ap_lib import hostapd_constants from antlion.controllers.ap_lib import hostapd_security -from antlion_contrib.test_utils.wifi.WifiBaseTest import WifiBaseTest +from antlion.test_utils.wifi.WifiBaseTest import WifiBaseTest from antlion.utils import rand_ascii_str DISCONNECTED = "Disconnected"
diff --git a/unit_tests/AttenuatorSanityTest.py b/src/antlion/unit_tests/AttenuatorSanityTest.py similarity index 100% rename from unit_tests/AttenuatorSanityTest.py rename to src/antlion/unit_tests/AttenuatorSanityTest.py
diff --git a/unit_tests/IntegrationTest.py b/src/antlion/unit_tests/IntegrationTest.py similarity index 100% rename from unit_tests/IntegrationTest.py rename to src/antlion/unit_tests/IntegrationTest.py
diff --git a/unit_tests/Sl4aSanityTest.py b/src/antlion/unit_tests/Sl4aSanityTest.py similarity index 100% rename from unit_tests/Sl4aSanityTest.py rename to src/antlion/unit_tests/Sl4aSanityTest.py
diff --git a/unit_tests/SnifferSanityTest.py b/src/antlion/unit_tests/SnifferSanityTest.py similarity index 100% rename from unit_tests/SnifferSanityTest.py rename to src/antlion/unit_tests/SnifferSanityTest.py
diff --git a/src/antlion_contrib/__init__.py b/src/antlion/unit_tests/__init__.py similarity index 100% rename from src/antlion_contrib/__init__.py rename to src/antlion/unit_tests/__init__.py
diff --git a/unit_tests/acts_adb_test.py b/src/antlion/unit_tests/acts_adb_test.py similarity index 100% rename from unit_tests/acts_adb_test.py rename to src/antlion/unit_tests/acts_adb_test.py
diff --git a/unit_tests/acts_android_device_test.py b/src/antlion/unit_tests/acts_android_device_test.py similarity index 100% rename from unit_tests/acts_android_device_test.py rename to src/antlion/unit_tests/acts_android_device_test.py
diff --git a/unit_tests/acts_asserts_test.py b/src/antlion/unit_tests/acts_asserts_test.py similarity index 100% rename from unit_tests/acts_asserts_test.py rename to src/antlion/unit_tests/acts_asserts_test.py
diff --git a/unit_tests/acts_base_class_test.py b/src/antlion/unit_tests/acts_base_class_test.py similarity index 100% rename from unit_tests/acts_base_class_test.py rename to src/antlion/unit_tests/acts_base_class_test.py
diff --git a/unit_tests/acts_confidence_test_config.json b/src/antlion/unit_tests/acts_confidence_test_config.json similarity index 100% rename from unit_tests/acts_confidence_test_config.json rename to src/antlion/unit_tests/acts_confidence_test_config.json
diff --git a/unit_tests/acts_context_test.py b/src/antlion/unit_tests/acts_context_test.py similarity index 100% rename from unit_tests/acts_context_test.py rename to src/antlion/unit_tests/acts_context_test.py
diff --git a/unit_tests/acts_error_test.py b/src/antlion/unit_tests/acts_error_test.py similarity index 100% rename from unit_tests/acts_error_test.py rename to src/antlion/unit_tests/acts_error_test.py
diff --git a/unit_tests/acts_host_utils_test.py b/src/antlion/unit_tests/acts_host_utils_test.py similarity index 100% rename from unit_tests/acts_host_utils_test.py rename to src/antlion/unit_tests/acts_host_utils_test.py
diff --git a/unit_tests/acts_import_unit_test.py b/src/antlion/unit_tests/acts_import_unit_test.py similarity index 100% rename from unit_tests/acts_import_unit_test.py rename to src/antlion/unit_tests/acts_import_unit_test.py
diff --git a/unit_tests/acts_job_test.py b/src/antlion/unit_tests/acts_job_test.py similarity index 97% rename from unit_tests/acts_job_test.py rename to src/antlion/unit_tests/acts_job_test.py index 84d5c7f..12ff68f 100755 --- a/unit_tests/acts_job_test.py +++ b/src/antlion/unit_tests/acts_job_test.py
@@ -14,9 +14,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Import the python3 compatible bytes() -from builtins import bytes - import mock import os import sys
diff --git a/unit_tests/acts_logger_test.py b/src/antlion/unit_tests/acts_logger_test.py similarity index 100% rename from unit_tests/acts_logger_test.py rename to src/antlion/unit_tests/acts_logger_test.py
diff --git a/unit_tests/acts_records_test.py b/src/antlion/unit_tests/acts_records_test.py similarity index 100% rename from unit_tests/acts_records_test.py rename to src/antlion/unit_tests/acts_records_test.py
diff --git a/unit_tests/acts_relay_controller_test.py b/src/antlion/unit_tests/acts_relay_controller_test.py similarity index 100% rename from unit_tests/acts_relay_controller_test.py rename to src/antlion/unit_tests/acts_relay_controller_test.py
diff --git a/unit_tests/acts_sanity_test_config.json b/src/antlion/unit_tests/acts_sanity_test_config.json similarity index 100% rename from unit_tests/acts_sanity_test_config.json rename to src/antlion/unit_tests/acts_sanity_test_config.json
diff --git a/unit_tests/acts_sniffer_test_config.json b/src/antlion/unit_tests/acts_sniffer_test_config.json similarity index 100% rename from unit_tests/acts_sniffer_test_config.json rename to src/antlion/unit_tests/acts_sniffer_test_config.json
diff --git a/unit_tests/acts_test_decorators_test.py b/src/antlion/unit_tests/acts_test_decorators_test.py similarity index 100% rename from unit_tests/acts_test_decorators_test.py rename to src/antlion/unit_tests/acts_test_decorators_test.py
diff --git a/unit_tests/acts_test_runner_test.py b/src/antlion/unit_tests/acts_test_runner_test.py similarity index 100% rename from unit_tests/acts_test_runner_test.py rename to src/antlion/unit_tests/acts_test_runner_test.py
diff --git a/unit_tests/acts_utils_test.py b/src/antlion/unit_tests/acts_utils_test.py similarity index 96% rename from unit_tests/acts_utils_test.py rename to src/antlion/unit_tests/acts_utils_test.py index bf55ec6..1c8b21f 100755 --- a/unit_tests/acts_utils_test.py +++ b/src/antlion/unit_tests/acts_utils_test.py
@@ -280,8 +280,8 @@ values returned from each individual callable in the order passed in. """ ret_values = utils.run_concurrent_actions_no_raise( - lambda: self.function_returns_passed_in_arg( - 'ARG1'), lambda: self.function_returns_passed_in_arg('ARG2'), + lambda: self.function_returns_passed_in_arg('ARG1'), + lambda: self.function_returns_passed_in_arg('ARG2'), lambda: self.function_returns_passed_in_arg('ARG3')) self.assertEqual(len(ret_values), 3) @@ -312,8 +312,8 @@ """ ret_values = utils.run_concurrent_actions( - lambda: self.function_returns_passed_in_arg( - 'ARG1'), lambda: self.function_returns_passed_in_arg('ARG2'), + lambda: self.function_returns_passed_in_arg('ARG1'), + lambda: self.function_returns_passed_in_arg('ARG2'), lambda: self.function_returns_passed_in_arg('ARG3')) self.assertEqual(len(ret_values), 3) @@ -370,6 +370,7 @@ class IpAddressUtilTest(unittest.TestCase): + def test_positive_ipv4_normal_address(self): ip_address = "192.168.1.123" self.assertTrue(utils.is_valid_ipv4_address(ip_address)) @@ -432,7 +433,8 @@ self.assertEqual(utils.get_interface_ip_addresses(job, 'wlan1'), CORRECT_EMPTY_IP_LIST) - @mock.patch('antlion.controllers.utils_lib.ssh.connection.SshConnection.run') + @mock.patch( + 'antlion.controllers.utils_lib.ssh.connection.SshConnection.run') def test_ssh_get_interface_ip_addresses_full(self, ssh_mock): ssh_mock.side_effect = [ job.Result(stdout=bytes(MOCK_ENO1_IP_ADDRESSES, 'utf-8'), @@ -442,7 +444,8 @@ utils.get_interface_ip_addresses(SshConnection('mock_settings'), 'eno1'), CORRECT_FULL_IP_LIST) - @mock.patch('antlion.controllers.utils_lib.ssh.connection.SshConnection.run') + @mock.patch( + 'antlion.controllers.utils_lib.ssh.connection.SshConnection.run') def test_ssh_get_interface_ip_addresses_empty(self, ssh_mock): ssh_mock.side_effect = [ job.Result(stdout=bytes(MOCK_WLAN1_IP_ADDRESSES, 'utf-8'), @@ -483,14 +486,14 @@ @mock.patch( 'antlion.controllers.fuchsia_lib.sl4f.SL4F._verify_sl4f_connection') @mock.patch('antlion.controllers.fuchsia_device.' - 'FuchsiaDevice._set_control_path_config') + 'FuchsiaDevice._generate_ssh_config') @mock.patch('antlion.controllers.' 'fuchsia_lib.netstack.netstack_lib.' 'FuchsiaNetstackLib.netstackListInterfaces') def test_fuchsia_get_interface_ip_addresses_full( - self, list_interfaces_mock, control_path_mock, - verify_sl4f_conn_mock, ssh_run_mock, wait_for_port_mock, - ffx_mock, sl4f_mock): + self, list_interfaces_mock, generate_ssh_config_mock, + verify_sl4f_conn_mock, ssh_run_mock, wait_for_port_mock, ffx_mock, + sl4f_mock): # Configure the log path which is required by ACTS logger. logging.log_path = '/tmp/unit_test_garbage' @@ -519,14 +522,14 @@ @mock.patch( 'antlion.controllers.fuchsia_lib.sl4f.SL4F._verify_sl4f_connection') @mock.patch('antlion.controllers.fuchsia_device.' - 'FuchsiaDevice._set_control_path_config') + 'FuchsiaDevice._generate_ssh_config') @mock.patch('antlion.controllers.' 'fuchsia_lib.netstack.netstack_lib.' 'FuchsiaNetstackLib.netstackListInterfaces') def test_fuchsia_get_interface_ip_addresses_empty( - self, list_interfaces_mock, control_path_mock, - verify_sl4f_conn_mock, ssh_run_mock, wait_for_port_mock, - ffx_mock, sl4f_mock): + self, list_interfaces_mock, generate_ssh_config_mock, + verify_sl4f_conn_mock, ssh_run_mock, wait_for_port_mock, ffx_mock, + sl4f_mock): # Configure the log path which is required by ACTS logger. logging.log_path = '/tmp/unit_test_garbage' @@ -548,7 +551,9 @@ class GetDeviceTest(unittest.TestCase): + class TestDevice: + def __init__(self, id, device_type=None) -> None: self.id = id if device_type:
diff --git a/unit_tests/controllers/__init__.py b/src/antlion/unit_tests/controllers/__init__.py similarity index 100% rename from unit_tests/controllers/__init__.py rename to src/antlion/unit_tests/controllers/__init__.py
diff --git a/unit_tests/controllers/abstract_inst_test.py b/src/antlion/unit_tests/controllers/abstract_inst_test.py similarity index 100% rename from unit_tests/controllers/abstract_inst_test.py rename to src/antlion/unit_tests/controllers/abstract_inst_test.py
diff --git a/unit_tests/controllers/android_lib/__init__.py b/src/antlion/unit_tests/controllers/android_lib/__init__.py similarity index 100% rename from unit_tests/controllers/android_lib/__init__.py rename to src/antlion/unit_tests/controllers/android_lib/__init__.py
diff --git a/unit_tests/controllers/android_lib/logcat_test.py b/src/antlion/unit_tests/controllers/android_lib/logcat_test.py similarity index 100% rename from unit_tests/controllers/android_lib/logcat_test.py rename to src/antlion/unit_tests/controllers/android_lib/logcat_test.py
diff --git a/unit_tests/controllers/android_lib/services_test.py b/src/antlion/unit_tests/controllers/android_lib/services_test.py similarity index 100% rename from unit_tests/controllers/android_lib/services_test.py rename to src/antlion/unit_tests/controllers/android_lib/services_test.py
diff --git a/unit_tests/controllers/ap_lib/__init__.py b/src/antlion/unit_tests/controllers/ap_lib/__init__.py similarity index 100% rename from unit_tests/controllers/ap_lib/__init__.py rename to src/antlion/unit_tests/controllers/ap_lib/__init__.py
diff --git a/unit_tests/controllers/ap_lib/dhcp_config_test.py b/src/antlion/unit_tests/controllers/ap_lib/dhcp_config_test.py similarity index 100% rename from unit_tests/controllers/ap_lib/dhcp_config_test.py rename to src/antlion/unit_tests/controllers/ap_lib/dhcp_config_test.py
diff --git a/unit_tests/controllers/ap_lib/radio_measurement_test.py b/src/antlion/unit_tests/controllers/ap_lib/radio_measurement_test.py similarity index 100% rename from unit_tests/controllers/ap_lib/radio_measurement_test.py rename to src/antlion/unit_tests/controllers/ap_lib/radio_measurement_test.py
diff --git a/unit_tests/controllers/ap_lib/radvd_test.py b/src/antlion/unit_tests/controllers/ap_lib/radvd_test.py similarity index 100% rename from unit_tests/controllers/ap_lib/radvd_test.py rename to src/antlion/unit_tests/controllers/ap_lib/radvd_test.py
diff --git a/unit_tests/controllers/ap_lib/wireless_network_management_test.py b/src/antlion/unit_tests/controllers/ap_lib/wireless_network_management_test.py similarity index 100% rename from unit_tests/controllers/ap_lib/wireless_network_management_test.py rename to src/antlion/unit_tests/controllers/ap_lib/wireless_network_management_test.py
diff --git a/unit_tests/controllers/bits_lib/__init__.py b/src/antlion/unit_tests/controllers/bits_lib/__init__.py similarity index 100% rename from unit_tests/controllers/bits_lib/__init__.py rename to src/antlion/unit_tests/controllers/bits_lib/__init__.py
diff --git a/unit_tests/controllers/bits_lib/bits_client_test.py b/src/antlion/unit_tests/controllers/bits_lib/bits_client_test.py similarity index 100% rename from unit_tests/controllers/bits_lib/bits_client_test.py rename to src/antlion/unit_tests/controllers/bits_lib/bits_client_test.py
diff --git a/unit_tests/controllers/bits_lib/bits_service_config_test.py b/src/antlion/unit_tests/controllers/bits_lib/bits_service_config_test.py similarity index 100% rename from unit_tests/controllers/bits_lib/bits_service_config_test.py rename to src/antlion/unit_tests/controllers/bits_lib/bits_service_config_test.py
diff --git a/unit_tests/controllers/bits_lib/bits_service_test.py b/src/antlion/unit_tests/controllers/bits_lib/bits_service_test.py similarity index 100% rename from unit_tests/controllers/bits_lib/bits_service_test.py rename to src/antlion/unit_tests/controllers/bits_lib/bits_service_test.py
diff --git a/unit_tests/controllers/bits_test.py b/src/antlion/unit_tests/controllers/bits_test.py similarity index 100% rename from unit_tests/controllers/bits_test.py rename to src/antlion/unit_tests/controllers/bits_test.py
diff --git a/unit_tests/controllers/data/sample_monsoon_data b/src/antlion/unit_tests/controllers/data/sample_monsoon_data similarity index 100% rename from unit_tests/controllers/data/sample_monsoon_data rename to src/antlion/unit_tests/controllers/data/sample_monsoon_data
diff --git a/unit_tests/controllers/iperf_client_test.py b/src/antlion/unit_tests/controllers/iperf_client_test.py similarity index 100% rename from unit_tests/controllers/iperf_client_test.py rename to src/antlion/unit_tests/controllers/iperf_client_test.py
diff --git a/unit_tests/controllers/iperf_server_test.py b/src/antlion/unit_tests/controllers/iperf_server_test.py similarity index 100% rename from unit_tests/controllers/iperf_server_test.py rename to src/antlion/unit_tests/controllers/iperf_server_test.py
diff --git a/unit_tests/controllers/monsoon_lib/__init__.py b/src/antlion/unit_tests/controllers/monsoon_lib/__init__.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/__init__.py rename to src/antlion/unit_tests/controllers/monsoon_lib/__init__.py
diff --git a/unit_tests/controllers/monsoon_lib/api/__init__.py b/src/antlion/unit_tests/controllers/monsoon_lib/api/__init__.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/api/__init__.py rename to src/antlion/unit_tests/controllers/monsoon_lib/api/__init__.py
diff --git a/unit_tests/controllers/monsoon_lib/api/hvpm/__init__.py b/src/antlion/unit_tests/controllers/monsoon_lib/api/hvpm/__init__.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/api/hvpm/__init__.py rename to src/antlion/unit_tests/controllers/monsoon_lib/api/hvpm/__init__.py
diff --git a/unit_tests/controllers/monsoon_lib/api/hvpm/monsoon_test.py b/src/antlion/unit_tests/controllers/monsoon_lib/api/hvpm/monsoon_test.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/api/hvpm/monsoon_test.py rename to src/antlion/unit_tests/controllers/monsoon_lib/api/hvpm/monsoon_test.py
diff --git a/unit_tests/controllers/monsoon_lib/api/lvpm_stock/__init__.py b/src/antlion/unit_tests/controllers/monsoon_lib/api/lvpm_stock/__init__.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/api/lvpm_stock/__init__.py rename to src/antlion/unit_tests/controllers/monsoon_lib/api/lvpm_stock/__init__.py
diff --git a/unit_tests/controllers/monsoon_lib/api/lvpm_stock/monsoon_test.py b/src/antlion/unit_tests/controllers/monsoon_lib/api/lvpm_stock/monsoon_test.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/api/lvpm_stock/monsoon_test.py rename to src/antlion/unit_tests/controllers/monsoon_lib/api/lvpm_stock/monsoon_test.py
diff --git a/unit_tests/controllers/monsoon_lib/api/monsoon_test.py b/src/antlion/unit_tests/controllers/monsoon_lib/api/monsoon_test.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/api/monsoon_test.py rename to src/antlion/unit_tests/controllers/monsoon_lib/api/monsoon_test.py
diff --git a/unit_tests/controllers/monsoon_lib/sampling/__init__.py b/src/antlion/unit_tests/controllers/monsoon_lib/sampling/__init__.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/sampling/__init__.py rename to src/antlion/unit_tests/controllers/monsoon_lib/sampling/__init__.py
diff --git a/unit_tests/controllers/monsoon_lib/sampling/engine/__init__.py b/src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/__init__.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/sampling/engine/__init__.py rename to src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/__init__.py
diff --git a/unit_tests/controllers/monsoon_lib/sampling/engine/assembly_line_test.py b/src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/assembly_line_test.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/sampling/engine/assembly_line_test.py rename to src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/assembly_line_test.py
diff --git a/unit_tests/controllers/monsoon_lib/sampling/engine/calibration_test.py b/src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/calibration_test.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/sampling/engine/calibration_test.py rename to src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/calibration_test.py
diff --git a/unit_tests/controllers/monsoon_lib/sampling/engine/transformer_test.py b/src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/transformer_test.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/sampling/engine/transformer_test.py rename to src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/transformer_test.py
diff --git a/unit_tests/controllers/monsoon_lib/sampling/engine/transformers_test.py b/src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/transformers_test.py similarity index 100% rename from unit_tests/controllers/monsoon_lib/sampling/engine/transformers_test.py rename to src/antlion/unit_tests/controllers/monsoon_lib/sampling/engine/transformers_test.py
diff --git a/unit_tests/controllers/monsoon_test.py b/src/antlion/unit_tests/controllers/monsoon_test.py similarity index 100% rename from unit_tests/controllers/monsoon_test.py rename to src/antlion/unit_tests/controllers/monsoon_test.py
diff --git a/unit_tests/controllers/pdu_lib/__init__.py b/src/antlion/unit_tests/controllers/pdu_lib/__init__.py similarity index 100% rename from unit_tests/controllers/pdu_lib/__init__.py rename to src/antlion/unit_tests/controllers/pdu_lib/__init__.py
diff --git a/unit_tests/controllers/pdu_lib/synaccess/__init__.py b/src/antlion/unit_tests/controllers/pdu_lib/synaccess/__init__.py similarity index 100% rename from unit_tests/controllers/pdu_lib/synaccess/__init__.py rename to src/antlion/unit_tests/controllers/pdu_lib/synaccess/__init__.py
diff --git a/unit_tests/controllers/pdu_lib/synaccess/np02b_test.py b/src/antlion/unit_tests/controllers/pdu_lib/synaccess/np02b_test.py similarity index 100% rename from unit_tests/controllers/pdu_lib/synaccess/np02b_test.py rename to src/antlion/unit_tests/controllers/pdu_lib/synaccess/np02b_test.py
diff --git a/unit_tests/controllers/power_metrics_test.py b/src/antlion/unit_tests/controllers/power_metrics_test.py similarity index 100% rename from unit_tests/controllers/power_metrics_test.py rename to src/antlion/unit_tests/controllers/power_metrics_test.py
diff --git a/unit_tests/controllers/power_monitor_test.py b/src/antlion/unit_tests/controllers/power_monitor_test.py similarity index 100% rename from unit_tests/controllers/power_monitor_test.py rename to src/antlion/unit_tests/controllers/power_monitor_test.py
diff --git a/unit_tests/controllers/rohdeschwarz_lib/__init__.py b/src/antlion/unit_tests/controllers/rohdeschwarz_lib/__init__.py similarity index 100% rename from unit_tests/controllers/rohdeschwarz_lib/__init__.py rename to src/antlion/unit_tests/controllers/rohdeschwarz_lib/__init__.py
diff --git a/unit_tests/controllers/rohdeschwarz_lib/contest_test.py b/src/antlion/unit_tests/controllers/rohdeschwarz_lib/contest_test.py similarity index 100% rename from unit_tests/controllers/rohdeschwarz_lib/contest_test.py rename to src/antlion/unit_tests/controllers/rohdeschwarz_lib/contest_test.py
diff --git a/unit_tests/controllers/sl4a_lib/__init__.py b/src/antlion/unit_tests/controllers/sl4a_lib/__init__.py similarity index 100% rename from unit_tests/controllers/sl4a_lib/__init__.py rename to src/antlion/unit_tests/controllers/sl4a_lib/__init__.py
diff --git a/unit_tests/controllers/sl4a_lib/rpc_client_test.py b/src/antlion/unit_tests/controllers/sl4a_lib/rpc_client_test.py similarity index 100% rename from unit_tests/controllers/sl4a_lib/rpc_client_test.py rename to src/antlion/unit_tests/controllers/sl4a_lib/rpc_client_test.py
diff --git a/unit_tests/controllers/sl4a_lib/rpc_connection_test.py b/src/antlion/unit_tests/controllers/sl4a_lib/rpc_connection_test.py similarity index 100% rename from unit_tests/controllers/sl4a_lib/rpc_connection_test.py rename to src/antlion/unit_tests/controllers/sl4a_lib/rpc_connection_test.py
diff --git a/unit_tests/controllers/sl4a_lib/sl4a_manager_test.py b/src/antlion/unit_tests/controllers/sl4a_lib/sl4a_manager_test.py similarity index 100% rename from unit_tests/controllers/sl4a_lib/sl4a_manager_test.py rename to src/antlion/unit_tests/controllers/sl4a_lib/sl4a_manager_test.py
diff --git a/unit_tests/controllers/sl4a_lib/sl4a_session_test.py b/src/antlion/unit_tests/controllers/sl4a_lib/sl4a_session_test.py similarity index 100% rename from unit_tests/controllers/sl4a_lib/sl4a_session_test.py rename to src/antlion/unit_tests/controllers/sl4a_lib/sl4a_session_test.py
diff --git a/unit_tests/event/__init__.py b/src/antlion/unit_tests/event/__init__.py similarity index 100% rename from unit_tests/event/__init__.py rename to src/antlion/unit_tests/event/__init__.py
diff --git a/unit_tests/event/decorators_test.py b/src/antlion/unit_tests/event/decorators_test.py similarity index 100% rename from unit_tests/event/decorators_test.py rename to src/antlion/unit_tests/event/decorators_test.py
diff --git a/unit_tests/event/event_bus_integration_test.py b/src/antlion/unit_tests/event/event_bus_integration_test.py similarity index 100% rename from unit_tests/event/event_bus_integration_test.py rename to src/antlion/unit_tests/event/event_bus_integration_test.py
diff --git a/unit_tests/event/event_bus_test.py b/src/antlion/unit_tests/event/event_bus_test.py similarity index 100% rename from unit_tests/event/event_bus_test.py rename to src/antlion/unit_tests/event/event_bus_test.py
diff --git a/unit_tests/event/event_subscription_test.py b/src/antlion/unit_tests/event/event_subscription_test.py similarity index 100% rename from unit_tests/event/event_subscription_test.py rename to src/antlion/unit_tests/event/event_subscription_test.py
diff --git a/unit_tests/event/subscription_bundle_test.py b/src/antlion/unit_tests/event/subscription_bundle_test.py similarity index 100% rename from unit_tests/event/subscription_bundle_test.py rename to src/antlion/unit_tests/event/subscription_bundle_test.py
diff --git a/unit_tests/libs/__init__.py b/src/antlion/unit_tests/libs/__init__.py similarity index 100% rename from unit_tests/libs/__init__.py rename to src/antlion/unit_tests/libs/__init__.py
diff --git a/unit_tests/libs/logging/__init__.py b/src/antlion/unit_tests/libs/logging/__init__.py similarity index 100% rename from unit_tests/libs/logging/__init__.py rename to src/antlion/unit_tests/libs/logging/__init__.py
diff --git a/unit_tests/libs/logging/log_stream_test.py b/src/antlion/unit_tests/libs/logging/log_stream_test.py similarity index 100% rename from unit_tests/libs/logging/log_stream_test.py rename to src/antlion/unit_tests/libs/logging/log_stream_test.py
diff --git a/unit_tests/libs/ota/__init__.py b/src/antlion/unit_tests/libs/ota/__init__.py similarity index 100% rename from unit_tests/libs/ota/__init__.py rename to src/antlion/unit_tests/libs/ota/__init__.py
diff --git a/unit_tests/libs/ota/dummy_ota_package.zip b/src/antlion/unit_tests/libs/ota/dummy_ota_package.zip similarity index 100% rename from unit_tests/libs/ota/dummy_ota_package.zip rename to src/antlion/unit_tests/libs/ota/dummy_ota_package.zip Binary files differ
diff --git a/unit_tests/libs/ota/ota_runners/__init__.py b/src/antlion/unit_tests/libs/ota/ota_runners/__init__.py similarity index 100% rename from unit_tests/libs/ota/ota_runners/__init__.py rename to src/antlion/unit_tests/libs/ota/ota_runners/__init__.py
diff --git a/unit_tests/libs/ota/ota_runners/ota_runner_factory_test.py b/src/antlion/unit_tests/libs/ota/ota_runners/ota_runner_factory_test.py similarity index 100% rename from unit_tests/libs/ota/ota_runners/ota_runner_factory_test.py rename to src/antlion/unit_tests/libs/ota/ota_runners/ota_runner_factory_test.py
diff --git a/unit_tests/libs/ota/ota_runners/ota_runner_test.py b/src/antlion/unit_tests/libs/ota/ota_runners/ota_runner_test.py similarity index 100% rename from unit_tests/libs/ota/ota_runners/ota_runner_test.py rename to src/antlion/unit_tests/libs/ota/ota_runners/ota_runner_test.py
diff --git a/unit_tests/libs/ota/ota_tools/__init__.py b/src/antlion/unit_tests/libs/ota/ota_tools/__init__.py similarity index 100% rename from unit_tests/libs/ota/ota_tools/__init__.py rename to src/antlion/unit_tests/libs/ota/ota_tools/__init__.py
diff --git a/unit_tests/libs/ota/ota_tools/adb_sideload_ota_tool_test.py b/src/antlion/unit_tests/libs/ota/ota_tools/adb_sideload_ota_tool_test.py similarity index 100% rename from unit_tests/libs/ota/ota_tools/adb_sideload_ota_tool_test.py rename to src/antlion/unit_tests/libs/ota/ota_tools/adb_sideload_ota_tool_test.py
diff --git a/unit_tests/libs/ota/ota_tools/ota_tool_factory_test.py b/src/antlion/unit_tests/libs/ota/ota_tools/ota_tool_factory_test.py similarity index 100% rename from unit_tests/libs/ota/ota_tools/ota_tool_factory_test.py rename to src/antlion/unit_tests/libs/ota/ota_tools/ota_tool_factory_test.py
diff --git a/unit_tests/libs/ota/ota_tools/ota_tool_test.py b/src/antlion/unit_tests/libs/ota/ota_tools/ota_tool_test.py similarity index 100% rename from unit_tests/libs/ota/ota_tools/ota_tool_test.py rename to src/antlion/unit_tests/libs/ota/ota_tools/ota_tool_test.py
diff --git a/unit_tests/libs/ota/ota_tools/update_device_ota_tool_test.py b/src/antlion/unit_tests/libs/ota/ota_tools/update_device_ota_tool_test.py similarity index 100% rename from unit_tests/libs/ota/ota_tools/update_device_ota_tool_test.py rename to src/antlion/unit_tests/libs/ota/ota_tools/update_device_ota_tool_test.py
diff --git a/unit_tests/libs/ota/ota_updater_test.py b/src/antlion/unit_tests/libs/ota/ota_updater_test.py similarity index 100% rename from unit_tests/libs/ota/ota_updater_test.py rename to src/antlion/unit_tests/libs/ota/ota_updater_test.py
diff --git a/unit_tests/libs/proc/__init__.py b/src/antlion/unit_tests/libs/proc/__init__.py similarity index 100% rename from unit_tests/libs/proc/__init__.py rename to src/antlion/unit_tests/libs/proc/__init__.py
diff --git a/unit_tests/libs/proc/process_test.py b/src/antlion/unit_tests/libs/proc/process_test.py similarity index 100% rename from unit_tests/libs/proc/process_test.py rename to src/antlion/unit_tests/libs/proc/process_test.py
diff --git a/unit_tests/libs/test_bindings/__init__.py b/src/antlion/unit_tests/libs/test_bindings/__init__.py similarity index 100% rename from unit_tests/libs/test_bindings/__init__.py rename to src/antlion/unit_tests/libs/test_bindings/__init__.py
diff --git a/unit_tests/libs/test_bindings/all_tests_decorator_test.py b/src/antlion/unit_tests/libs/test_bindings/all_tests_decorator_test.py similarity index 100% rename from unit_tests/libs/test_bindings/all_tests_decorator_test.py rename to src/antlion/unit_tests/libs/test_bindings/all_tests_decorator_test.py
diff --git a/unit_tests/libs/test_bindings/binding_test.py b/src/antlion/unit_tests/libs/test_bindings/binding_test.py similarity index 100% rename from unit_tests/libs/test_bindings/binding_test.py rename to src/antlion/unit_tests/libs/test_bindings/binding_test.py
diff --git a/unit_tests/libs/uicd/__init__.py b/src/antlion/unit_tests/libs/uicd/__init__.py similarity index 100% rename from unit_tests/libs/uicd/__init__.py rename to src/antlion/unit_tests/libs/uicd/__init__.py
diff --git a/unit_tests/libs/uicd/uicd_cli_test.py b/src/antlion/unit_tests/libs/uicd/uicd_cli_test.py similarity index 100% rename from unit_tests/libs/uicd/uicd_cli_test.py rename to src/antlion/unit_tests/libs/uicd/uicd_cli_test.py
diff --git a/unit_tests/libs/version_selector_test.py b/src/antlion/unit_tests/libs/version_selector_test.py similarity index 99% rename from unit_tests/libs/version_selector_test.py rename to src/antlion/unit_tests/libs/version_selector_test.py index 5a4879f..7abfbe7 100755 --- a/unit_tests/libs/version_selector_test.py +++ b/src/antlion/unit_tests/libs/version_selector_test.py
@@ -13,8 +13,6 @@ # 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. -from __future__ import absolute_import - import os import sys
diff --git a/unit_tests/mock_controller.py b/src/antlion/unit_tests/mock_controller.py similarity index 100% rename from unit_tests/mock_controller.py rename to src/antlion/unit_tests/mock_controller.py
diff --git a/unit_tests/test_data/1k_2k.raw b/src/antlion/unit_tests/test_data/1k_2k.raw similarity index 100% rename from unit_tests/test_data/1k_2k.raw rename to src/antlion/unit_tests/test_data/1k_2k.raw Binary files differ
diff --git a/unit_tests/test_runner_test.py b/src/antlion/unit_tests/test_runner_test.py similarity index 100% rename from unit_tests/test_runner_test.py rename to src/antlion/unit_tests/test_runner_test.py
diff --git a/unit_tests/test_suite.py b/src/antlion/unit_tests/test_suite.py similarity index 100% rename from unit_tests/test_suite.py rename to src/antlion/unit_tests/test_suite.py
diff --git a/src/antlion/utils.py b/src/antlion/utils.py index ff6ded5..5782c84 100755 --- a/src/antlion/utils.py +++ b/src/antlion/utils.py
@@ -24,7 +24,6 @@ import logging import os import platform -import psutil import random import re import signal @@ -1820,6 +1819,7 @@ Returns: string, IPv6 link-local address """ + import psutil from zeroconf import IPVersion, Zeroconf if not device_mdns_name:
diff --git a/src/antlion_contrib/test_utils_tests/acts_import_test_utils_test.py b/src/antlion_contrib/test_utils_tests/acts_import_test_utils_test.py deleted file mode 100755 index 531db1c..0000000 --- a/src/antlion_contrib/test_utils_tests/acts_import_test_utils_test.py +++ /dev/null
@@ -1,55 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright 2022 The Fuchsia Authors -# -# 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. - -import unittest - - -class ActsImportTestUtilsTest(unittest.TestCase): - """This test class has unit tests for the implementation of everything - under acts_contrib.test_utils.* - """ - - def test_import_successful(self): - """ Test to return true if all imports were successful. - - This test will fail if any import was unsuccessful. - """ - try: - from antlion import utils - - from antlion_contrib.test_utils.bt import BleEnum - from antlion_contrib.test_utils.bt import BluetoothBaseTest - from antlion_contrib.test_utils.bt import BluetoothCarHfpBaseTest - from antlion_contrib.test_utils.bt import BtEnum - from antlion_contrib.test_utils.bt import GattConnectedBaseTest - from antlion_contrib.test_utils.bt import GattEnum - from antlion_contrib.test_utils.bt import bt_contacts_utils - from antlion_contrib.test_utils.bt import bt_gatt_utils - from antlion_contrib.test_utils.bt import bt_test_utils - from antlion_contrib.test_utils.bt import native_bt_test_utils - - from antlion_contrib.test_utils.net import connectivity_const - from antlion_contrib.test_utils.net import connectivity_const - - from antlion_contrib.test_utils.wifi import wifi_constants - from antlion_contrib.test_utils.wifi import wifi_test_utils - - except Exception: - self.fail('Unable to import all supported test_utils') - - -if __name__ == '__main__': - unittest.main()
diff --git a/unit_tests/__init__.py b/unit_tests/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/unit_tests/__init__.py +++ /dev/null