• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2013 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import chrome_helper
6import verifier
7
8
9class ProcessVerifier(verifier.Verifier):
10  """Verifies that the running processes match the expectation dictionaries."""
11
12  def _VerifyExpectation(self, expectation_name, expectation,
13                         variable_expander):
14    """Overridden from verifier.Verifier.
15
16    This method will throw an AssertionError if process state doesn't match the
17    |expectation|.
18
19    Args:
20      expectation_name: Path to the process being verified. It is expanded using
21          Expand.
22      expectation: A dictionary with the following key and value:
23          'running' a boolean indicating whether the process should be running.
24      variable_expander: A VariableExpander object.
25    """
26    # Create a list of paths of all running processes.
27    running_process_paths = [path for (_, path) in
28                             chrome_helper.GetProcessIDAndPathPairs()]
29    process_path = variable_expander.Expand(expectation_name)
30    is_running = process_path in running_process_paths
31    assert expectation['running'] == is_running, \
32        ('Process %s is running' % process_path) if is_running else \
33        ('Process %s is not running' % process_path)
34