benchmarking/platforms/platforms.py (47 lines of code) (raw):
#!/usr/bin/env python
##############################################################################
# Copyright 2017-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the license found in the
# LICENSE file in the root directory of this source tree.
##############################################################################
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
import os
from utils.custom_logger import getLogger
from .android.android_driver import AndroidDriver
from .host.host_platform import HostPlatform
from .ios.ios_driver import IOSDriver
from .windows.windows_platform import WindowsPlatform
def getPlatforms(args, tempdir="/tmp", usb_controller=None):
platforms = []
if (
args.platform[:4] == "host"
or args.platform[:5] == "linux"
or args.platform[:3] == "mac"
):
platforms.append(HostPlatform(tempdir, args))
elif args.platform[:7] == "android":
driver = AndroidDriver(args)
platforms.extend(driver.getAndroidPlatforms(tempdir, usb_controller))
elif args.platform.startswith("ios"):
driver = IOSDriver(args)
platforms.extend(driver.getIOSPlatforms(tempdir, usb_controller))
elif os.name == "nt":
platforms.append(WindowsPlatform(tempdir))
if not platforms:
getLogger().warning("No platform or physical device detected.")
return platforms
def getDeviceList(args, silent=False, retry=1):
assert args.platform in (
"android",
"ios",
), "This is only supported for mobile platforms."
deviceList = []
if args.platform.startswith("android"):
driver = AndroidDriver(args)
deviceList.extend(driver.getDevices(silent, retry))
elif args.platform.startswith("ios"):
driver = IOSDriver(args)
deviceList.extend(driver.getDevices(silent, retry))
return deviceList
def getHostPlatform(tempdir, args):
if os.name == "nt":
return WindowsPlatform(tempdir)
else:
return HostPlatform(tempdir, args)