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) |