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