| Index: tools/memory_inspector/tests/mock_adb/adb
|
| diff --git a/tools/memory_inspector/tests/mock_adb/adb b/tools/memory_inspector/tests/mock_adb/adb
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..f8719955eec695aa4d475eea79ef990d1a24586e
|
| --- /dev/null
|
| +++ b/tools/memory_inspector/tests/mock_adb/adb
|
| @@ -0,0 +1,40 @@
|
| +#!/usr/bin/python
|
| +# Copyright 2014 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.
|
| +
|
| +"""Client side of the mock adb (i.e. the one called instead of the actual adb).
|
| +
|
| +This file is meant to be put in front of the PATH during integration tests, in
|
| +order to route all the adb calls here and serve them using a pre-configured
|
| +dictionary (epxected commands -> planned responses).
|
| +mock_adb.py is the counterpart of this file, and is meant to be used in the
|
| +unittests for configuring the behavior (i.e. the dictionary) of this script.
|
| +"""
|
| +
|
| +import json
|
| +import optparse
|
| +import os
|
| +import sys
|
| +
|
| +
|
| +def main(argv):
|
| + # Load the dictionary of expected_cmd -> planned_response from the json file
|
| + # which mock_adb.py creates.
|
| + with open(os.environ['MOCK_ADB_CFG']) as f:
|
| + responses = json.load(f)
|
| +
|
| + # Swallow the irrelevant adb extra arguments (e.g., device id).
|
| + parser = optparse.OptionParser()
|
| + parser.add_option('-s')
|
| + options, args = parser.parse_args(argv[1:])
|
| + adb_args = ' '.join(args)
|
| +
|
| + response = ''
|
| + for (cmd, planned_response) in responses.iteritems():
|
| + if adb_args.startswith(cmd):
|
| + response = planned_response
|
| + print response
|
| +
|
| +if __name__ == '__main__':
|
| + main(sys.argv)
|
|
|