blob: 4042a98a1320ef0e58b12cbfba279f8559b70afc [file] [log] [blame]
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Base class representing GTest test packages."""
# pylint: disable=R0201
class TestPackage(object):
"""A helper base class for both APK and stand-alone executables.
Args:
suite_name: Name of the test suite (e.g. base_unittests).
"""
def __init__(self, suite_name):
self.suite_name = suite_name
def ClearApplicationState(self, device):
"""Clears the application state.
Args:
device: Instance of DeviceUtils.
"""
raise NotImplementedError('Method must be overridden.')
def CreateCommandLineFileOnDevice(self, device, test_filter, test_arguments):
"""Creates a test runner script and pushes to the device.
Args:
device: Instance of DeviceUtils.
test_filter: A test_filter flag.
test_arguments: Additional arguments to pass to the test binary.
"""
raise NotImplementedError('Method must be overridden.')
def GetAllTests(self, device):
"""Returns a list of all tests available in the test suite.
Args:
device: Instance of DeviceUtils.
"""
raise NotImplementedError('Method must be overridden.')
def GetGTestReturnCode(self, _device):
return None
def SpawnTestProcess(self, device):
"""Spawn the test process.
Args:
device: Instance of DeviceUtils.
Returns:
An instance of pexpect spawn class.
"""
raise NotImplementedError('Method must be overridden.')
def Install(self, device):
"""Install the test package to the device.
Args:
device: Instance of DeviceUtils.
"""
raise NotImplementedError('Method must be overridden.')
def PullAppFiles(self, device, files, directory):
"""Pull application data from the device.
Args:
device: Instance of DeviceUtils.
files: A list of paths relative to the application data directory to
retrieve from the device.
directory: The host directory to which files should be pulled.
"""
raise NotImplementedError('Method must be overridden.')