From 7169aa30eeaac89c49984bb9d061ca152d43391a Mon Sep 17 00:00:00 2001 From: Bill Napier Date: Tue, 27 Jul 2010 16:18:34 -0700 Subject: [PATCH] Release MonkeyRunner into open source. Change-Id: Ie08e493e700e3e4c85270629f68547a08b7457d4 --- monkeyrunner/Android.mk | 19 + monkeyrunner/MODULE_LICENSE_APACHE2 | 0 monkeyrunner/NOTICE | 190 ++++++++ monkeyrunner/etc/Android.mk | 20 + monkeyrunner/etc/manifest.txt | 1 + monkeyrunner/etc/monkeyrunner | 74 +++ monkeyrunner/jython/test/MonkeyRunner_test.py | 54 +++ monkeyrunner/jython/test/all_tests.py | 49 ++ monkeyrunner/scripts/help.py | 48 ++ monkeyrunner/src/Android.mk | 32 ++ .../src/com/android/monkeyrunner/JythonUtils.java | 236 +++++++++ .../src/com/android/monkeyrunner/MonkeyDevice.java | 345 ++++++++++++++ .../com/android/monkeyrunner/MonkeyFormatter.java | 116 +++++ .../src/com/android/monkeyrunner/MonkeyImage.java | 277 +++++++++++ .../com/android/monkeyrunner/MonkeyManager.java | 351 ++++++++++++++ .../src/com/android/monkeyrunner/MonkeyRunner.java | 214 +++++++++ .../android/monkeyrunner/MonkeyRunnerBackend.java | 36 ++ .../com/android/monkeyrunner/MonkeyRunnerHelp.java | 226 +++++++++ .../android/monkeyrunner/MonkeyRunnerOptions.java | 180 +++++++ .../android/monkeyrunner/MonkeyRunnerStarter.java | 203 ++++++++ .../com/android/monkeyrunner/PhysicalButton.java | 39 ++ .../src/com/android/monkeyrunner/ScriptRunner.java | 177 +++++++ .../com/android/monkeyrunner/adb/AdbBackend.java | 96 ++++ .../android/monkeyrunner/adb/AdbMonkeyDevice.java | 530 +++++++++++++++++++++ .../android/monkeyrunner/adb/AdbMonkeyImage.java | 47 ++ .../monkeyrunner/adb/CommandOutputCapture.java | 42 ++ .../monkeyrunner/adb/LinearInterpolator.java | 128 +++++ .../monkeyrunner/adb/LoggingOutputReceiver.java | 47 ++ .../adb/image/CaptureRawAndConvertedImage.java | 106 +++++ .../android/monkeyrunner/adb/image/ImageUtils.java | 100 ++++ .../adb/image/SixteenBitColorModel.java | 95 ++++ .../adb/image/ThirtyTwoBitColorModel.java | 126 +++++ .../monkeyrunner/controller/MonkeyController.java | 53 +++ .../controller/MonkeyControllerFrame.java | 174 +++++++ .../monkeyrunner/controller/VariableFrame.java | 185 +++++++ .../monkeyrunner/doc/MonkeyRunnerExported.java | 60 +++ .../exceptions/MonkeyRunnerException.java | 33 ++ .../com/android/monkeyrunner/stub/StubBackend.java | 37 ++ .../src/resources/com/android/monkeyrunner/html.cs | 25 + .../src/resources/com/android/monkeyrunner/text.cs | 9 + monkeyrunner/test/Android.mk | 23 + .../test/com/android/monkeyrunner/AllTests.java | 50 ++ .../com/android/monkeyrunner/ImageUtilsTest.java | 96 ++++ .../com/android/monkeyrunner/JythonUtilsTest.java | 224 +++++++++ .../monkeyrunner/MonkeyRunnerOptionsTest.java | 69 +++ .../monkeyrunner/adb/AdbMonkeyDeviceTest.java | 59 +++ .../monkeyrunner/adb/LinearInterpolatorTest.java | 138 ++++++ .../android/monkeyrunner/adb/instrument_result.txt | 10 + .../adb/multiline_instrument_result.txt | 15 + .../resources/com/android/monkeyrunner/image1.png | Bin 0 -> 184289 bytes .../resources/com/android/monkeyrunner/image1.raw | Bin 0 -> 307545 bytes .../resources/com/android/monkeyrunner/image2.png | Bin 0 -> 82036 bytes .../resources/com/android/monkeyrunner/image2.raw | Bin 0 -> 1536345 bytes 53 files changed, 5464 insertions(+) create mode 100644 monkeyrunner/Android.mk create mode 100644 monkeyrunner/MODULE_LICENSE_APACHE2 create mode 100644 monkeyrunner/NOTICE create mode 100644 monkeyrunner/etc/Android.mk create mode 100644 monkeyrunner/etc/manifest.txt create mode 100755 monkeyrunner/etc/monkeyrunner create mode 100644 monkeyrunner/jython/test/MonkeyRunner_test.py create mode 100644 monkeyrunner/jython/test/all_tests.py create mode 100644 monkeyrunner/scripts/help.py create mode 100644 monkeyrunner/src/Android.mk create mode 100644 monkeyrunner/src/com/android/monkeyrunner/JythonUtils.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyFormatter.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyImage.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyManager.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyRunner.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerBackend.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerHelp.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerOptions.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerStarter.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/PhysicalButton.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/ScriptRunner.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/AdbBackend.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyDevice.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyImage.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/CommandOutputCapture.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/LinearInterpolator.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/LoggingOutputReceiver.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/image/CaptureRawAndConvertedImage.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/image/ImageUtils.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/image/SixteenBitColorModel.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/adb/image/ThirtyTwoBitColorModel.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyController.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyControllerFrame.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/controller/VariableFrame.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/exceptions/MonkeyRunnerException.java create mode 100644 monkeyrunner/src/com/android/monkeyrunner/stub/StubBackend.java create mode 100644 monkeyrunner/src/resources/com/android/monkeyrunner/html.cs create mode 100644 monkeyrunner/src/resources/com/android/monkeyrunner/text.cs create mode 100644 monkeyrunner/test/Android.mk create mode 100644 monkeyrunner/test/com/android/monkeyrunner/AllTests.java create mode 100644 monkeyrunner/test/com/android/monkeyrunner/ImageUtilsTest.java create mode 100644 monkeyrunner/test/com/android/monkeyrunner/JythonUtilsTest.java create mode 100644 monkeyrunner/test/com/android/monkeyrunner/MonkeyRunnerOptionsTest.java create mode 100644 monkeyrunner/test/com/android/monkeyrunner/adb/AdbMonkeyDeviceTest.java create mode 100644 monkeyrunner/test/com/android/monkeyrunner/adb/LinearInterpolatorTest.java create mode 100644 monkeyrunner/test/resources/com/android/monkeyrunner/adb/instrument_result.txt create mode 100644 monkeyrunner/test/resources/com/android/monkeyrunner/adb/multiline_instrument_result.txt create mode 100644 monkeyrunner/test/resources/com/android/monkeyrunner/image1.png create mode 100644 monkeyrunner/test/resources/com/android/monkeyrunner/image1.raw create mode 100644 monkeyrunner/test/resources/com/android/monkeyrunner/image2.png create mode 100644 monkeyrunner/test/resources/com/android/monkeyrunner/image2.raw diff --git a/monkeyrunner/Android.mk b/monkeyrunner/Android.mk new file mode 100644 index 000000000..21cf67a74 --- /dev/null +++ b/monkeyrunner/Android.mk @@ -0,0 +1,19 @@ +# +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +MONKEYRUNNER_LOCAL_DIR := $(call my-dir) +include $(MONKEYRUNNER_LOCAL_DIR)/etc/Android.mk +include $(MONKEYRUNNER_LOCAL_DIR)/src/Android.mk +include $(MONKEYRUNNER_LOCAL_DIR)/test/Android.mk diff --git a/monkeyrunner/MODULE_LICENSE_APACHE2 b/monkeyrunner/MODULE_LICENSE_APACHE2 new file mode 100644 index 000000000..e69de29bb diff --git a/monkeyrunner/NOTICE b/monkeyrunner/NOTICE new file mode 100644 index 000000000..c5b1efa7a --- /dev/null +++ b/monkeyrunner/NOTICE @@ -0,0 +1,190 @@ + + Copyright (c) 2005-2008, The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + diff --git a/monkeyrunner/etc/Android.mk b/monkeyrunner/etc/Android.mk new file mode 100644 index 000000000..2d757fdbd --- /dev/null +++ b/monkeyrunner/etc/Android.mk @@ -0,0 +1,20 @@ +# +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_PREBUILT_EXECUTABLES := monkeyrunner +include $(BUILD_HOST_PREBUILT) diff --git a/monkeyrunner/etc/manifest.txt b/monkeyrunner/etc/manifest.txt new file mode 100644 index 000000000..706842e62 --- /dev/null +++ b/monkeyrunner/etc/manifest.txt @@ -0,0 +1 @@ +Main-Class: com.android.monkeyrunner.MonkeyRunnerStarter diff --git a/monkeyrunner/etc/monkeyrunner b/monkeyrunner/etc/monkeyrunner new file mode 100755 index 000000000..364be2a40 --- /dev/null +++ b/monkeyrunner/etc/monkeyrunner @@ -0,0 +1,74 @@ +#!/bin/sh +# Copyright 2005-2007, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Set up prog to be the path of this script, including following symlinks, +# and set up progdir to be the fully-qualified pathname of its directory. +prog="$0" +while [ -h "${prog}" ]; do + newProg=`/bin/ls -ld "${prog}"` + newProg=`expr "${newProg}" : ".* -> \(.*\)$"` + if expr "x${newProg}" : 'x/' >/dev/null; then + prog="${newProg}" + else + progdir=`dirname "${prog}"` + prog="${progdir}/${newProg}" + fi +done +oldwd=`pwd` +progdir=`dirname "${prog}"` +cd "${progdir}" +progdir=`pwd` +prog="${progdir}"/`basename "${prog}"` +cd "${oldwd}" + +jarfile=monkeyrunner.jar +frameworkdir="$progdir" +libdir="$progdir" +if [ ! -r "$frameworkdir/$jarfile" ] +then + frameworkdir=`dirname "$progdir"`/tools/lib + libdir=`dirname "$progdir"`/tools/lib +fi +if [ ! -r "$frameworkdir/$jarfile" ] +then + frameworkdir=`dirname "$progdir"`/framework + libdir=`dirname "$progdir"`/lib +fi +if [ ! -r "$frameworkdir/$jarfile" ] +then + echo `basename "$prog"`": can't find $jarfile" + exit 1 +fi + + +# Check args. +if [ debug = "$1" ]; then + # add this in for debugging + java_debug=-agentlib:jdwp=transport=dt_socket,server=y,address=8050,suspend=y + shift 1 +else + java_debug= +fi + +if [ "$OSTYPE" = "cygwin" ] ; then + jarpath=`cygpath -w "$frameworkdir/$jarfile"` + progdir=`cygpath -w "$progdir"` +else + jarpath="$frameworkdir/$jarfile" +fi + +# need to use "java.ext.dirs" because "-jar" causes classpath to be ignored +# might need more memory, e.g. -Xmx128M +exec java -Xmx128M $os_opts $java_debug -Djava.ext.dirs="$frameworkdir" -Djava.library.path="$libdir" -Dcom.android.monkeyrunner.bindir="$progdir" -jar "$jarpath" "$@" diff --git a/monkeyrunner/jython/test/MonkeyRunner_test.py b/monkeyrunner/jython/test/MonkeyRunner_test.py new file mode 100644 index 000000000..cc4d1f296 --- /dev/null +++ b/monkeyrunner/jython/test/MonkeyRunner_test.py @@ -0,0 +1,54 @@ +#!/usr/bin/python2.4 +# +# Copyright 2010, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the 'License'); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an 'AS IS' BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Test cases for com.android.monkeyrunner.MonkeyRunner.""" + +import time +import unittest + +from com.android.monkeyrunner import MonkeyRunner + + +class TestMonkeyRunnerArgParsing(unittest.TestCase): + """Test ArgParsing for the MonkeyRunner methods.""" + def testWaitForConnectionNoArgs(self): + MonkeyRunner.waitForConnection() + + def testWaitForConnectionSingleArg(self): + MonkeyRunner.waitForConnection(2) + + def testWaitForConnectionDoubleArg(self): + MonkeyRunner.waitForConnection(2, '*') + + def testWaitForConnectionKeywordArg(self): + MonkeyRunner.waitForConnection(timeout=2, deviceId='foo') + + def testWaitForConnectionKeywordArgTooMany(self): + try: + MonkeyRunner.waitForConnection(timeout=2, deviceId='foo', extra='fail') + except TypeError: + return + self.fail('Should have raised TypeError') + + def testSleep(self): + start = time.time() + MonkeyRunner.sleep(1.5) + end = time.time() + + self.assertTrue(end - start >= 1.5) + +if __name__ == '__main__': + unittest.main() diff --git a/monkeyrunner/jython/test/all_tests.py b/monkeyrunner/jython/test/all_tests.py new file mode 100644 index 000000000..2dd0ab440 --- /dev/null +++ b/monkeyrunner/jython/test/all_tests.py @@ -0,0 +1,49 @@ +#!/usr/bin/python2.4 +# +# Copyright 2010, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Test runner to run all the tests in this package.""" + +import os +import re +import sys +import unittest + + +TESTCASE_RE = re.compile('_test\.py$') + + +def AllTestFilesInDir(path): + """Finds all the unit test files in the given path.""" + return filter(TESTCASE_RE.search, os.listdir(path)) + + +def suite(loader=unittest.defaultTestLoader): + """Creates the all_tests TestSuite.""" + script_parent_path = os.path.abspath(os.path.dirname(sys.argv[0])) + # Find all the _test.py files in the same directory we are in + test_files = AllTestFilesInDir(script_parent_path) + # Convert them into module names + module_names = [os.path.splitext(f)[0] for f in test_files] + # And import them + modules = map(__import__, module_names) + # And create the test suite for all these modules + return unittest.TestSuite([loader.loadTestsFromModule(m) for m in modules]) + +if __name__ == '__main__': + result = unittest.TextTestRunner().run(suite()) + if not result.wasSuccessful(): + # On failure return an error code + sys.exit(1) diff --git a/monkeyrunner/scripts/help.py b/monkeyrunner/scripts/help.py new file mode 100644 index 000000000..832d2cbdd --- /dev/null +++ b/monkeyrunner/scripts/help.py @@ -0,0 +1,48 @@ +#!/usr/bin/env monkeyrunner +# Copyright 2010, The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +from com.android.monkeyrunner import MonkeyRunner as mr + +import os +import sys + +supported_formats = ['html', 'text'] + +if len(sys.argv) != 3: + print 'help.py: format output' + sys.exit(1) + +(format, saveto_path) = sys.argv[1:] + +if not format.lower() in supported_formats: + print 'format %s is not a supported format' % format + sys.exit(2) + +output = mr.help(format=format) +if not output: + print 'Error generating help format' + sys.exit(3) + +dirname = os.path.dirname(saveto_path) +try: + os.makedirs(dirname) +except: + print 'oops' + pass # It already existed + +fp = open(saveto_path, 'w') +fp.write(output) +fp.close() + +sys.exit(0) diff --git a/monkeyrunner/src/Android.mk b/monkeyrunner/src/Android.mk new file mode 100644 index 000000000..59337c69c --- /dev/null +++ b/monkeyrunner/src/Android.mk @@ -0,0 +1,32 @@ +# +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(call all-subdir-java-files) + +LOCAL_JAR_MANIFEST := ../etc/manifest.txt +LOCAL_JAVA_LIBRARIES := \ + ddmlib \ + jython \ + guavalib \ + clearsilver +LOCAL_SHARED_LIBRARIES := libclearsilver-jni +LOCAL_JAVA_RESOURCE_DIRS := resources + +LOCAL_MODULE := monkeyrunner + +include $(BUILD_HOST_JAVA_LIBRARY) diff --git a/monkeyrunner/src/com/android/monkeyrunner/JythonUtils.java b/monkeyrunner/src/com/android/monkeyrunner/JythonUtils.java new file mode 100644 index 000000000..258261b0c --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/JythonUtils.java @@ -0,0 +1,236 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.ImmutableMap.Builder; + +import com.android.monkeyrunner.doc.MonkeyRunnerExported; + +import org.python.core.ArgParser; +import org.python.core.Py; +import org.python.core.PyDictionary; +import org.python.core.PyFloat; +import org.python.core.PyInteger; +import org.python.core.PyList; +import org.python.core.PyNone; +import org.python.core.PyObject; +import org.python.core.PyString; +import org.python.core.PyTuple; + +import java.lang.reflect.Method; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Collection of useful utilities function for interacting with the Jython interpreter. + */ +public final class JythonUtils { + private static final Logger LOG = Logger.getLogger(JythonUtils.class.getCanonicalName()); + private JythonUtils() { } + + /** + * Mapping of PyObject classes to the java class we want to convert them to. + */ + private static final Map, Class> PYOBJECT_TO_JAVA_OBJECT_MAP; + static { + Builder, Class> builder = ImmutableMap.builder(); + + builder.put(PyString.class, String.class); + // What python calls float, most people call double + builder.put(PyFloat.class, Double.class); + builder.put(PyInteger.class, Integer.class); + + PYOBJECT_TO_JAVA_OBJECT_MAP = builder.build(); + } + + /** + * Utility method to be called from Jython bindings to give proper handling of keyword and + * positional arguments. + * + * @param args the PyObject arguments from the binding + * @param kws the keyword arguments from the binding + * @return an ArgParser for this binding, or null on error + */ + public static ArgParser createArgParser(PyObject[] args, String[] kws) { + StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); + // Up 2 levels in the current stack to give us the calling function + StackTraceElement element = stackTrace[2]; + + String methodName = element.getMethodName(); + String className = element.getClassName(); + + Class clz; + try { + clz = Class.forName(className); + } catch (ClassNotFoundException e) { + LOG.log(Level.SEVERE, "Got exception: ", e); + return null; + } + + Method m; + + try { + m = clz.getMethod(methodName, PyObject[].class, String[].class); + } catch (SecurityException e) { + LOG.log(Level.SEVERE, "Got exception: ", e); + return null; + } catch (NoSuchMethodException e) { + LOG.log(Level.SEVERE, "Got exception: ", e); + return null; + } + + MonkeyRunnerExported annotation = m.getAnnotation(MonkeyRunnerExported.class); + return new ArgParser(methodName, args, kws, + annotation.args()); + } + + /** + * Get a python floating point value from an ArgParser. + * + * @param ap the ArgParser to get the value from. + * @param position the position in the parser + * @return the double value + */ + public static double getFloat(ArgParser ap, int position) { + PyObject arg = ap.getPyObject(position); + + if (Py.isInstance(arg, PyFloat.TYPE)) { + return ((PyFloat) arg).asDouble(); + } + if (Py.isInstance(arg, PyInteger.TYPE)) { + return ((PyInteger) arg).asDouble(); + } + throw Py.TypeError("Unable to parse argument: " + position); + } + + /** + * Get a python floating point value from an ArgParser. + * + * @param ap the ArgParser to get the value from. + * @param position the position in the parser + * @param defaultValue the default value to return if the arg isn't specified. + * @return the double value + */ + public static double getFloat(ArgParser ap, int position, double defaultValue) { + PyObject arg = ap.getPyObject(position, new PyFloat(defaultValue)); + + if (Py.isInstance(arg, PyFloat.TYPE)) { + return ((PyFloat) arg).asDouble(); + } + if (Py.isInstance(arg, PyInteger.TYPE)) { + return ((PyInteger) arg).asDouble(); + } + throw Py.TypeError("Unable to parse argument: " + position); + } + + /** + * Get a list of arguments from an ArgParser. + * + * @param ap the ArgParser + * @param position the position in the parser to get the argument from + * @return a list of those items + */ + @SuppressWarnings("unchecked") + public static List getList(ArgParser ap, int position) { + PyObject arg = ap.getPyObject(position, Py.None); + if (Py.isInstance(arg, PyNone.TYPE)) { + return Collections.emptyList(); + } + + List ret = Lists.newArrayList(); + PyList array = (PyList) arg; + for (int x = 0; x < array.__len__(); x++) { + PyObject item = array.__getitem__(x); + + Class javaClass = PYOBJECT_TO_JAVA_OBJECT_MAP.get(item.getClass()); + if (javaClass != null) { + ret.add(item.__tojava__(javaClass)); + } + } + return ret; + } + + /** + * Get a dictionary from an ArgParser. For ease of use, key types are always coerced to + * strings. If key type cannot be coeraced to string, an exception is raised. + * + * @param ap the ArgParser to work with + * @param position the position in the parser to get. + * @return a Map mapping the String key to the value + */ + public static Map getMap(ArgParser ap, int position) { + PyObject arg = ap.getPyObject(position, Py.None); + if (Py.isInstance(arg, PyNone.TYPE)) { + return Collections.emptyMap(); + } + + Map ret = Maps.newHashMap(); + // cast is safe as getPyObjectbyType ensures it + PyDictionary dict = (PyDictionary) arg; + PyList items = dict.items(); + for (int x = 0; x < items.__len__(); x++) { + // It's a list of tuples + PyTuple item = (PyTuple) items.__getitem__(x); + // We call str(key) on the key to get the string and then convert it to the java string. + String key = (String) item.__getitem__(0).__str__().__tojava__(String.class); + PyObject value = item.__getitem__(1); + + // Look up the conversion type and convert the value + Class javaClass = PYOBJECT_TO_JAVA_OBJECT_MAP.get(value.getClass()); + if (javaClass != null) { + ret.put(key, value.__tojava__(javaClass)); + } + } + return ret; + } + + private static PyObject convertObject(Object o) { + if (o instanceof String) { + return new PyString((String) o); + } else if (o instanceof Double) { + return new PyFloat((Double) o); + } else if (o instanceof Integer) { + return new PyInteger((Integer) o); + } else if (o instanceof Float) { + float f = (Float) o; + return new PyFloat(f); + } + return Py.None; + } + + /** + * Convert the given Java Map into a PyDictionary. + * + * @param map the map to convert + * @return the python dictionary + */ + public static PyDictionary convertMapToDict(Map map) { + Map resultMap = Maps.newHashMap(); + + for (Entry entry : map.entrySet()) { + resultMap.put(new PyString(entry.getKey()), + convertObject(entry.getValue())); + } + return new PyDictionary(resultMap); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java new file mode 100644 index 000000000..87c54c29b --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyDevice.java @@ -0,0 +1,345 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.base.Functions; +import com.google.common.base.Preconditions; +import com.google.common.collect.Collections2; + +import com.android.monkeyrunner.doc.MonkeyRunnerExported; + +import org.python.core.ArgParser; +import org.python.core.Py; +import org.python.core.PyDictionary; +import org.python.core.PyException; +import org.python.core.PyObject; +import org.python.core.PyTuple; + +import java.util.Collection; +import java.util.Collections; +import java.util.Map; + +import javax.annotation.Nullable; + +/* + * Abstract base class that represents a single connected Android + * Device and provides MonkeyRunner API methods for interacting with + * that device. Each backend will need to create a concrete + * implementation of this class. + */ +public abstract class MonkeyDevice { + /** + * Create a MonkeyMananger for talking to this device. + * + * NOTE: This is not part of the jython API. + * + * @return the MonkeyManager + */ + public abstract MonkeyManager getManager(); + + /** + * Dispose of any native resoureces this device may have taken hold of. + * + * NOTE: This is not part of the jython API. + */ + public abstract void dispose(); + + @MonkeyRunnerExported(doc = "Fetch the screenbuffer from the device and return it.", + returns = "The captured snapshot.") + public abstract MonkeyImage takeSnapshot(); + + @MonkeyRunnerExported(doc = "Get a MonkeyRunner property (like build.fingerprint)", + args = {"key"}, + argDocs = {"The key of the property to return"}, + returns = "The value of the property") + public String getProperty(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + return getProperty(ap.getString(0)); + } + + @MonkeyRunnerExported(doc = "Get a system property (returns the same value as getprop).", + args = {"key"}, + argDocs = {"The key of the property to return"}, + returns = "The value of the property") + public String getSystemProperty(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + return getSystemProperty(ap.getString(0)); + } + + @MonkeyRunnerExported(doc = "Enumeration of possible touch and press event types. This gets " + + "passed into a press or touch call to specify the event type.", + argDocs = {"Indicates the down part of a touch/press event", + "Indicates the up part of a touch/press event.", + "Indicates that the monkey should send a down event immediately " + + "followed by an up event"}) + public enum TouchPressType { + DOWN, UP, DOWN_AND_UP + } + + @MonkeyRunnerExported(doc = "Send a touch event at the specified location", + args = { "x", "y", "type" }, + argDocs = { "x coordinate", "y coordinate", "the type of touch event to send"}) + public void touch(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + int x = ap.getInt(0); + int y = ap.getInt(1); + + // Default + MonkeyDevice.TouchPressType type = MonkeyDevice.TouchPressType.DOWN_AND_UP; + try { + PyObject pyObject = ap.getPyObject(2); + type = (TouchPressType) pyObject.__tojava__(MonkeyDevice.TouchPressType.class); + } catch (PyException e) { + // bad stuff was passed in, just use the already specified default value + type = MonkeyDevice.TouchPressType.DOWN_AND_UP; + } + touch(x, y, type); + } + + @MonkeyRunnerExported(doc = "Simulate a drag on the screen.", + args = { "start", "end", "duration", "steps"}, + argDocs = { "The starting point for the drag (a tuple of x,y)", + "The end point for the drag (a tuple of x,y)", + "How long (in seconds) should the drag take (default is 1.0 seconds)", + "The number of steps to take when interpolating points. (default is 10)"}) + public void drag(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + PyObject startObject = ap.getPyObject(0); + if (!(startObject instanceof PyTuple)) { + throw Py.TypeError("Agrument 0 is not a tuple"); + } + PyObject endObject = ap.getPyObject(1); + if (!(endObject instanceof PyTuple)) { + throw Py.TypeError("Agrument 1 is not a tuple"); + } + + PyTuple start = (PyTuple) startObject; + PyTuple end = (PyTuple) endObject; + + int startx = (Integer) start.__getitem__(0).__tojava__(Integer.class); + int starty = (Integer) start.__getitem__(1).__tojava__(Integer.class); + int endx = (Integer) end.__getitem__(0).__tojava__(Integer.class); + int endy = (Integer) end.__getitem__(1).__tojava__(Integer.class); + + double seconds = JythonUtils.getFloat(ap, 2, 1.0); + long ms = (long) (seconds * 1000.0); + + int steps = ap.getInt(3, 10); + + drag(startx, starty, endx, endy, steps, ms); + } + + @MonkeyRunnerExported(doc = "Send a key press event to the specified button", + args = { "name", "type" }, + argDocs = { "the name of the key to press", "the type of touch event to send"}) + public void press(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String name = ap.getString(0); + + // Default + MonkeyDevice.TouchPressType type = MonkeyDevice.TouchPressType.DOWN_AND_UP; + try { + PyObject pyObject = ap.getPyObject(1); + type = (TouchPressType) pyObject.__tojava__(MonkeyDevice.TouchPressType.class); + } catch (PyException e) { + // bad stuff was passed in, just use the already specified default value + type = MonkeyDevice.TouchPressType.DOWN_AND_UP; + } + press(name, type); + } + + @MonkeyRunnerExported(doc = "Type the specified string on the keyboard.", + args = { "message" }, + argDocs = { "the message to type." }) + public void type(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String message = ap.getString(0); + type(message); + } + + @MonkeyRunnerExported(doc = "Execute the given command on the shell.", + args = { "cmd"}, + argDocs = { "The command to execute" }, + returns = "The output of the command") + public String shell(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String cmd = ap.getString(0); + return shell(cmd); + } + + @MonkeyRunnerExported(doc = "Reboot the specified device", + args = { "into" }, + argDocs = { "the bootloader to reboot into (bootloader, recovery, or None)"}) + public void reboot(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String into = ap.getString(0, null); + + reboot(into); + } + + @MonkeyRunnerExported(doc = "Install the specified apk onto the device.", + args = { "path" }, + argDocs = { "The path on the host filesystem to the APK to install." }, + returns = "True if install succeeded") + public boolean installPackage(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String path = ap.getString(0); + return installPackage(path); + } + + @MonkeyRunnerExported(doc = "Remove the specified package from the device.", + args = { "package"}, + argDocs = { "The name of the package to uninstall"}, + returns = "'True if remove succeeded") + public boolean removePackage(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String packageName = ap.getString(0); + return removePackage(packageName); + } + + @MonkeyRunnerExported(doc = "Start the Activity specified by the intent.", + args = { "uri", "action", "data", "mimetype", "categories", "extras", + "component", "flags" }, + argDocs = { "The URI for the intent", + "The action for the intent", + "The data URI for the intent", + "The mime type for the intent", + "The list of category names for the intent", + "A dictionary of extras to add to the intent. Types of these extras " + + "are inferred from the python types of the values", + "The component of the intent", + "A list of flags for the intent" }) + public void startActivity(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String uri = ap.getString(0, null); + String action = ap.getString(1, null); + String data = ap.getString(2, null); + String mimetype = ap.getString(3, null); + Collection categories = Collections2.transform(JythonUtils.getList(ap, 4), + Functions.toStringFunction()); + Map extras = JythonUtils.getMap(ap, 5); + String component = ap.getString(6, null); + int flags = ap.getInt(7, 0); + + startActivity(uri, action, data, mimetype, categories, extras, component, flags); + } + + @MonkeyRunnerExported(doc = "Start the specified broadcast intent on the device.", + args = { "uri", "action", "data", "mimetype", "categories", "extras", + "component", "flags" }, + argDocs = { "The URI for the intent", + "The action for the intent", + "The data URI for the intent", + "The mime type for the intent", + "The list of category names for the intent", + "A dictionary of extras to add to the intent. Types of these extras " + + "are inferred from the python types of the values", + "The component of the intent", + "A list of flags for the intent" }) + public void broadcastIntent(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String uri = ap.getString(0, null); + String action = ap.getString(1, null); + String data = ap.getString(2, null); + String mimetype = ap.getString(3, null); + Collection categories = Collections2.transform(JythonUtils.getList(ap, 4), + Functions.toStringFunction()); + Map extras = JythonUtils.getMap(ap, 5); + String component = ap.getString(6, null); + int flags = ap.getInt(7, 0); + + broadcastIntent(uri, action, data, mimetype, categories, extras, component, flags); + } + + @MonkeyRunnerExported(doc = "Instrument the specified package and return the results from it.", + args = { "className", "args" }, + argDocs = { "The class name to instrument (like com.android.test/.TestInstrument)", + "A Map of String to Objects for the aruments to pass to this " + + "instrumentation (default value is None)" }, + returns = "A map of string to objects for the results this instrumentation returned") + public PyDictionary instrument(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String packageName = ap.getString(0); + Map instrumentArgs = JythonUtils.getMap(ap, 1); + if (instrumentArgs == null) { + instrumentArgs = Collections.emptyMap(); + } + + Map result = instrument(packageName, instrumentArgs); + return JythonUtils.convertMapToDict(result); + } + + @MonkeyRunnerExported(doc = "Wake up the screen on the device") + public void wake(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + wake(); + } + + /** + * Reboot the device. + * + * @param into which bootloader to boot into. Null means default reboot. + */ + protected abstract void reboot(@Nullable String into); + + protected abstract String getProperty(String key); + protected abstract String getSystemProperty(String key); + protected abstract void touch(int x, int y, TouchPressType type); + protected abstract void press(String keyName, TouchPressType type); + protected abstract void drag(int startx, int starty, int endx, int endy, int steps, long ms); + protected abstract void type(String string); + protected abstract String shell(String cmd); + protected abstract boolean installPackage(String path); + protected abstract boolean removePackage(String packageName); + protected abstract void startActivity(@Nullable String uri, @Nullable String action, + @Nullable String data, @Nullable String mimetype, + Collection categories, Map extras, @Nullable String component, + int flags); + protected abstract void broadcastIntent(@Nullable String uri, @Nullable String action, + @Nullable String data, @Nullable String mimetype, + Collection categories, Map extras, @Nullable String component, + int flags); + protected abstract Map instrument(String packageName, + Map args); + protected abstract void wake(); +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyFormatter.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyFormatter.java new file mode 100644 index 000000000..c4a536254 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyFormatter.java @@ -0,0 +1,116 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.collect.Maps; + +import java.io.ByteArrayOutputStream; +import java.io.PrintWriter; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Map; +import java.util.logging.Formatter; +import java.util.logging.Level; +import java.util.logging.LogRecord; + +/* + * Custom Logging Formatter for MonkeyRunner that generates all log + * messages on a single line. + */ +public class MonkeyFormatter extends Formatter { + public static final Formatter DEFAULT_INSTANCE = new MonkeyFormatter(); + + private static final SimpleDateFormat FORMAT = new SimpleDateFormat("yyMMdd HH:mm:ss.SSS"); + + private static Map LEVEL_TO_STRING_CACHE = Maps.newHashMap(); + + private static final String levelToString(Level level) { + String levelName = LEVEL_TO_STRING_CACHE.get(level); + if (levelName == null) { + levelName = level.getName().substring(0, 1); + LEVEL_TO_STRING_CACHE.put(level, levelName); + } + return levelName; + } + + private static String getHeader(LogRecord record) { + StringBuilder sb = new StringBuilder(); + + sb.append(FORMAT.format(new Date(record.getMillis()))).append(":"); + sb.append(levelToString(record.getLevel())).append(" "); + + sb.append("[").append(Thread.currentThread().getName()).append("] "); + + String loggerName = record.getLoggerName(); + if (loggerName != null) { + sb.append("[").append(loggerName).append("]"); + } + return sb.toString(); + } + + private class PrintWriterWithHeader extends PrintWriter { + private final ByteArrayOutputStream out; + private final String header; + + public PrintWriterWithHeader(String header) { + this(header, new ByteArrayOutputStream()); + } + + public PrintWriterWithHeader(String header, ByteArrayOutputStream out) { + super(out, true); + this.header = header; + this.out = out; + } + + @Override + public void println(Object x) { + print(header); + super.println(x); + } + + @Override + public void println(String x) { + print(header); + super.println(x); + } + + @Override + public String toString() { + return out.toString(); + } + } + + @Override + public String format(LogRecord record) { + Throwable thrown = record.getThrown(); + String header = getHeader(record); + + StringBuilder sb = new StringBuilder(); + sb.append(header); + sb.append(" ").append(formatMessage(record)); + sb.append("\n"); + + // Print the exception here if we caught it + if (thrown != null) { + + PrintWriter pw = new PrintWriterWithHeader(header); + thrown.printStackTrace(pw); + sb.append(pw.toString()); + } + + return sb.toString(); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyImage.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyImage.java new file mode 100644 index 000000000..7cff67fb1 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyImage.java @@ -0,0 +1,277 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.base.Preconditions; + +import com.android.monkeyrunner.doc.MonkeyRunnerExported; + +import org.python.core.ArgParser; +import org.python.core.PyInteger; +import org.python.core.PyObject; +import org.python.core.PyTuple; + +import java.awt.Graphics; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.lang.ref.WeakReference; +import java.util.Iterator; + +import javax.imageio.ImageIO; +import javax.imageio.ImageWriter; +import javax.imageio.stream.ImageOutputStream; + +/** + * Jython object to encapsulate images that have been taken. + */ +public abstract class MonkeyImage { + /** + * Convert the MonkeyImage into a BufferedImage. + * + * @return a BufferedImage for this MonkeyImage. + */ + public abstract BufferedImage createBufferedImage(); + + // Cache the BufferedImage so we don't have to generate it every time. + private WeakReference cachedBufferedImage = null; + + /** + * Utility method to handle getting the BufferedImage and managing the cache. + * + * @return the BufferedImage for this image. + */ + private BufferedImage getBufferedImage() { + // Check the cache first + if (cachedBufferedImage != null) { + BufferedImage img = cachedBufferedImage.get(); + if (img != null) { + return img; + } + } + + // Not in the cache, so create it and cache it. + BufferedImage img = createBufferedImage(); + cachedBufferedImage = new WeakReference(img); + return img; + } + + @MonkeyRunnerExported(doc = "Encode the image into a format and return the bytes.", + args = {"format"}, + argDocs = { "The (optional) format in which to encode the image (PNG for example)" }, + returns = "A String containing the bytes.") + public byte[] convertToBytes(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String format = ap.getString(0, "png"); + + BufferedImage argb = convertSnapshot(); + + ByteArrayOutputStream os = new ByteArrayOutputStream(); + try { + ImageIO.write(argb, format, os); + } catch (IOException e) { + return new byte[0]; + } + return os.toByteArray(); + } + + @MonkeyRunnerExported(doc = "Write out the file to the specified location. If no " + + "format is specified, this function tries to guess at the output format " + + "depending on the file extension given. If unable to determine, it uses PNG.", + args = {"path", "format"}, + argDocs = {"Where to write out the file", + "The format in which to encode the image (PNG for example)"}, + returns = "True if writing succeeded.") + public boolean writeToFile(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String path = ap.getString(0); + String format = ap.getString(1, null); + + if (format != null) { + return writeToFile(path, format); + } + int offset = path.lastIndexOf('.'); + if (offset < 0) { + return writeToFile(path, "png"); + } + String ext = path.substring(offset + 1); + Iterator writers = ImageIO.getImageWritersBySuffix(ext); + if (!writers.hasNext()) { + return writeToFile(path, "png"); + } + ImageWriter writer = writers.next(); + BufferedImage image = getBufferedImage(); + try { + File f = new File(path); + f.delete(); + + ImageOutputStream outputStream = ImageIO.createImageOutputStream(f); + writer.setOutput(outputStream); + + try { + writer.write(image); + } finally { + writer.dispose(); + outputStream.flush(); + } + } catch (IOException e) { + return false; + } + return true; + } + + @MonkeyRunnerExported(doc = "Get a single ARGB pixel from the image", + args = { "x", "y" }, + argDocs = { "the x offset of the pixel", "the y offset of the pixel" }, + returns = "A tuple of (A, R, G, B) for the pixel") + public PyObject getRawPixel(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + int x = ap.getInt(0); + int y = ap.getInt(1); + int pixel = getPixel(x, y); + PyInteger a = new PyInteger((pixel & 0xFF000000) >> 24); + PyInteger r = new PyInteger((pixel & 0x00FF0000) >> 16); + PyInteger g = new PyInteger((pixel & 0x0000FF00) >> 8); + PyInteger b = new PyInteger((pixel & 0x000000FF) >> 0); + return new PyTuple(a, r, g ,b); + } + + @MonkeyRunnerExported(doc = "Get a single ARGB pixel from the image", + args = { "x", "y" }, + argDocs = { "the x offset of the pixel", "the y offset of the pixel" }, + returns = "An integer for the ARGB pixel") + public int getRawPixelInt(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + int x = ap.getInt(0); + int y = ap.getInt(1); + return getPixel(x, y); + } + + private int getPixel(int x, int y) { + BufferedImage image = getBufferedImage(); + return image.getRGB(x, y); + } + + private BufferedImage convertSnapshot() { + BufferedImage image = getBufferedImage(); + + // Convert the image to ARGB so ImageIO writes it out nicely + BufferedImage argb = new BufferedImage(image.getWidth(), image.getHeight(), + BufferedImage.TYPE_INT_ARGB); + Graphics g = argb.createGraphics(); + g.drawImage(image, 0, 0, null); + g.dispose(); + return argb; + } + + public boolean writeToFile(String path, String format) { + BufferedImage argb = convertSnapshot(); + + try { + ImageIO.write(argb, format, new File(path)); + } catch (IOException e) { + return false; + } + return true; + } + + @MonkeyRunnerExported(doc = "Compare this image to the other image.", + args = {"other", "percent"}, + argDocs = {"The other image.", + "A float from 0.0 to 1.0 indicating the percentage " + + "of pixels that need to be the same. Defaults to 1.0"}, + returns = "True if they are the same image.") + public boolean sameAs(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + PyObject otherObject = ap.getPyObject(0); + MonkeyImage other = (MonkeyImage) otherObject.__tojava__(MonkeyImage.class); + + double percent = JythonUtils.getFloat(ap, 1, 1.0); + + BufferedImage otherImage = other.getBufferedImage(); + BufferedImage myImage = getBufferedImage(); + + // Easy size check + if (otherImage.getWidth() != myImage.getWidth()) { + return false; + } + if (otherImage.getHeight() != myImage.getHeight()) { + return false; + } + + int[] otherPixel = new int[1]; + int[] myPixel = new int[1]; + + int width = myImage.getWidth(); + int height = myImage.getHeight(); + + int numDiffPixels = 0; + // Now, go through pixel-by-pixel and check that the images are the same; + for (int y = 0; y < height; y++) { + for (int x = 0; x < width; x++) { + if (myImage.getRGB(x, y) != otherImage.getRGB(x, y)) { + numDiffPixels++; + } + } + } + double numberPixels = (height * width); + double diffPercent = numDiffPixels / numberPixels; + return percent <= 1.0 - diffPercent; + } + + private static class BufferedImageMonkeyImage extends MonkeyImage { + private final BufferedImage image; + + public BufferedImageMonkeyImage(BufferedImage image) { + this.image = image; + } + + @Override + public BufferedImage createBufferedImage() { + return image; + } + + } + + @MonkeyRunnerExported(doc = "Get a sub-image of this image.", + args = {"rect"}, + argDocs = {"A Tuple of (x, y, w, h) representing the area of the image to extract."}, + returns = "The newly extracted image.") + public MonkeyImage getSubImage(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + PyTuple rect = (PyTuple) ap.getPyObjectByType(0, PyTuple.TYPE); + int x = rect.__getitem__(0).asInt(); + int y = rect.__getitem__(1).asInt(); + int w = rect.__getitem__(2).asInt(); + int h = rect.__getitem__(3).asInt(); + + BufferedImage image = getBufferedImage(); + return new BufferedImageMonkeyImage(image.getSubimage(x, y, w, h)); + } +} \ No newline at end of file diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyManager.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyManager.java new file mode 100644 index 000000000..11a2dd4b1 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyManager.java @@ -0,0 +1,351 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.collect.Lists; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.net.Socket; +import java.util.Collection; +import java.util.Collections; +import java.util.StringTokenizer; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Provides a nicer interface to interacting with the low-level network access protocol for talking + * to the monkey. + * + * This class is thread-safe and can handle being called from multiple threads. + */ +public class MonkeyManager { + private static Logger LOG = Logger.getLogger(MonkeyManager.class.getName()); + + private Socket monkeySocket; + private BufferedWriter monkeyWriter; + private BufferedReader monkeyReader; + + /** + * Create a new MonkeyMananger to talk to the specified device. + * + * @param monkeySocket the already connected socket on which to send protocol messages. + */ + public MonkeyManager(Socket monkeySocket) { + try { + this.monkeySocket = monkeySocket; + monkeyWriter = new BufferedWriter(new OutputStreamWriter(monkeySocket.getOutputStream())); + monkeyReader = new BufferedReader(new InputStreamReader(monkeySocket.getInputStream())); + } catch(IOException e) { + throw new RuntimeException(e); + } + } + + /** + * Send a touch down event at the specified location. + * + * @param x the x coordinate of where to click + * @param y the y coordinate of where to click + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean touchDown(int x, int y) throws IOException { + return sendMonkeyEvent("touch down " + x + " " + y); + } + + /** + * Send a touch down event at the specified location. + * + * @param x the x coordinate of where to click + * @param y the y coordinate of where to click + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean touchUp(int x, int y) throws IOException { + return sendMonkeyEvent("touch up " + x + " " + y); + } + + /** + * Send a touch move event at the specified location. + * + * @param x the x coordinate of where to click + * @param y the y coordinate of where to click + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean touchMove(int x, int y) throws IOException { + return sendMonkeyEvent("touch move " + x + " " + y); + } + + /** + * Send a touch (down and then up) event at the specified location. + * + * @param x the x coordinate of where to click + * @param y the y coordinate of where to click + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean touch(int x, int y) throws IOException { + return sendMonkeyEvent("tap " + x + " " + y); + } + + /** + * Press a physical button on the device. + * + * @param name the name of the button (As specified in the protocol) + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean press(String name) throws IOException { + return sendMonkeyEvent("press " + name); + } + + /** + * Send a Key Down event for the specified button. + * + * @param name the name of the button (As specified in the protocol) + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean keyDown(String name) throws IOException { + return sendMonkeyEvent("key down " + name); + } + + /** + * Send a Key Up event for the specified button. + * + * @param name the name of the button (As specified in the protocol) + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean keyUp(String name) throws IOException { + return sendMonkeyEvent("key up " + name); + } + + /** + * Press a physical button on the device. + * + * @param button the button to press + * @return success or not + * @throws IOException on error communicating with the device + */ + public boolean press(PhysicalButton button) throws IOException { + return press(button.getKeyName()); + } + + /** + * This function allows the communication bridge between the host and the device + * to be invisible to the script for internal needs. + * It splits a command into monkey events and waits for responses for each over an adb tcp socket. + * Returns on an error, else continues and sets up last response. + * + * @param command the monkey command to send to the device + * @return the (unparsed) response returned from the monkey. + */ + private String sendMonkeyEventAndGetResponse(String command) throws IOException { + command = command.trim(); + LOG.info("Monkey Command: " + command + "."); + + // send a single command and get the response + monkeyWriter.write(command + "\n"); + monkeyWriter.flush(); + return monkeyReader.readLine(); + } + + /** + * Parse a monkey response string to see if the command succeeded or not. + * + * @param monkeyResponse the response + * @return true if response code indicated success. + */ + private boolean parseResponseForSuccess(String monkeyResponse) { + if (monkeyResponse == null) { + return false; + } + // return on ok + if(monkeyResponse.startsWith("OK")) { + return true; + } + + return false; + } + + /** + * Parse a monkey response string to get the extra data returned. + * + * @param monkeyResponse the response + * @return any extra data that was returned, or empty string if there was nothing. + */ + private String parseResponseForExtra(String monkeyResponse) { + int offset = monkeyResponse.indexOf(':'); + if (offset < 0) { + return ""; + } + return monkeyResponse.substring(offset + 1); + } + + /** + * This function allows the communication bridge between the host and the device + * to be invisible to the script for internal needs. + * It splits a command into monkey events and waits for responses for each over an + * adb tcp socket. + * + * @param command the monkey command to send to the device + * @return true on success. + */ + private boolean sendMonkeyEvent(String command) throws IOException { + synchronized (this) { + String monkeyResponse = sendMonkeyEventAndGetResponse(command); + return parseResponseForSuccess(monkeyResponse); + } + } + + /** + * Close all open resources related to this device. + */ + public void close() { + try { + monkeySocket.close(); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to close monkeySocket", e); + } + try { + monkeyReader.close(); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to close monkeyReader", e); + } + try { + monkeyWriter.close(); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to close monkeyWriter", e); + } + } + + /** + * Function to get a static variable from the device. + * + * @param name name of static variable to get + * @return the value of the variable, or null if there was an error + */ + public String getVariable(String name) throws IOException { + synchronized (this) { + String response = sendMonkeyEventAndGetResponse("getvar " + name); + if (!parseResponseForSuccess(response)) { + return null; + } + return parseResponseForExtra(response); + } + } + + /** + * Function to get the list of static variables from the device. + */ + public Collection listVariable() throws IOException { + synchronized (this) { + String response = sendMonkeyEventAndGetResponse("listvar"); + if (!parseResponseForSuccess(response)) { + Collections.emptyList(); + } + String extras = parseResponseForExtra(response); + return Lists.newArrayList(extras.split(" ")); + } + } + + /** + * Tells the monkey that we are done for this session. + * @throws IOException + */ + public void done() throws IOException { + // this command just drops the connection, so handle it here + synchronized (this) { + sendMonkeyEventAndGetResponse("done"); + } + } + + /** + * Tells the monkey that we are done forever. + * @throws IOException + */ + public void quit() throws IOException { + // this command drops the connection, so handle it here + synchronized (this) { + sendMonkeyEventAndGetResponse("quit"); + } + } + + /** + * Send a tap event at the specified location. + * + * @param x the x coordinate of where to click + * @param y the y coordinate of where to click + * @return success or not + * @throws IOException + * @throws IOException on error communicating with the device + */ + public boolean tap(int x, int y) throws IOException { + return sendMonkeyEvent("tap " + x + " " + y); + } + + /** + * Type the following string to the monkey. + * + * @param text the string to type + * @return success + * @throws IOException + */ + public boolean type(String text) throws IOException { + // The network protocol can't handle embedded line breaks, so we have to handle it + // here instead + StringTokenizer tok = new StringTokenizer(text, "\n", true); + while (tok.hasMoreTokens()) { + String line = tok.nextToken(); + if ("\n".equals(line)) { + boolean success = press(PhysicalButton.ENTER); + if (!success) { + return false; + } + } else { + boolean success = sendMonkeyEvent("type " + line); + if (!success) { + return false; + } + } + } + return true; + } + + /** + * Type the character to the monkey. + * + * @param keyChar the character to type. + * @return success + * @throws IOException + */ + public boolean type(char keyChar) throws IOException { + return type(Character.toString(keyChar)); + } + + /** + * Wake the device up from sleep. + * @throws IOException + */ + public void wake() throws IOException { + sendMonkeyEvent("wake"); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunner.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunner.java new file mode 100644 index 000000000..cdab92669 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunner.java @@ -0,0 +1,214 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.base.Functions; +import com.google.common.base.Preconditions; +import com.google.common.collect.Collections2; + +import com.android.monkeyrunner.doc.MonkeyRunnerExported; + +import org.python.core.ArgParser; +import org.python.core.PyException; +import org.python.core.PyObject; + +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.swing.JOptionPane; + +/** + * This is the main interface class into the jython bindings. + */ +public class MonkeyRunner { + private static final Logger LOG = Logger.getLogger(MonkeyRunner.class.getCanonicalName()); + private static MonkeyRunnerBackend backend; + + /** + * Set the backend MonkeyRunner is using. + * + * @param backend the backend to use. + */ + /* package */ static void setBackend(MonkeyRunnerBackend backend) { + MonkeyRunner.backend = backend; + } + + @MonkeyRunnerExported(doc = "Wait for the specified device to connect.", + args = {"timeout", "deviceId"}, + argDocs = {"The timeout in seconds to wait for the device to connect. (default " + + "is to wait forever)", + "A regular expression that specifies the device of for valid devices" + + " to wait for."}, + returns = "A MonkeyDevice representing the connected device.") + public static MonkeyDevice waitForConnection(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + long timeoutMs; + try { + double timeoutInSecs = JythonUtils.getFloat(ap, 0); + timeoutMs = (long) (timeoutInSecs * 1000.0); + } catch (PyException e) { + timeoutMs = Long.MAX_VALUE; + } + + return backend.waitForConnection(timeoutMs, + ap.getString(1, ".*")); + } + + @MonkeyRunnerExported(doc = "Pause script processing for the specified number of seconds", + args = {"seconds"}, + argDocs = {"The number of seconds to pause processing"}) + public static void sleep(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + double seconds = JythonUtils.getFloat(ap, 0); + + long ms = (long) (seconds * 1000.0); + + try { + Thread.sleep(ms); + } catch (InterruptedException e) { + LOG.log(Level.SEVERE, "Error sleeping", e); + } + } + + @MonkeyRunnerExported(doc = "Simple help command to dump the MonkeyRunner supported " + + "commands", + args = { "format" }, + argDocs = {"The format to return the help text in. (default is text)"}, + returns = "The help text") + public static String help(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String format = ap.getString(0, "text"); + + return MonkeyRunnerHelp.helpString(format); + } + + @MonkeyRunnerExported(doc = "Put up an alert dialog to inform the user of something that " + + "happened. This is modal dialog and will stop processing of " + + "the script until the user acknowledges the alert message", + args = { "message", "title", "okTitle" }, + argDocs = { + "The contents of the message of the dialog box", + "The title to display for the dialog box. (default value is \"Alert\")", + "The title to use for the acknowledgement button (default value is \"OK\")" + }) + public static void alert(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String message = ap.getString(0); + String title = ap.getString(1, "Alert"); + String buttonTitle = ap.getString(2, "OK"); + + alert(message, title, buttonTitle); + } + + @MonkeyRunnerExported(doc = "Put up an input dialog that allows the user to input a string." + + " This is a modal dialog that will stop processing of the script until the user " + + "inputs the requested information.", + args = {"message", "initialValue", "title", "okTitle", "cancelTitle"}, + argDocs = { + "The message to display for the input.", + "The initial value to supply the user (default is empty string)", + "The title of the dialog box to display. (default is \"Input\")" + }, + returns = "The test entered by the user, or None if the user canceled the input;" + ) + public static String input(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String message = ap.getString(0); + String initialValue = ap.getString(1, ""); + String title = ap.getString(2, "Input"); + + return input(message, initialValue, title); + } + + @MonkeyRunnerExported(doc = "Put up a choice dialog that allows the user to select a single " + + "item from a list of items that were presented.", + args = {"message", "choices", "title"}, + argDocs = { + "The message to display for the input.", + "The list of choices to display.", + "The title of the dialog box to display. (default is \"Input\")" }, + returns = "The numeric offset of the choice selected.") + public static int choice(PyObject[] args, String kws[]) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + + String message = ap.getString(0); + Collection choices = Collections2.transform(JythonUtils.getList(ap, 1), + Functions.toStringFunction()); + String title = ap.getString(2, "Input"); + + return choice(message, title, choices); + } + + /** + * Display an alert dialog. + * + * @param message the message to show. + * @param title the title of the dialog box. + * @param okTitle the title of the button. + */ + private static void alert(String message, String title, String okTitle) { + Object[] options = { okTitle }; + JOptionPane.showOptionDialog(null, message, title, JOptionPane.DEFAULT_OPTION, + JOptionPane.INFORMATION_MESSAGE, null, options, options[0]); + } + + /** + * Display a dialog allow the user to pick a choice from a list of choices. + * + * @param message the message to show. + * @param title the title of the dialog box. + * @param choices the list of the choices to display. + * @return the index of the selected choice, or -1 if nothing was chosen. + */ + private static int choice(String message, String title, Collection choices) { + Object[] possibleValues = choices.toArray(); + Object selectedValue = JOptionPane.showInputDialog(null, message, title, + JOptionPane.QUESTION_MESSAGE, null, possibleValues, possibleValues[0]); + + for (int x = 0; x < possibleValues.length; x++) { + if (possibleValues[x].equals(selectedValue)) { + return x; + } + } + // Error + return -1; + } + + /** + * Display a dialog that allows the user to input a text string. + * + * @param message the message to show. + * @param initialValue the initial value to display in the dialog + * @param title the title of the dialog box. + * @return the entered string, or null if cancelled + */ + private static String input(String message, String initialValue, String title) { + return (String) JOptionPane.showInputDialog(null, message, title, + JOptionPane.QUESTION_MESSAGE, null, null, initialValue); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerBackend.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerBackend.java new file mode 100644 index 000000000..216d214b7 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerBackend.java @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +/** + * Interface between MonkeyRunner common code and the MonkeyRunner backend. The backend is + * responsible for communicating between the host and the device. + */ +public interface MonkeyRunnerBackend { + /** + * Wait for a device to connect to the backend. + * + * @param timeoutMs how long (in ms) to wait + * @param deviceIdRegex the regular expression to specify which device to wait for. + * @return the connected device (or null if timeout); + */ + MonkeyDevice waitForConnection(long timeoutMs, String deviceIdRegex); + + /** + * Shutdown the backend and cleanup any resources it was using. + */ + void shutdown(); +} \ No newline at end of file diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerHelp.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerHelp.java new file mode 100644 index 000000000..8dbe85b71 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerHelp.java @@ -0,0 +1,226 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.base.Predicate; +import com.google.common.collect.Collections2; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import com.google.common.io.Resources; + +import com.android.monkeyrunner.doc.MonkeyRunnerExported; + +import org.clearsilver.CS; +import org.clearsilver.CSFileLoader; +import org.clearsilver.HDF; + +import java.io.IOException; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Member; +import java.lang.reflect.Method; +import java.nio.charset.Charset; +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; +import java.util.Set; + +/** + * Utility class for generating inline help documentation + */ +public final class MonkeyRunnerHelp { + private MonkeyRunnerHelp() { } + + private static final String HELP = "help"; + private static final String NAME = "name"; + private static final String DOC = "doc"; + private static final String ARGUMENT = "argument"; + private static final String RETURNS = "returns"; + private static final String TYPE = "type"; + + // Enum used to describe documented types. + private enum Type { + ENUM, FIELD, METHOD + } + + private static void getAllExportedClasses(Set fields, + Set methods, + Set> constructors, + Set> enums) { + final Set> classesVisited = Sets.newHashSet(); + Set> classesToVisit = Sets.newHashSet(); + classesToVisit.add(MonkeyRunner.class); + + Predicate> haventSeen = new Predicate>() { + public boolean apply(Class clz) { + return !classesVisited.contains(clz); + } + }; + + while (!classesToVisit.isEmpty()) { + classesVisited.addAll(classesToVisit); + + List> newClasses = Lists.newArrayList(); + for (Class clz : classesToVisit) { + // See if the class itself is annotated and is an enum + if (clz.isEnum() && clz.isAnnotationPresent(MonkeyRunnerExported.class)) { + enums.add(clz); + } + + // Constructors + for (Constructor c : clz.getConstructors()) { + newClasses.addAll(Collections2.filter(Arrays.asList(c.getParameterTypes()), + haventSeen)); + if (c.isAnnotationPresent(MonkeyRunnerExported.class)) { + constructors.add(c); + } + } + + // Fields + for (Field f : clz.getFields()) { + if (haventSeen.apply(f.getClass())) { + newClasses.add(f.getClass()); + } + if (f.isAnnotationPresent(MonkeyRunnerExported.class)) { + fields.add(f); + } + } + + // Methods + for (Method m : clz.getMethods()) { + newClasses.addAll(Collections2.filter(Arrays.asList(m.getParameterTypes()), + haventSeen)); + if (haventSeen.apply(m.getReturnType())) { + newClasses.add(m.getReturnType()); + } + + if (m.isAnnotationPresent(MonkeyRunnerExported.class)) { + methods.add(m); + } + } + + // Containing classes + for (Class toAdd : clz.getClasses()) { + if (haventSeen.apply(toAdd)) { + newClasses.add(toAdd); + } + } + } + + classesToVisit.clear(); + classesToVisit.addAll(newClasses); + } + } + + private static Comparator MEMBER_SORTER = new Comparator() { + public int compare(Member o1, Member o2) { + return o1.getName().compareTo(o2.getName()); + } + }; + + private static Comparator> CLASS_SORTER = new Comparator>() { + public int compare(Class o1, Class o2) { + return o1.getName().compareTo(o2.getName()); + } + }; + + public static String helpString(String format) { + // Quick check for support formats + if ("html".equals(format) || "text".equals(format)) { + HDF hdf = buildHelpHdf(); + CS clearsilver = new CS(hdf); + // Set a custom file loader to load requested files from resources relative to this class. + clearsilver.setFileLoader(new CSFileLoader() { + public String load(HDF hdf, String filename) throws IOException { + return Resources.toString(Resources.getResource(MonkeyRunnerHelp.class, filename), + Charset.defaultCharset()); + } + }); + + // Load up the CS template file + clearsilver.parseFile(format.toLowerCase() + ".cs"); + // And render the output + return clearsilver.render(); + } else if ("hdf".equals(format)) { + HDF hdf = buildHelpHdf(); + return hdf.writeString(); + } + return ""; + } + + private static HDF buildHelpHdf() { + HDF hdf = new HDF(); + + int outputItemCount = 0; + + Set fields = Sets.newTreeSet(MEMBER_SORTER); + Set methods = Sets.newTreeSet(MEMBER_SORTER); + Set> constructors = Sets.newTreeSet(MEMBER_SORTER); + Set> classes = Sets.newTreeSet(CLASS_SORTER); + getAllExportedClasses(fields, methods, constructors, classes); + + for (Class clz : classes) { + String prefix = HELP + "." + outputItemCount + "."; + + hdf.setValue(prefix + NAME, clz.getCanonicalName()); + MonkeyRunnerExported annotation = clz.getAnnotation(MonkeyRunnerExported.class); + hdf.setValue(prefix + DOC, annotation.doc()); + hdf.setValue(prefix + TYPE, Type.ENUM.name()); + + // Now go through the enumeration constants + Object[] constants = clz.getEnumConstants(); + String[] argDocs = annotation.argDocs(); + if (constants.length > 0) { + for (int x = 0; x < constants.length; x++) { + String argPrefix = prefix + ARGUMENT + "." + x + "."; + hdf.setValue(argPrefix + NAME, constants[x].toString()); + if (argDocs.length > x) { + hdf.setValue(argPrefix + DOC, argDocs[x]); + } + } + } + outputItemCount++; + } + + for (Method m : methods) { + String prefix = HELP + "." + outputItemCount + "."; + + MonkeyRunnerExported annotation = m.getAnnotation(MonkeyRunnerExported.class); + String className = m.getDeclaringClass().getCanonicalName(); + String methodName = className + "." + m.getName(); + hdf.setValue(prefix + NAME, methodName); + hdf.setValue(prefix + DOC, annotation.doc()); + if (annotation.args().length > 0) { + String[] argDocs = annotation.argDocs(); + String[] aargs = annotation.args(); + for (int x = 0; x < aargs.length; x++) { + String argPrefix = prefix + ARGUMENT + "." + x + "."; + + hdf.setValue(argPrefix + NAME, aargs[x]); + if (argDocs.length > x) { + hdf.setValue(argPrefix + DOC, argDocs[x]); + } + } + } + if (!"".equals(annotation.returns())) { + hdf.setValue(prefix + RETURNS, annotation.returns()); + } + outputItemCount++; + } + + return hdf; + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerOptions.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerOptions.java new file mode 100644 index 000000000..cf193c294 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerOptions.java @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.collect.ImmutableList; + +import java.io.File; +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; + +public class MonkeyRunnerOptions { + private static final Logger LOG = Logger.getLogger(MonkeyRunnerOptions.class.getName()); + private static String DEFAULT_MONKEY_SERVER_ADDRESS = "127.0.0.1"; + private static int DEFAULT_MONKEY_PORT = 12345; + + private final int port; + private final String hostname; + private final File scriptFile; + private final String backend; + private final Collection plugins; + private final Collection arguments; + + private MonkeyRunnerOptions(String hostname, int port, File scriptFile, String backend, + Collection plugins, Collection arguments) { + this.hostname = hostname; + this.port = port; + this.scriptFile = scriptFile; + this.backend = backend; + this.plugins = plugins; + this.arguments = arguments; + } + + public int getPort() { + return port; + } + + public String getHostname() { + return hostname; + } + + public File getScriptFile() { + return scriptFile; + } + + public String getBackendName() { + return backend; + } + + public Collection getPlugins() { + return plugins; + } + + public Collection getArguments() { + return arguments; + } + + private static void printUsage(String message) { + System.out.println(message); + System.out.println("Usage: monkeyrunner [options] SCRIPT_FILE"); + System.out.println(""); + System.out.println(" -s MonkeyServer IP Address."); + System.out.println(" -p MonkeyServer TCP Port."); + System.out.println(" -v MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFF)"); + System.out.println(""); + System.out.println(""); + } + + /** + * Process the command-line options + * + * @return the parsed options, or null if there was an error. + */ + public static MonkeyRunnerOptions processOptions(String[] args) { + // parse command line parameters. + int index = 0; + + String hostname = DEFAULT_MONKEY_SERVER_ADDRESS; + File scriptFile = null; + int port = DEFAULT_MONKEY_PORT; + String backend = "adb"; + + ImmutableList.Builder pluginListBuilder = ImmutableList.builder(); + ImmutableList.Builder argumentBuilder = ImmutableList.builder(); + while (index < args.length) { + String argument = args[index++]; + + if ("-s".equals(argument)) { + if (index == args.length) { + printUsage("Missing Server after -s"); + return null; + } + hostname = args[index++]; + + } else if ("-p".equals(argument)) { + // quick check on the next argument. + if (index == args.length) { + printUsage("Missing Server port after -p"); + return null; + } + port = Integer.parseInt(args[index++]); + + } else if ("-v".equals(argument)) { + // quick check on the next argument. + if (index == args.length) { + printUsage("Missing Log Level after -v"); + return null; + } + + Level level = Level.parse(args[index++]); + LOG.setLevel(level); + level = LOG.getLevel(); + System.out.println("Log level set to: " + level + "(" + level.intValue() + ")."); + System.out.println("Warning: Log levels below INFO(800) not working currently... parent issues"); + } else if ("-be".equals(argument)) { + // quick check on the next argument. + if (index == args.length) { + printUsage("Missing backend name after -be"); + return null; + } + backend = args[index++]; + } else if ("-plugin".equals(argument)) { + // quick check on the next argument. + if (index == args.length) { + printUsage("Missing plugin path after -plugin"); + return null; + } + File plugin = new File(args[index++]); + if (!plugin.exists()) { + printUsage("Plugin file doesn't exist"); + return null; + } + + if (!plugin.canRead()) { + printUsage("Can't read plugin file"); + return null; + } + + pluginListBuilder.add(plugin); + } else if (argument.startsWith("-") && + // Once we have the scriptfile, the rest of the arguments go to jython. + scriptFile == null) { + // we have an unrecognized argument. + printUsage("Unrecognized argument: " + argument + "."); + return null; + } else { + if (scriptFile == null) { + // get the filepath of the script to run. This will be the last undashed argument. + scriptFile = new File(argument); + if (!scriptFile.exists()) { + printUsage("Can't open specified script file"); + return null; + } + if (!scriptFile.canRead()) { + printUsage("Can't open specified script file"); + return null; + } + } else { + argumentBuilder.add(argument); + } + } + }; + + return new MonkeyRunnerOptions(hostname, port, scriptFile, backend, + pluginListBuilder.build(), argumentBuilder.build()); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerStarter.java b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerStarter.java new file mode 100644 index 000000000..1f539ba4d --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/MonkeyRunnerStarter.java @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableMap; + +import com.android.monkeyrunner.adb.AdbBackend; +import com.android.monkeyrunner.stub.StubBackend; + +import org.python.util.PythonInterpreter; + +import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.Enumeration; +import java.util.Map; +import java.util.jar.Attributes; +import java.util.jar.JarFile; +import java.util.jar.Manifest; +import java.util.logging.Formatter; +import java.util.logging.Handler; +import java.util.logging.Level; +import java.util.logging.LogManager; +import java.util.logging.Logger; + +/** + * MonkeyRunner is a host side application to control a monkey instance on a + * device. MonkeyRunner provides some useful helper functions to control the + * device as well as various other methods to help script tests. This class bootstraps + * MonkeyRunner. + */ +public class MonkeyRunnerStarter { + private static final Logger LOG = Logger.getLogger(MonkeyRunnerStarter.class.getName()); + private static final String MONKEY_RUNNER_MAIN_MANIFEST_NAME = "MonkeyRunnerStartupRunner"; + + private final MonkeyRunnerBackend backend; + private final MonkeyRunnerOptions options; + + public MonkeyRunnerStarter(MonkeyRunnerOptions options) { + this.options = options; + this.backend = MonkeyRunnerStarter.createBackendByName(options.getBackendName()); + if (this.backend == null) { + throw new RuntimeException("Unknown backend"); + } + } + + + /** + * Creates a specific backend by name. + * + * @param backendName the name of the backend to create + * @return the new backend, or null if none were found. + */ + public static MonkeyRunnerBackend createBackendByName(String backendName) { + if ("adb".equals(backendName)) { + return new AdbBackend(); + } else if ("stub".equals(backendName)) { + return new StubBackend(); + } else { + return null; + } + } + + private int run() { + MonkeyRunner.setBackend(backend); + Map> plugins = handlePlugins(); + if (options.getScriptFile() == null) { + ScriptRunner.console(); + return 0; + } else { + int error = ScriptRunner.run(options.getScriptFile().getAbsolutePath(), + options.getArguments(), plugins); + backend.shutdown(); + MonkeyRunner.setBackend(null); + return error; + } + } + + private Predicate handlePlugin(File f) { + JarFile jarFile; + try { + jarFile = new JarFile(f); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to open plugin file. Is it a jar file? " + + f.getAbsolutePath(), e); + return Predicates.alwaysFalse(); + } + Manifest manifest; + try { + manifest = jarFile.getManifest(); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to get manifest file from jar: " + + f.getAbsolutePath(), e); + return Predicates.alwaysFalse(); + } + Attributes mainAttributes = manifest.getMainAttributes(); + String pluginClass = mainAttributes.getValue(MONKEY_RUNNER_MAIN_MANIFEST_NAME); + if (pluginClass == null) { + // No main in this plugin, so it always succeeds. + return Predicates.alwaysTrue(); + } + URL url; + try { + url = f.toURI().toURL(); + } catch (MalformedURLException e) { + LOG.log(Level.SEVERE, "Unable to convert file to url " + f.getAbsolutePath(), + e); + return Predicates.alwaysFalse(); + } + URLClassLoader classLoader = new URLClassLoader(new URL[] { url }, + ClassLoader.getSystemClassLoader()); + Class clz; + try { + clz = Class.forName(pluginClass, true, classLoader); + } catch (ClassNotFoundException e) { + LOG.log(Level.SEVERE, "Unable to load the specified plugin: " + pluginClass, e); + return Predicates.alwaysFalse(); + } + Object loadedObject; + try { + loadedObject = clz.newInstance(); + } catch (InstantiationException e) { + LOG.log(Level.SEVERE, "Unable to load the specified plugin: " + pluginClass, e); + return Predicates.alwaysFalse(); + } catch (IllegalAccessException e) { + LOG.log(Level.SEVERE, "Unable to load the specified plugin " + + "(did you make it public?): " + pluginClass, e); + return Predicates.alwaysFalse(); + } + // Cast it to the right type + if (loadedObject instanceof Runnable) { + final Runnable run = (Runnable) loadedObject; + return new Predicate() { + public boolean apply(PythonInterpreter i) { + run.run(); + return true; + } + }; + } else if (loadedObject instanceof Predicate) { + return (Predicate) loadedObject; + } else { + LOG.severe("Unable to coerce object into correct type: " + pluginClass); + return Predicates.alwaysFalse(); + } + } + + private Map> handlePlugins() { + ImmutableMap.Builder> builder = ImmutableMap.builder(); + for (File f : options.getPlugins()) { + builder.put(f.getAbsolutePath(), handlePlugin(f)); + } + return builder.build(); + } + + + + private static final void replaceAllLogFormatters(Formatter form) { + LogManager mgr = LogManager.getLogManager(); + Enumeration loggerNames = mgr.getLoggerNames(); + while (loggerNames.hasMoreElements()) { + String loggerName = loggerNames.nextElement(); + Logger logger = mgr.getLogger(loggerName); + for (Handler handler : logger.getHandlers()) { + handler.setFormatter(form); + handler.setLevel(Level.INFO); + } + } + } + + public static void main(String[] args) { + MonkeyRunnerOptions options = MonkeyRunnerOptions.processOptions(args); + + // logging property files are difficult + replaceAllLogFormatters(MonkeyFormatter.DEFAULT_INSTANCE); + + if (options == null) { + return; + } + + MonkeyRunnerStarter runner = new MonkeyRunnerStarter(options); + int error = runner.run(); + + // This will kill any background threads as well. + System.exit(error); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/PhysicalButton.java b/monkeyrunner/src/com/android/monkeyrunner/PhysicalButton.java new file mode 100644 index 000000000..f0525a059 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/PhysicalButton.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +public enum PhysicalButton { + HOME("home"), + SEARCH("search"), + MENU("menu"), + BACK("back"), + DPAD_UP("DPAD_UP"), + DPAD_DOWN("DPAD_DOWN"), + DPAD_LEFT("DPAD_LEFT"), + DPAD_RIGHT("DPAD_RIGHT"), + DPAD_CENTER("DPAD_CENTER"), + ENTER("enter"); + + private String keyName; + + private PhysicalButton(String keyName) { + this.keyName = keyName; + } + + public String getKeyName() { + return keyName; + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/ScriptRunner.java b/monkeyrunner/src/com/android/monkeyrunner/ScriptRunner.java new file mode 100644 index 000000000..c247a5f1a --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/ScriptRunner.java @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Lists; +import com.google.common.collect.ImmutableMap.Builder; + +import org.python.core.Py; +import org.python.core.PyException; +import org.python.core.PyObject; +import org.python.util.InteractiveConsole; +import org.python.util.JLineConsole; +import org.python.util.PythonInterpreter; + +import java.io.File; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.logging.Level; +import java.util.logging.Logger; + + +/** + * Runs Jython based scripts. + */ +public class ScriptRunner { + private static final Logger LOG = Logger.getLogger(MonkeyRunnerOptions.class.getName()); + + /** The "this" scope object for scripts. */ + private final Object scope; + private final String variable; + + /** Private constructor. */ + private ScriptRunner(Object scope, String variable) { + this.scope = scope; + this.variable = variable; + } + + /** Creates a new instance for the given scope object. */ + public static ScriptRunner newInstance(Object scope, String variable) { + return new ScriptRunner(scope, variable); + } + + /** + * Runs the specified Jython script. First runs the initialization script to + * preload the appropriate client library version. + * + * @param scriptfilename the name of the file to run. + * @param args the arguments passed in (excluding the filename). + * @param plugins a list of plugins to load. + * @return the error code from running the script. + */ + public static int run(String scriptfilename, Collection args, + Map> plugins) { + // Add the current directory of the script to the python.path search path. + File f = new File(scriptfilename); + + // Adjust the classpath so jython can access the classes in the specified classpath. + Collection classpath = Lists.newArrayList(f.getParent()); + classpath.addAll(plugins.keySet()); + + String[] argv = new String[args.size() + 1]; + argv[0] = f.getAbsolutePath(); + int x = 1; + for (String arg : args) { + argv[x++] = arg; + } + + initPython(classpath, argv); + + PythonInterpreter python = new PythonInterpreter(); + + // Now let the mains run. + for (Map.Entry> entry : plugins.entrySet()) { + boolean success; + try { + success = entry.getValue().apply(python); + } catch (Exception e) { + LOG.log(Level.SEVERE, "Plugin Main through an exception.", e); + continue; + } + if (!success) { + LOG.severe("Plugin Main returned error for: " + entry.getKey()); + } + } + + // Bind __name__ to __main__ so mains will run + python.set("__name__", "__main__"); + + try { + python.execfile(scriptfilename); + } catch (PyException e) { + if (Py.SystemExit.equals(e.type)) { + // Then recover the error code so we can pass it on + return (Integer) e.value.__tojava__(Integer.class); + } + // Then some other kind of exception was thrown. Log it and return error; + LOG.log(Level.SEVERE, "Script terminated due to an exception", e); + return 1; + } + return 0; + } + + public static void runString(String script) { + initPython(); + PythonInterpreter python = new PythonInterpreter(); + python.exec(script); + } + + public static Map runStringAndGet(String script, String... names) { + return runStringAndGet(script, Arrays.asList(names)); + } + + public static Map runStringAndGet(String script, Collection names) { + initPython(); + final PythonInterpreter python = new PythonInterpreter(); + python.exec(script); + + Builder builder = ImmutableMap.builder(); + for (String name : names) { + builder.put(name, python.get(name)); + } + return builder.build(); + } + + private static void initPython() { + List arg = Collections.emptyList(); + initPython(arg, new String[] {""}); + } + + private static void initPython(Collection pythonPath, + String[] argv) { + Properties props = new Properties(); + + // Build up the python.path + StringBuilder sb = new StringBuilder(); + sb.append(System.getProperty("java.class.path")); + for (String p : pythonPath) { + sb.append(":").append(p); + } + props.setProperty("python.path", sb.toString()); + + /** Initialize the python interpreter. */ + // Default is 'message' which displays sys-package-mgr bloat + // Choose one of error,warning,message,comment,debug + props.setProperty("python.verbose", "error"); + + PythonInterpreter.initialize(System.getProperties(), props, argv); + } + + /** + * Start an interactive python interpreter. + */ + public static void console() { + initPython(); + InteractiveConsole python = new JLineConsole(); + python.interact(); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/AdbBackend.java b/monkeyrunner/src/com/android/monkeyrunner/adb/AdbBackend.java new file mode 100644 index 000000000..63badf588 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/AdbBackend.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + +import com.google.common.collect.Lists; + +import com.android.ddmlib.AndroidDebugBridge; +import com.android.ddmlib.IDevice; +import com.android.monkeyrunner.MonkeyDevice; +import com.android.monkeyrunner.MonkeyRunnerBackend; + +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Pattern; + +/** + * Backend implementation that works over ADB to talk to the device. + */ +public class AdbBackend implements MonkeyRunnerBackend { + private static Logger LOG = Logger.getLogger(AdbBackend.class.getCanonicalName()); + // How long to wait each time we check for the device to be connected. + private static final int CONNECTION_ITERATION_TIMEOUT_MS = 200; + private final List devices = Lists.newArrayList(); + + private final AndroidDebugBridge bridge; + + public AdbBackend() { + AndroidDebugBridge.init(false /* debugger support */); + + bridge = AndroidDebugBridge.createBridge( + "adb", true /* forceNewBridge */); + } + + /** + * Checks the attached devices looking for one whose device id matches the specified regex. + * + * @param deviceIdRegex the regular expression to match against + * @return the Device (if found), or null (if not found). + */ + private IDevice findAttacedDevice(String deviceIdRegex) { + Pattern pattern = Pattern.compile(deviceIdRegex); + for (IDevice device : bridge.getDevices()) { + String serialNumber = device.getSerialNumber(); + if (pattern.matcher(serialNumber).matches()) { + return device; + } + } + return null; + } + + public MonkeyDevice waitForConnection() { + return waitForConnection(Integer.MAX_VALUE, ".*"); + } + + public MonkeyDevice waitForConnection(long timeoutMs, String deviceIdRegex) { + do { + IDevice device = findAttacedDevice(deviceIdRegex); + if (device != null) { + AdbMonkeyDevice amd = new AdbMonkeyDevice(device); + devices.add(amd); + return amd; + } + + try { + Thread.sleep(CONNECTION_ITERATION_TIMEOUT_MS); + } catch (InterruptedException e) { + LOG.log(Level.SEVERE, "Error sleeping", e); + } + timeoutMs -= CONNECTION_ITERATION_TIMEOUT_MS; + } while (timeoutMs > 0); + + // Timeout. Give up. + return null; + } + + public void shutdown() { + for (AdbMonkeyDevice device : devices) { + device.dispose(); + } + AndroidDebugBridge.terminate(); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyDevice.java b/monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyDevice.java new file mode 100644 index 000000000..dedc1ea42 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyDevice.java @@ -0,0 +1,530 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Preconditions; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; + +import com.android.ddmlib.IDevice; +import com.android.ddmlib.InstallException; +import com.android.ddmlib.ShellCommandUnresponsiveException; +import com.android.ddmlib.TimeoutException; +import com.android.ddmlib.AdbCommandRejectedException; +import com.android.monkeyrunner.MonkeyDevice; +import com.android.monkeyrunner.MonkeyImage; +import com.android.monkeyrunner.MonkeyManager; +import com.android.monkeyrunner.adb.LinearInterpolator.Point; + +import java.io.IOException; +import java.net.InetAddress; +import java.net.Socket; +import java.net.UnknownHostException; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.logging.Level; +import java.util.logging.Logger; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.annotation.Nullable; + +public class AdbMonkeyDevice extends MonkeyDevice { + private static final Logger LOG = Logger.getLogger(AdbMonkeyDevice.class.getName()); + + private static final String[] ZERO_LENGTH_STRING_ARRAY = new String[0]; + private static final long MANAGER_CREATE_TIMEOUT_MS = 5 * 1000; // 5 seconds + + private final ExecutorService executor = Executors.newCachedThreadPool(); + + private final IDevice device; + private MonkeyManager manager; + + public AdbMonkeyDevice(IDevice device) { + this.device = device; + this.manager = createManager("127.0.0.1", 12345); + + Preconditions.checkNotNull(this.manager); + } + + @Override + public MonkeyManager getManager() { + return manager; + } + + @Override + public void dispose() { + try { + manager.quit(); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error getting the manager to quit", e); + } + manager = null; + } + + private void executeAsyncCommand(final String command, + final LoggingOutputReceiver logger) { + executor.submit(new Runnable() { + public void run() { + try { + device.executeShellCommand(command, logger); + } catch (TimeoutException e) { + LOG.log(Level.SEVERE, "Error starting command: " + command, e); + throw new RuntimeException(e); + } catch (AdbCommandRejectedException e) { + LOG.log(Level.SEVERE, "Error starting command: " + command, e); + throw new RuntimeException(e); + } catch (ShellCommandUnresponsiveException e) { + LOG.log(Level.SEVERE, "Error starting command: " + command, e); + throw new RuntimeException(e); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error starting command: " + command, e); + throw new RuntimeException(e); + } + } + }); + } + + private MonkeyManager createManager(String address, int port) { + try { + device.createForward(port, port); + } catch (TimeoutException e) { + LOG.log(Level.SEVERE, "Timeout creating adb port forwarding", e); + return null; + } catch (AdbCommandRejectedException e) { + LOG.log(Level.SEVERE, "Adb rejected adb port forwarding command: " + e.getMessage(), e); + return null; + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to create adb port forwarding: " + e.getMessage(), e); + return null; + } + + String command = "monkey --port " + port; + executeAsyncCommand(command, new LoggingOutputReceiver(LOG, Level.FINE)); + + // Sleep for a second to give the command time to execute. + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + LOG.log(Level.SEVERE, "Unable to sleep", e); + } + + InetAddress addr; + try { + addr = InetAddress.getByName(address); + } catch (UnknownHostException e) { + LOG.log(Level.SEVERE, "Unable to convert address into InetAddress: " + address, e); + return null; + } + + // We have a tough problem to solve here. "monkey" on the device gives us no indication + // when it has started up and is ready to serve traffic. If you try too soon, commands + // will fail. To remedy this, we will keep trying until a single command (in this case, + // wake) succeeds. + boolean success = false; + MonkeyManager mm = null; + long start = System.currentTimeMillis(); + + while (!success) { + long now = System.currentTimeMillis(); + long diff = now - start; + if (diff > MANAGER_CREATE_TIMEOUT_MS) { + LOG.severe("Timeout while trying to create monkey mananger"); + return null; + } + + Socket monkeySocket; + try { + monkeySocket = new Socket(addr, port); + } catch (IOException e) { + LOG.log(Level.FINE, "Unable to connect socket", e); + success = false; + continue; + } + + mm = new MonkeyManager(monkeySocket); + + try { + mm.wake(); + } catch (IOException e) { + LOG.log(Level.FINE, "Unable to wake up device", e); + success = false; + continue; + } + success = true; + } + + return mm; + } + + @Override + public MonkeyImage takeSnapshot() { + try { + return new AdbMonkeyImage(device.getScreenshot()); + } catch (TimeoutException e) { + LOG.log(Level.SEVERE, "Unable to take snapshot", e); + return null; + } catch (AdbCommandRejectedException e) { + LOG.log(Level.SEVERE, "Unable to take snapshot", e); + return null; + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to take snapshot", e); + return null; + } + } + + @Override + protected String getSystemProperty(String key) { + return device.getProperty(key); + } + + @Override + protected String getProperty(String key) { + try { + return manager.getVariable(key); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to get variable: " + key, e); + return null; + } + } + + @Override + protected void wake() { + try { + manager.wake(); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to wake device (too sleepy?)", e); + } + } + + private String shell(String... args) { + StringBuilder cmd = new StringBuilder(); + for (String arg : args) { + cmd.append(arg).append(" "); + } + return shell(cmd.toString()); + } + + @Override + protected String shell(String cmd) { + CommandOutputCapture capture = new CommandOutputCapture(); + try { + device.executeShellCommand(cmd, capture); + } catch (TimeoutException e) { + LOG.log(Level.SEVERE, "Error executing command: " + cmd, e); + return null; + } catch (ShellCommandUnresponsiveException e) { + LOG.log(Level.SEVERE, "Error executing command: " + cmd, e); + return null; + } catch (AdbCommandRejectedException e) { + LOG.log(Level.SEVERE, "Error executing command: " + cmd, e); + return null; + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error executing command: " + cmd, e); + return null; + } + return capture.toString(); + } + + @Override + protected boolean installPackage(String path) { + try { + String result = device.installPackage(path, true); + if (result != null) { + LOG.log(Level.SEVERE, "Got error installing package: "+ result); + return false; + } + return true; + } catch (InstallException e) { + LOG.log(Level.SEVERE, "Error installing package: " + path, e); + return false; + } + } + + @Override + protected boolean removePackage(String packageName) { + try { + String result = device.uninstallPackage(packageName); + if (result != null) { + LOG.log(Level.SEVERE, "Got error uninstalling package "+ packageName + ": " + + result); + return false; + } + return true; + } catch (InstallException e) { + LOG.log(Level.SEVERE, "Error installing package: " + packageName, e); + return false; + } + } + + @Override + protected void press(String keyName, TouchPressType type) { + try { + switch (type) { + case DOWN_AND_UP: + manager.press(keyName); + break; + case DOWN: + manager.keyDown(keyName); + break; + case UP: + manager.keyUp(keyName); + break; + } + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error sending press event: " + keyName + " " + type, e); + } + } + + @Override + protected void type(String string) { + try { + manager.type(string); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error Typing: " + string, e); + } + } + + @Override + protected void touch(int x, int y, TouchPressType type) { + try { + switch (type) { + case DOWN: + manager.touchDown(x, y); + break; + case UP: + manager.touchUp(x, y); + break; + case DOWN_AND_UP: + manager.tap(x, y); + break; + } + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error sending touch event: " + x + " " + y + " " + type, e); + } + } + + @Override + protected void reboot(String into) { + try { + device.reboot(into); + } catch (TimeoutException e) { + LOG.log(Level.SEVERE, "Unable to reboot device", e); + } catch (AdbCommandRejectedException e) { + LOG.log(Level.SEVERE, "Unable to reboot device", e); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Unable to reboot device", e); + } + } + + @Override + protected void startActivity(String uri, String action, String data, String mimetype, + Collection categories, Map extras, String component, + int flags) { + List intentArgs = buildIntentArgString(uri, action, data, mimetype, categories, + extras, component, flags); + shell(Lists.asList("am", "start", + intentArgs.toArray(ZERO_LENGTH_STRING_ARRAY)).toArray(ZERO_LENGTH_STRING_ARRAY)); + } + + @Override + protected void broadcastIntent(String uri, String action, String data, String mimetype, + Collection categories, Map extras, String component, + int flags) { + List intentArgs = buildIntentArgString(uri, action, data, mimetype, categories, + extras, component, flags); + shell(Lists.asList("am", "broadcast", + intentArgs.toArray(ZERO_LENGTH_STRING_ARRAY)).toArray(ZERO_LENGTH_STRING_ARRAY)); + } + + private static boolean isNullOrEmpty(@Nullable String string) { + return string == null || string.length() == 0; + } + + private List buildIntentArgString(String uri, String action, String data, String mimetype, + Collection categories, Map extras, String component, + int flags) { + List parts = Lists.newArrayList(); + + // from adb docs: + // specifications include these flags: + // [-a ] [-d ] [-t ] + // [-c [-c ] ...] + // [-e|--es ...] + // [--esn ...] + // [--ez ...] + // [-e|--ei ...] + // [-n ] [-f ] + // [] + + if (!isNullOrEmpty(action)) { + parts.add("-a"); + parts.add(action); + } + + if (!isNullOrEmpty(data)) { + parts.add("-d"); + parts.add(data); + } + + if (!isNullOrEmpty(mimetype)) { + parts.add("-t"); + parts.add(mimetype); + } + + // Handle categories + for (String category : categories) { + parts.add("-c"); + parts.add(category); + } + + // Handle extras + for (Entry entry : extras.entrySet()) { + // Extras are either boolean, string, or int. See which we have + Object value = entry.getValue(); + String valueString; + String arg; + if (value instanceof Integer) { + valueString = Integer.toString((Integer) value); + arg = "--ei"; + } else if (value instanceof Boolean) { + valueString = Boolean.toString((Boolean) value); + arg = "--ez"; + } else { + // treat is as a string. + valueString = value.toString(); + arg = "--esmake"; + } + parts.add(arg); + parts.add(valueString); + } + + if (!isNullOrEmpty(component)) { + parts.add("-n"); + parts.add(component); + } + + if (flags != 0) { + parts.add("-f"); + parts.add(Integer.toString(flags)); + } + + if (!isNullOrEmpty(uri)) { + parts.add(uri); + } + + return parts; + } + + @Override + protected Map instrument(String packageName, Map args) { + List shellCmd = Lists.newArrayList("am", "instrument", "-w", "-r", packageName); + String result = shell(shellCmd.toArray(ZERO_LENGTH_STRING_ARRAY)); + return convertInstrumentResult(result); + } + + /** + * Convert the instrumentation result into it's Map representation. + * + * @param result the result string + * @return the new map + */ + @VisibleForTesting + /* package */ static Map convertInstrumentResult(String result) { + Map map = Maps.newHashMap(); + Pattern pattern = Pattern.compile("^INSTRUMENTATION_(\\w+): ", Pattern.MULTILINE); + Matcher matcher = pattern.matcher(result); + + int previousEnd = 0; + String previousWhich = null; + + while (matcher.find()) { + if ("RESULT".equals(previousWhich)) { + String resultLine = result.substring(previousEnd, matcher.start()).trim(); + // Look for the = in the value, and split there + int splitIndex = resultLine.indexOf("="); + String key = resultLine.substring(0, splitIndex); + String value = resultLine.substring(splitIndex + 1); + + map.put(key, value); + } + + previousEnd = matcher.end(); + previousWhich = matcher.group(1); + } + if ("RESULT".equals(previousWhich)) { + String resultLine = result.substring(previousEnd, matcher.start()).trim(); + // Look for the = in the value, and split there + int splitIndex = resultLine.indexOf("="); + String key = resultLine.substring(0, splitIndex); + String value = resultLine.substring(splitIndex + 1); + + map.put(key, value); + } + return map; + } + + @Override + protected void drag(int startx, int starty, int endx, int endy, int steps, long ms) { + final long iterationTime = ms / steps; + + LinearInterpolator lerp = new LinearInterpolator(steps); + LinearInterpolator.Point start = new LinearInterpolator.Point(startx, starty); + LinearInterpolator.Point end = new LinearInterpolator.Point(endx, endy); + lerp.interpolate(start, end, new LinearInterpolator.Callback() { + public void step(Point point) { + try { + manager.touchMove(point.getX(), point.getY()); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error sending drag start event", e); + } + + try { + Thread.sleep(iterationTime); + } catch (InterruptedException e) { + LOG.log(Level.SEVERE, "Error sleeping", e); + } + } + + public void start(Point point) { + try { + manager.touchDown(point.getX(), point.getY()); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error sending drag start event", e); + } + + try { + Thread.sleep(iterationTime); + } catch (InterruptedException e) { + LOG.log(Level.SEVERE, "Error sleeping", e); + } + } + + public void end(Point point) { + try { + manager.touchUp(point.getX(), point.getY()); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error sending drag end event", e); + } + } + }); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyImage.java b/monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyImage.java new file mode 100644 index 000000000..fc3260084 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/AdbMonkeyImage.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + +import com.android.ddmlib.RawImage; +import com.android.monkeyrunner.MonkeyImage; +import com.android.monkeyrunner.adb.image.ImageUtils; + +import java.awt.image.BufferedImage; + +/** + * ADB implementation of the MonkeyImage class. + */ +public class AdbMonkeyImage extends MonkeyImage { + private final RawImage image; + + /** + * Create a new AdbMonkeyImage. + * + * @param image the image from adb. + */ + AdbMonkeyImage(RawImage image) { + this.image = image; + } + + @Override + public BufferedImage createBufferedImage() { + return ImageUtils.convertImage(image); + } + + public RawImage getRawImage() { + return image; + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/CommandOutputCapture.java b/monkeyrunner/src/com/android/monkeyrunner/adb/CommandOutputCapture.java new file mode 100644 index 000000000..9f99a7a4d --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/CommandOutputCapture.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + +import com.android.ddmlib.IShellOutputReceiver; + +/** + * Shell Output Receiver that captures shell output into a String for + * later retrieval. + */ +public class CommandOutputCapture implements IShellOutputReceiver { + private final StringBuilder builder = new StringBuilder(); + + public void flush() { } + + public boolean isCancelled() { + return false; + } + + public void addOutput(byte[] data, int offset, int length) { + String message = new String(data, offset, length); + builder.append(message); + } + + @Override + public String toString() { + return builder.toString(); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/LinearInterpolator.java b/monkeyrunner/src/com/android/monkeyrunner/adb/LinearInterpolator.java new file mode 100644 index 000000000..e39fefdd0 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/LinearInterpolator.java @@ -0,0 +1,128 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + + + +/** + * Linear Interpolation class. + */ +public class LinearInterpolator { + private final int steps; + + /** + * Use our own Point class so we don't pull in java.awt.* just for this simple class. + */ + public static class Point { + private final int x; + private final int y; + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + @Override + public String toString() { + return new StringBuilder(). + append("("). + append(x). + append(","). + append(y). + append(")").toString(); + } + + + @Override + public boolean equals(Object obj) { + if (obj instanceof Point) { + Point that = (Point) obj; + return this.x == that.x && this.y == that.y; + } + return false; + } + + @Override + public int hashCode() { + return 0x43125315 + x + y; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + } + + /** + * Callback interface to recieve interpolated points. + */ + public interface Callback { + /** + * Called once to inform of the start point. + */ + void start(Point point); + /** + * Called once to inform of the end point. + */ + void end(Point point); + /** + * Called at every step in-between start and end. + */ + void step(Point point); + } + + /** + * Create a new linear Interpolator. + * + * @param steps How many steps should be in a single run. This counts the intervals + * in-between points, so the actual number of points generated will be steps + 1. + */ + public LinearInterpolator(int steps) { + this.steps = steps; + } + + // Copied from android.util.MathUtils since we couldn't link it in on the host. + private static float lerp(float start, float stop, float amount) { + return start + (stop - start) * amount; + } + + /** + * Calculate the interpolated points. + * + * @param start The starting point + * @param end The ending point + * @param callback the callback to call with each calculated points. + */ + public void interpolate(Point start, Point end, Callback callback) { + int xDistance = Math.abs(end.getX() - start.getX()); + int yDistance = Math.abs(end.getY() - start.getY()); + float amount = (float) (1.0 / steps); + + + callback.start(start); + for (int i = 1; i < steps; i++) { + float newX = lerp(start.getX(), end.getX(), amount * i); + float newY = lerp(start.getY(), end.getY(), amount * i); + + callback.step(new Point(Math.round(newX), Math.round(newY))); + } + // Generate final point + callback.end(end); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/LoggingOutputReceiver.java b/monkeyrunner/src/com/android/monkeyrunner/adb/LoggingOutputReceiver.java new file mode 100644 index 000000000..b78aff317 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/LoggingOutputReceiver.java @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + +import com.android.ddmlib.IShellOutputReceiver; + +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Shell Output Receiver that sends shell output to a Logger. + */ +public class LoggingOutputReceiver implements IShellOutputReceiver { + private final Logger log; + private final Level level; + + public LoggingOutputReceiver(Logger log, Level level) { + this.log = log; + this.level = level; + } + + public void addOutput(byte[] data, int offset, int length) { + String message = new String(data, offset, length); + for (String line : message.split("\n")) { + log.log(level, line); + } + } + + public void flush() { } + + public boolean isCancelled() { + return false; + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/image/CaptureRawAndConvertedImage.java b/monkeyrunner/src/com/android/monkeyrunner/adb/image/CaptureRawAndConvertedImage.java new file mode 100644 index 000000000..7e31ea538 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/image/CaptureRawAndConvertedImage.java @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb.image; + +import com.android.ddmlib.RawImage; +import com.android.monkeyrunner.MonkeyDevice; +import com.android.monkeyrunner.adb.AdbBackend; +import com.android.monkeyrunner.adb.AdbMonkeyImage; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectOutputStream; +import java.io.Serializable; + +/** + * Utility program to capture raw and converted images from a device and write them to a file. + * This is used to generate the test data for ImageUtilsTest. + */ +public class CaptureRawAndConvertedImage { + public static class MonkeyRunnerRawImage implements Serializable { + public int version; + public int bpp; + public int size; + public int width; + public int height; + public int red_offset; + public int red_length; + public int blue_offset; + public int blue_length; + public int green_offset; + public int green_length; + public int alpha_offset; + public int alpha_length; + + public byte[] data; + + public MonkeyRunnerRawImage(RawImage rawImage) { + version = rawImage.version; + bpp = rawImage.bpp; + size = rawImage.size; + width = rawImage.width; + height = rawImage.height; + red_offset = rawImage.red_offset; + red_length = rawImage.red_length; + blue_offset = rawImage.blue_offset; + blue_length = rawImage.blue_length; + green_offset = rawImage.green_offset; + green_length = rawImage.green_length; + alpha_offset = rawImage.alpha_offset; + alpha_length = rawImage.alpha_length; + + data = rawImage.data; + } + + public RawImage toRawImage() { + RawImage rawImage = new RawImage(); + + rawImage.version = version; + rawImage.bpp = bpp; + rawImage.size = size; + rawImage.width = width; + rawImage.height = height; + rawImage.red_offset = red_offset; + rawImage.red_length = red_length; + rawImage.blue_offset = blue_offset; + rawImage.blue_length = blue_length; + rawImage.green_offset = green_offset; + rawImage.green_length = green_length; + rawImage.alpha_offset = alpha_offset; + rawImage.alpha_length = alpha_length; + + rawImage.data = data; + return rawImage; + } + } + + private static void writeOutImage(RawImage screenshot, String name) throws IOException { + ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(name)); + out.writeObject(new MonkeyRunnerRawImage(screenshot)); + out.close(); + } + + public static void main(String[] args) throws IOException { + AdbBackend backend = new AdbBackend(); + MonkeyDevice device = backend.waitForConnection(); + AdbMonkeyImage snapshot = (AdbMonkeyImage) device.takeSnapshot(); + + // write out to a file + snapshot.writeToFile("output.png", "png"); + writeOutImage(snapshot.getRawImage(), "output.raw"); + System.exit(0); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/image/ImageUtils.java b/monkeyrunner/src/com/android/monkeyrunner/adb/image/ImageUtils.java new file mode 100644 index 000000000..c3eaf014e --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/image/ImageUtils.java @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb.image; + +import com.android.ddmlib.RawImage; + +import java.awt.Point; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.image.DataBufferByte; +import java.awt.image.PixelInterleavedSampleModel; +import java.awt.image.Raster; +import java.awt.image.WritableRaster; +import java.util.Hashtable; +/** + * Useful image related functions. + */ +public class ImageUtils { + // Utility class + private ImageUtils() { } + + private static Hashtable EMPTY_HASH = new Hashtable(); + private static int[] BAND_OFFSETS_32 = { 0, 1, 2, 3 }; + private static int[] BAND_OFFSETS_16 = { 0, 1 }; + + /** + * Convert a raw image into a buffered image. + * + * @param rawImage the raw image to convert + * @param image the old image to (possibly) recycle + * @return the converted image + */ + public static BufferedImage convertImage(RawImage rawImage, BufferedImage image) { + switch (rawImage.bpp) { + case 16: + return rawImage16toARGB(image, rawImage); + case 32: + return rawImage32toARGB(rawImage); + } + return null; + } + + /** + * Convert a raw image into a buffered image. + * + * @param rawImage the image to convert. + * @return the converted image. + */ + public static BufferedImage convertImage(RawImage rawImage) { + return convertImage(rawImage, null); + } + + static int getMask(int length) { + int res = 0; + for (int i = 0 ; i < length ; i++) { + res = (res << 1) + 1; + } + + return res; + } + + private static BufferedImage rawImage32toARGB(RawImage rawImage) { + // Do as much as we can to not make an extra copy of the data. This is just a bunch of + // classes that wrap's the raw byte array of the image data. + DataBufferByte dataBuffer = new DataBufferByte(rawImage.data, rawImage.size); + + PixelInterleavedSampleModel sampleModel = + new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, rawImage.width, rawImage.height, + 4, rawImage.width * 4, BAND_OFFSETS_32); + WritableRaster raster = Raster.createWritableRaster(sampleModel, dataBuffer, + new Point(0, 0)); + return new BufferedImage(new ThirtyTwoBitColorModel(rawImage), raster, false, EMPTY_HASH); + } + + private static BufferedImage rawImage16toARGB(BufferedImage image, RawImage rawImage) { + // Do as much as we can to not make an extra copy of the data. This is just a bunch of + // classes that wrap's the raw byte array of the image data. + DataBufferByte dataBuffer = new DataBufferByte(rawImage.data, rawImage.size); + + PixelInterleavedSampleModel sampleModel = + new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, rawImage.width, rawImage.height, + 2, rawImage.width * 2, BAND_OFFSETS_16); + WritableRaster raster = Raster.createWritableRaster(sampleModel, dataBuffer, + new Point(0, 0)); + return new BufferedImage(new SixteenBitColorModel(rawImage), raster, false, EMPTY_HASH); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/image/SixteenBitColorModel.java b/monkeyrunner/src/com/android/monkeyrunner/adb/image/SixteenBitColorModel.java new file mode 100644 index 000000000..06ab939f0 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/image/SixteenBitColorModel.java @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb.image; + +import com.android.ddmlib.RawImage; + +import java.awt.Transparency; +import java.awt.color.ColorSpace; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.Raster; + +/** + * Internal color model used to do conversion of 16bpp RawImages. + */ +class SixteenBitColorModel extends ColorModel { + private static final int[] BITS = { + 8, 8, 8, 8 + }; + public SixteenBitColorModel(RawImage rawImage) { + super(32 + , BITS, ColorSpace.getInstance(ColorSpace.CS_sRGB), + true, false, Transparency.TRANSLUCENT, + DataBuffer.TYPE_BYTE); + } + + @Override + public boolean isCompatibleRaster(Raster raster) { + return true; + } + + private int getPixel(Object inData) { + byte[] data = (byte[]) inData; + int value = data[0] & 0x00FF; + value |= (data[1] << 8) & 0x0FF00; + + return value; + } + + @Override + public int getAlpha(Object inData) { + return 0xff; + } + + @Override + public int getBlue(Object inData) { + int pixel = getPixel(inData); + return ((pixel >> 0) & 0x01F) << 3; + } + + @Override + public int getGreen(Object inData) { + int pixel = getPixel(inData); + return ((pixel >> 5) & 0x03F) << 2; + } + + @Override + public int getRed(Object inData) { + int pixel = getPixel(inData); + return ((pixel >> 11) & 0x01F) << 3; + } + + @Override + public int getAlpha(int pixel) { + throw new UnsupportedOperationException(); + } + + @Override + public int getBlue(int pixel) { + throw new UnsupportedOperationException(); + } + + @Override + public int getGreen(int pixel) { + throw new UnsupportedOperationException(); + } + + @Override + public int getRed(int pixel) { + throw new UnsupportedOperationException(); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/adb/image/ThirtyTwoBitColorModel.java b/monkeyrunner/src/com/android/monkeyrunner/adb/image/ThirtyTwoBitColorModel.java new file mode 100644 index 000000000..d4e47ea31 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/adb/image/ThirtyTwoBitColorModel.java @@ -0,0 +1,126 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb.image; + +import com.android.ddmlib.RawImage; + +import java.awt.Transparency; +import java.awt.color.ColorSpace; +import java.awt.image.ColorModel; +import java.awt.image.DataBuffer; +import java.awt.image.Raster; + +/** + * Internal color model used to do conversion of 32bpp RawImages. + */ +class ThirtyTwoBitColorModel extends ColorModel { + private static final int[] BITS = { + 8, 8, 8, 8, + }; + private final int alphaLength; + private final int alphaMask; + private final int alphaOffset; + private final int blueMask; + private final int blueLength; + private final int blueOffset; + private final int greenMask; + private final int greenLength; + private final int greenOffset; + private final int redMask; + private final int redLength; + private final int redOffset; + + public ThirtyTwoBitColorModel(RawImage rawImage) { + super(32, BITS, ColorSpace.getInstance(ColorSpace.CS_sRGB), + true, false, Transparency.TRANSLUCENT, + DataBuffer.TYPE_BYTE); + + redOffset = rawImage.red_offset; + redLength = rawImage.red_length; + redMask = ImageUtils.getMask(redLength); + greenOffset = rawImage.green_offset; + greenLength = rawImage.green_length; + greenMask = ImageUtils.getMask(greenLength); + blueOffset = rawImage.blue_offset; + blueLength = rawImage.blue_length; + blueMask = ImageUtils.getMask(blueLength); + alphaLength = rawImage.alpha_length; + alphaOffset = rawImage.alpha_offset; + alphaMask = ImageUtils.getMask(alphaLength); + } + + @Override + public boolean isCompatibleRaster(Raster raster) { + return true; + } + + private int getPixel(Object inData) { + byte[] data = (byte[]) inData; + int value = data[0] & 0x00FF; + value |= (data[1] & 0x00FF) << 8; + value |= (data[2] & 0x00FF) << 16; + value |= (data[3] & 0x00FF) << 24; + + return value; + } + + @Override + public int getAlpha(Object inData) { + int pixel = getPixel(inData); + if(alphaLength == 0) { + return 0xff; + } + return ((pixel >>> alphaOffset) & alphaMask) << (8 - alphaLength); + } + + @Override + public int getBlue(Object inData) { + int pixel = getPixel(inData); + return ((pixel >>> blueOffset) & blueMask) << (8 - blueLength); + } + + @Override + public int getGreen(Object inData) { + int pixel = getPixel(inData); + return ((pixel >>> greenOffset) & greenMask) << (8 - greenLength); + } + + @Override + public int getRed(Object inData) { + int pixel = getPixel(inData); + return ((pixel >>> redOffset) & redMask) << (8 - redLength); + } + + @Override + public int getAlpha(int pixel) { + throw new UnsupportedOperationException(); + } + + @Override + public int getBlue(int pixel) { + throw new UnsupportedOperationException(); + } + + @Override + public int getGreen(int pixel) { + throw new UnsupportedOperationException(); + } + + @Override + public int getRed(int pixel) { + throw new UnsupportedOperationException(); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyController.java b/monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyController.java new file mode 100644 index 000000000..e199a7595 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyController.java @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.controller; + +import com.android.monkeyrunner.MonkeyDevice; +import com.android.monkeyrunner.adb.AdbBackend; + +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.util.logging.Logger; + +import javax.swing.JFrame; +import javax.swing.SwingUtilities; + +/** + * Application that can control an attached device using the network monkey. It has a window + * that shows what the current screen looks like and allows the user to click in it. Clicking in + * the window sends touch events to the attached device. It also supports keyboard input for + * typing and has buttons to press to simulate physical buttons on the device. + */ +public class MonkeyController extends JFrame { + private static final Logger LOG = Logger.getLogger(MonkeyController.class.getName()); + + public static void main(String[] args) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + AdbBackend adb = new AdbBackend(); + final MonkeyDevice device = adb.waitForConnection(); + MonkeyControllerFrame mf = new MonkeyControllerFrame(device); + mf.setVisible(true); + mf.addWindowListener(new WindowAdapter() { + @Override + public void windowClosed(WindowEvent e) { + device.dispose(); + } + }); + } + }); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyControllerFrame.java b/monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyControllerFrame.java new file mode 100644 index 000000000..7f5a7d8b0 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/controller/MonkeyControllerFrame.java @@ -0,0 +1,174 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.controller; + +import com.android.monkeyrunner.MonkeyDevice; +import com.android.monkeyrunner.MonkeyImage; +import com.android.monkeyrunner.MonkeyManager; +import com.android.monkeyrunner.PhysicalButton; + +import java.awt.KeyEventDispatcher; +import java.awt.KeyboardFocusManager; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.util.logging.Logger; + +import javax.swing.AbstractAction; +import javax.swing.BoxLayout; +import javax.swing.ImageIcon; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JToolBar; +import javax.swing.SwingUtilities; +import javax.swing.Timer; + +/** + * Main window for MonkeyController. + */ +public class MonkeyControllerFrame extends JFrame { + private static final Logger LOG = Logger.getLogger(MonkeyControllerFrame.class.getName()); + + private final JButton refreshButton = new JButton("Refresh"); + private final JButton variablesButton = new JButton("Variable"); + private final JLabel imageLabel = new JLabel(); + private final VariableFrame variableFrame; + + private MonkeyManager monkeyManager; + private BufferedImage currentImage; + + private final Timer timer = new Timer(1000, new ActionListener() { + public void actionPerformed(ActionEvent e) { + updateScreen(); + } + }); + + private final MonkeyDevice device; + + private class PressAction extends AbstractAction { + private final PhysicalButton button; + + public PressAction(PhysicalButton button) { + this.button = button; + } + public void actionPerformed(ActionEvent event) { + try { + monkeyManager.press(button); + } catch (IOException e) { + throw new RuntimeException(e); + } + updateScreen(); + } + } + + private JButton createToolbarButton(PhysicalButton hardButton) { + JButton button = new JButton(new PressAction(hardButton)); + button.setText(hardButton.getKeyName()); + return button; + } + + public MonkeyControllerFrame(MonkeyDevice device) { + super("MonkeyController"); + this.device = device; + + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + + setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); + JToolBar toolbar = new JToolBar(); + + toolbar.add(createToolbarButton(PhysicalButton.HOME)); + toolbar.add(createToolbarButton(PhysicalButton.BACK)); + toolbar.add(createToolbarButton(PhysicalButton.SEARCH)); + toolbar.add(createToolbarButton(PhysicalButton.MENU)); + + add(toolbar); + add(refreshButton); + add(variablesButton); + add(imageLabel); + + refreshButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + updateScreen(); + } + }); + + variableFrame = new VariableFrame(); + variablesButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + variableFrame.setVisible(true); + } + }); + + imageLabel.addMouseListener(new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent event) { + try { + monkeyManager.touch(event.getX(), event.getY()); + } catch (IOException e) { + throw new RuntimeException(e); + } + updateScreen(); + } + + }); + + KeyboardFocusManager focusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager(); + focusManager.addKeyEventDispatcher(new KeyEventDispatcher() { + public boolean dispatchKeyEvent(KeyEvent event) { + if (KeyEvent.KEY_TYPED == event.getID()) { + try { + monkeyManager.type(event.getKeyChar()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + return false; + } + }); + + SwingUtilities.invokeLater(new Runnable(){ + public void run() { + init(); + variableFrame.init(monkeyManager); + } + }); + + pack(); + } + + private void updateScreen() { + MonkeyImage snapshot = device.takeSnapshot(); + currentImage = snapshot.createBufferedImage(); + imageLabel.setIcon(new ImageIcon(currentImage)); + + pack(); + } + + private void init() { + monkeyManager = device.getManager(); + if (monkeyManager == null) { + throw new RuntimeException("Unable to create monkey manager"); + } + updateScreen(); + timer.start(); + } + +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/controller/VariableFrame.java b/monkeyrunner/src/com/android/monkeyrunner/controller/VariableFrame.java new file mode 100644 index 000000000..9015b5d61 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/controller/VariableFrame.java @@ -0,0 +1,185 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.controller; + +import com.google.common.collect.Sets; + +import com.android.monkeyrunner.MonkeyManager; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.io.IOException; +import java.util.Collection; +import java.util.Set; +import java.util.TreeSet; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.swing.BoxLayout; +import javax.swing.JButton; +import javax.swing.JFrame; +import javax.swing.JTable; +import javax.swing.SwingUtilities; +import javax.swing.WindowConstants; +import javax.swing.event.TableModelEvent; +import javax.swing.event.TableModelListener; +import javax.swing.table.AbstractTableModel; + +/** + * Swing Frame that displays all the variables that the monkey exposes on the device. + */ +public class VariableFrame extends JFrame { + private static final Logger LOG = Logger.getLogger(VariableFrame.class.getName()); + private static final ExecutorService EXECUTOR = Executors.newCachedThreadPool(); + private MonkeyManager monkeyManager; + + private static class VariableHolder implements Comparable { + private final String key; + private final String value; + + public VariableHolder(String key, String value) { + this.key = key; + this.value = value; + } + + public String getKey() { + return key; + } + + public String getValue() { + return value; + } + + public int compareTo(VariableHolder o) { + return key.compareTo(o.key); + } + } + + private static E getNthElement(Set set, int offset) { + int current = 0; + for (E elem : set) { + if (current == offset) { + return elem; + } + current++; + } + return null; + } + + private class VariableTableModel extends AbstractTableModel { + private final TreeSet set = Sets.newTreeSet(); + + public void refresh() { + Collection variables; + try { + variables = monkeyManager.listVariable(); + } catch (IOException e) { + LOG.log(Level.SEVERE, "Error getting list of variables", e); + return; + } + for (final String variable : variables) { + EXECUTOR.execute(new Runnable() { + public void run() { + String value; + try { + value = monkeyManager.getVariable(variable); + } catch (IOException e) { + LOG.log(Level.SEVERE, + "Error getting variable value for " + variable, e); + return; + } + if (value == null) { + value = ""; + } + synchronized (set) { + set.add(new VariableHolder(variable, value)); + SwingUtilities.invokeLater(new Runnable() { + public void run() { + VariableTableModel.this.fireTableDataChanged(); + } + }); + + } + } + }); + } + } + + public int getColumnCount() { + return 2; + } + + public int getRowCount() { + synchronized (set) { + return set.size(); + } + } + + public Object getValueAt(int rowIndex, int columnIndex) { + VariableHolder nthElement; + synchronized (set) { + nthElement = getNthElement(set, rowIndex); + } + if (columnIndex == 0) { + return nthElement.getKey(); + } + return nthElement.getValue(); + } + } + + public VariableFrame() { + super("Variables"); + setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE); + setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); + + final VariableTableModel tableModel = new VariableTableModel(); + + JButton refreshButton = new JButton("Refresh"); + add(refreshButton); + refreshButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + tableModel.refresh(); + } + }); + + + JTable table = new JTable(tableModel); + add(table); + + tableModel.addTableModelListener(new TableModelListener() { + public void tableChanged(TableModelEvent e) { + pack(); + } + }); + + this.addWindowListener(new WindowAdapter() { + @Override + public void windowOpened(WindowEvent e) { + tableModel.refresh(); + } + }); + + pack(); + } + + public void init(MonkeyManager monkeyManager) { + this.monkeyManager = monkeyManager; + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java b/monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java new file mode 100644 index 000000000..dd3eb0b57 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/doc/MonkeyRunnerExported.java @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.doc; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Indicates that the annotated method is a public API to expose to the + * scripting interface. Can be used to generate documentation of what + * methods are exposed and also can be used to enforce visibility of + * these methods in the scripting environment. + */ +@Retention(RetentionPolicy.RUNTIME) +@Target({ ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.TYPE }) +public @interface MonkeyRunnerExported { + /** + * A documentation string for this method. + */ + String doc(); + + /** + * The list of names for the keywords in this method in their proper positional order. + * + * For example: + * + * @MonkeyRunnerExported(args={"one", "two"}) + * public void foo(); + * + * would allow calls like this: + * foo(one=1, two=2) + * foo(1, 2) + */ + String[] args() default {}; + + /** + * The list of documentation for the arguments. + */ + String[] argDocs() default {}; + + /** + * The documentation for the return type of this method. + */ + String returns() default "returns nothing."; +} \ No newline at end of file diff --git a/monkeyrunner/src/com/android/monkeyrunner/exceptions/MonkeyRunnerException.java b/monkeyrunner/src/com/android/monkeyrunner/exceptions/MonkeyRunnerException.java new file mode 100644 index 000000000..8fe4143c2 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/exceptions/MonkeyRunnerException.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.exceptions; + +/** + * Base exception class for all MonkeyRunner Exceptions. + */ +public class MonkeyRunnerException extends Exception { + public MonkeyRunnerException(String message) { + super(message); + } + + public MonkeyRunnerException(Throwable e) { + super(e); + } + + public MonkeyRunnerException(String message, Throwable e) { + super(message, e); + } +} diff --git a/monkeyrunner/src/com/android/monkeyrunner/stub/StubBackend.java b/monkeyrunner/src/com/android/monkeyrunner/stub/StubBackend.java new file mode 100644 index 000000000..c2fa5f720 --- /dev/null +++ b/monkeyrunner/src/com/android/monkeyrunner/stub/StubBackend.java @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.stub; + +import com.android.monkeyrunner.MonkeyDevice; +import com.android.monkeyrunner.MonkeyManager; +import com.android.monkeyrunner.MonkeyRunnerBackend; + +public class StubBackend implements MonkeyRunnerBackend { + + public MonkeyManager createManager(String address, int port) { + // TODO Auto-generated method stub + return null; + } + + public MonkeyDevice waitForConnection(long timeout, String deviceId) { + // TODO Auto-generated method stub + return null; + } + + public void shutdown() { + // We're stub - we've got nothing to do. + } +} diff --git a/monkeyrunner/src/resources/com/android/monkeyrunner/html.cs b/monkeyrunner/src/resources/com/android/monkeyrunner/html.cs new file mode 100644 index 000000000..7d2c93f12 --- /dev/null +++ b/monkeyrunner/src/resources/com/android/monkeyrunner/html.cs @@ -0,0 +1,25 @@ + + +

MonkeyRunner Help

+

Table of Contents

+
    + +
  • + +
+ +

+

+ +

Args

+
    + +
  • -
  • + +
+

Returns

+

+ + + + diff --git a/monkeyrunner/src/resources/com/android/monkeyrunner/text.cs b/monkeyrunner/src/resources/com/android/monkeyrunner/text.cs new file mode 100644 index 000000000..4a4af5f51 --- /dev/null +++ b/monkeyrunner/src/resources/com/android/monkeyrunner/text.cs @@ -0,0 +1,9 @@ +MonkeyRunner help + + + + + Args: + - + Returns: + diff --git a/monkeyrunner/test/Android.mk b/monkeyrunner/test/Android.mk new file mode 100644 index 000000000..6e2233b56 --- /dev/null +++ b/monkeyrunner/test/Android.mk @@ -0,0 +1,23 @@ +# +# Copyright (C) 2010 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(call all-subdir-java-files) +LOCAL_MODULE := MonkeyRunnerTest +LOCAL_JAVA_LIBRARIES := junit monkeyrunner ddmlib guavalib jython + +include $(BUILD_HOST_JAVA_LIBRARY) diff --git a/monkeyrunner/test/com/android/monkeyrunner/AllTests.java b/monkeyrunner/test/com/android/monkeyrunner/AllTests.java new file mode 100644 index 000000000..9616759c8 --- /dev/null +++ b/monkeyrunner/test/com/android/monkeyrunner/AllTests.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.android.monkeyrunner.adb.AdbMonkeyDeviceTest; +import com.android.monkeyrunner.adb.LinearInterpolatorTest; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestResult; +import junit.framework.TestSuite; +import junit.textui.TestRunner; + +/** + * Test suite to run all the tests for MonkeyRunner. + */ +public class AllTests { + public static Test suite(Class... classes) { + TestSuite suite = new TestSuite(); + for (Class clz : classes) { + suite.addTestSuite(clz); + } + return suite; + } + + public static void main(String args[]) { + TestRunner tr = new TestRunner(); + TestResult result = tr.doRun(AllTests.suite(ImageUtilsTest.class, JythonUtilsTest.class, + MonkeyRunnerOptionsTest.class, LinearInterpolatorTest.class, + AdbMonkeyDeviceTest.class)); + if (result.wasSuccessful()) { + System.exit(0); + } else { + System.exit(1); + } + } +} diff --git a/monkeyrunner/test/com/android/monkeyrunner/ImageUtilsTest.java b/monkeyrunner/test/com/android/monkeyrunner/ImageUtilsTest.java new file mode 100644 index 000000000..f07c2f3fa --- /dev/null +++ b/monkeyrunner/test/com/android/monkeyrunner/ImageUtilsTest.java @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.android.ddmlib.RawImage; +import com.android.monkeyrunner.adb.image.CaptureRawAndConvertedImage; +import com.android.monkeyrunner.adb.image.ImageUtils; +import com.android.monkeyrunner.adb.image.CaptureRawAndConvertedImage.MonkeyRunnerRawImage; + +import junit.framework.TestCase; + +import java.awt.image.BufferedImage; +import java.awt.image.WritableRaster; +import java.io.IOException; +import java.io.InputStream; +import java.io.ObjectInputStream; + +import javax.imageio.ImageIO; + +public class ImageUtilsTest extends TestCase { + private static BufferedImage createBufferedImage(String name) throws IOException { + InputStream is = ImageUtilsTest.class.getResourceAsStream(name); + BufferedImage img = ImageIO.read(is); + is.close(); + return img; + } + + private static RawImage createRawImage(String name) throws IOException, ClassNotFoundException { + ObjectInputStream is = + new ObjectInputStream(ImageUtilsTest.class.getResourceAsStream(name)); + CaptureRawAndConvertedImage.MonkeyRunnerRawImage wrapper = (MonkeyRunnerRawImage) is.readObject(); + is.close(); + return wrapper.toRawImage(); + } + + /** + * Check that the two images will draw the same (ie. have the same pixels). This is different + * that BufferedImage.equals(), which also wants to check that they have the same ColorModel + * and other parameters. + * + * @param i1 the first image + * @param i2 the second image + * @return true if both images will draw the same (ie. have same pixels). + */ + private static boolean checkImagesHaveSamePixels(BufferedImage i1, BufferedImage i2) { + if (i1.getWidth() != i2.getWidth()) { + return false; + } + if (i1.getHeight() != i2.getHeight()) { + return false; + } + + for (int y = 0; y < i1.getHeight(); y++) { + for (int x = 0; x < i1.getWidth(); x++) { + int p1 = i1.getRGB(x, y); + int p2 = i2.getRGB(x, y); + if (p1 != p2) { + WritableRaster r1 = i1.getRaster(); + WritableRaster r2 = i2.getRaster(); + return false; + } + } + } + + return true; + } + + public void testImageConversionOld() throws IOException, ClassNotFoundException { + RawImage rawImage = createRawImage("image1.raw"); + BufferedImage convertedImage = ImageUtils.convertImage(rawImage); + BufferedImage correctConvertedImage = createBufferedImage("image1.png"); + + assertTrue(checkImagesHaveSamePixels(convertedImage, correctConvertedImage)); + } + + public void testImageConversionNew() throws IOException, ClassNotFoundException { + RawImage rawImage = createRawImage("image2.raw"); + BufferedImage convertedImage = ImageUtils.convertImage(rawImage); + BufferedImage correctConvertedImage = createBufferedImage("image2.png"); + + assertTrue(checkImagesHaveSamePixels(convertedImage, correctConvertedImage)); + } +} diff --git a/monkeyrunner/test/com/android/monkeyrunner/JythonUtilsTest.java b/monkeyrunner/test/com/android/monkeyrunner/JythonUtilsTest.java new file mode 100644 index 000000000..5b8c8f964 --- /dev/null +++ b/monkeyrunner/test/com/android/monkeyrunner/JythonUtilsTest.java @@ -0,0 +1,224 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import com.google.common.base.Preconditions; +import com.google.common.collect.Maps; + +import com.android.monkeyrunner.doc.MonkeyRunnerExported; + +import junit.framework.TestCase; + +import org.python.core.ArgParser; +import org.python.core.PyDictionary; +import org.python.core.PyException; +import org.python.core.PyObject; +import org.python.core.PyString; + +import java.util.List; +import java.util.Map; + +/** + * Unit tests for the JythonUtils class. + */ +public class JythonUtilsTest extends TestCase { + private static final String PACKAGE_NAME = JythonUtilsTest.class.getPackage().getName(); + private static final String CLASS_NAME = JythonUtilsTest.class.getSimpleName(); + + private static boolean called = false; + private static double floatValue = 0.0; + private static List listValue = null; + private static Map mapValue; + + @MonkeyRunnerExported(doc = "", args = {"value"}) + public static void floatTest(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + called = true; + + floatValue = JythonUtils.getFloat(ap, 0); + } + + @MonkeyRunnerExported(doc = "", args = {"value"}) + public static void listTest(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + called = true; + + listValue = JythonUtils.getList(ap, 0); + } + + @MonkeyRunnerExported(doc = "", args = {"value"}) + public static void mapTest(PyObject[] args, String[] kws) { + ArgParser ap = JythonUtils.createArgParser(args, kws); + Preconditions.checkNotNull(ap); + called = true; + + mapValue = JythonUtils.getMap(ap, 0); + } + + @MonkeyRunnerExported(doc = "") + public static PyDictionary convertMapTest(PyObject[] args, String[] kws) { + Map map = Maps.newHashMap(); + map.put("string", "value"); + map.put("integer", 1); + map.put("double", 3.14); + return JythonUtils.convertMapToDict(map); + } + + @Override + protected void setUp() throws Exception { + called = false; + floatValue = 0.0; + } + + private static PyObject call(String method) { + return call(method, new String[]{ }); + } + private static PyObject call(String method, String... args) { + StringBuilder sb = new StringBuilder(); + sb.append("from ").append(PACKAGE_NAME); + sb.append(" import ").append(CLASS_NAME).append("\n"); + + // Exec line + sb.append("result = "); + sb.append(CLASS_NAME).append(".").append(method); + sb.append("("); + for (String arg : args) { + sb.append(arg).append(","); + } + sb.append(")"); + + return ScriptRunner.runStringAndGet(sb.toString(), "result").get("result"); + } + + public void testSimpleCall() { + call("floatTest", "0.0"); + assertTrue(called); + } + + public void testMissingFloatArg() { + try { + call("floatTest"); + } catch(PyException e) { + return; + } + fail("Should have thrown exception"); + } + + public void testBadFloatArgType() { + try { + call("floatTest", "\'foo\'"); + } catch(PyException e) { + return; + } + fail("Should have thrown exception"); + } + + public void testFloatParse() { + call("floatTest", "103.2"); + assertTrue(called); + assertEquals(floatValue, 103.2); + } + + public void testFloatParseInteger() { + call("floatTest", "103"); + assertTrue(called); + assertEquals(floatValue, 103.0); + } + + public void testParseStringList() { + call("listTest", "['a', 'b', 'c']"); + assertTrue(called); + assertEquals(3, listValue.size()); + assertEquals("a", listValue.get(0)); + assertEquals("b", listValue.get(1)); + assertEquals("c", listValue.get(2)); + } + + public void testParseIntList() { + call("listTest", "[1, 2, 3]"); + assertTrue(called); + assertEquals(3, listValue.size()); + assertEquals(new Integer(1), listValue.get(0)); + assertEquals(new Integer(2), listValue.get(1)); + assertEquals(new Integer(3), listValue.get(2)); + } + + public void testParseMixedList() { + call("listTest", "['a', 1, 3.14]"); + assertTrue(called); + assertEquals(3, listValue.size()); + assertEquals("a", listValue.get(0)); + assertEquals(new Integer(1), listValue.get(1)); + assertEquals(new Double(3.14), listValue.get(2)); + } + + public void testParseOptionalList() { + call("listTest"); + assertTrue(called); + assertEquals(0, listValue.size()); + } + + public void testParsingNotAList() { + try { + call("listTest", "1.0"); + } catch (PyException e) { + return; + } + fail("Should have thrown an exception"); + } + + public void testParseMap() { + call("mapTest", "{'a': 0, 'b': 'bee', 3: 'cee'}"); + assertTrue(called); + assertEquals(3, mapValue.size()); + assertEquals(new Integer(0), mapValue.get("a")); + assertEquals("bee", mapValue.get("b")); + // note: coerced key type + assertEquals("cee", mapValue.get("3")); + } + + public void testParsingNotAMap() { + try { + call("mapTest", "1.0"); + } catch (PyException e) { + return; + } + fail("Should have thrown an exception"); + } + + public void testParseOptionalMap() { + call("mapTest"); + assertTrue(called); + assertEquals(0, mapValue.size()); + } + + public void testConvertMap() { + PyDictionary result = (PyDictionary) call("convertMapTest"); + PyObject stringPyObject = result.__getitem__(new PyString("string")); + String string = (String) stringPyObject.__tojava__(String.class); + assertEquals("value", string); + + PyObject intPyObject = result.__getitem__(new PyString("integer")); + int i = (Integer) intPyObject.__tojava__(Integer.class); + assertEquals(i, 1); + + PyObject doublePyObject = result.__getitem__(new PyString("double")); + double d = (Double) doublePyObject.__tojava__(Double.class); + assertEquals(3.14, d); + } +} diff --git a/monkeyrunner/test/com/android/monkeyrunner/MonkeyRunnerOptionsTest.java b/monkeyrunner/test/com/android/monkeyrunner/MonkeyRunnerOptionsTest.java new file mode 100644 index 000000000..fd23721a7 --- /dev/null +++ b/monkeyrunner/test/com/android/monkeyrunner/MonkeyRunnerOptionsTest.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner; + +import junit.framework.TestCase; + +import java.io.File; +import java.util.Iterator; + +/** + * Unit Tests to test command line argument parsing. + */ +public class MonkeyRunnerOptionsTest extends TestCase { + // We need to use a file that actually exists + private static final String FILENAME = "/etc/passwd"; + + public void testSimpleArgs() { + MonkeyRunnerOptions options = + MonkeyRunnerOptions.processOptions(new String[] { FILENAME }); + assertEquals(options.getScriptFile(), new File(FILENAME)); + } + + public void testParsingArgsBeforeScriptName() { + MonkeyRunnerOptions options = + MonkeyRunnerOptions.processOptions(new String[] { "-be", "stub", FILENAME}); + assertEquals("stub", options.getBackendName()); + assertEquals(options.getScriptFile(), new File(FILENAME)); + } + + public void testParsingScriptArgument() { + MonkeyRunnerOptions options = + MonkeyRunnerOptions.processOptions(new String[] { FILENAME, "arg1", "arg2" }); + assertEquals(options.getScriptFile(), new File(FILENAME)); + Iterator i = options.getArguments().iterator(); + assertEquals("arg1", i.next()); + assertEquals("arg2", i.next()); + } + + public void testParsingScriptArgumentWithDashes() { + MonkeyRunnerOptions options = + MonkeyRunnerOptions.processOptions(new String[] { FILENAME, "--arg1" }); + assertEquals(options.getScriptFile(), new File(FILENAME)); + assertEquals("--arg1", options.getArguments().iterator().next()); + } + + public void testMixedArgs() { + MonkeyRunnerOptions options = + MonkeyRunnerOptions.processOptions(new String[] { "-be", "stub", FILENAME, + "arg1", "--debug=True"}); + assertEquals("stub", options.getBackendName()); + assertEquals(options.getScriptFile(), new File(FILENAME)); + Iterator i = options.getArguments().iterator(); + assertEquals("arg1", i.next()); + assertEquals("--debug=True", i.next()); + } +} diff --git a/monkeyrunner/test/com/android/monkeyrunner/adb/AdbMonkeyDeviceTest.java b/monkeyrunner/test/com/android/monkeyrunner/adb/AdbMonkeyDeviceTest.java new file mode 100644 index 000000000..258e184fb --- /dev/null +++ b/monkeyrunner/test/com/android/monkeyrunner/adb/AdbMonkeyDeviceTest.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + +import com.google.common.base.Joiner; +import com.google.common.io.Resources; + +import junit.framework.TestCase; + +import java.io.IOException; +import java.net.URL; +import java.nio.charset.Charset; +import java.util.List; +import java.util.Map; + +/** + * Unit Tests for AdbMonkeyDevice. + */ +public class AdbMonkeyDeviceTest extends TestCase { + private static String MULTILINE_RESULT = "\r\n" + + "Test results for InstrumentationTestRunner=.\r\n" + + "Time: 2.242\r\n" + + "\r\n" + + "OK (1 test)"; + + private static String getResource(String resName) throws IOException { + URL resource = Resources.getResource(AdbMonkeyDeviceTest.class, resName); + List lines = Resources.readLines(resource, Charset.defaultCharset()); + return Joiner.on("\r\n").join(lines); + } + + public void testSimpleResultParse() throws IOException { + String result = getResource("instrument_result.txt"); + Map convertedResult = AdbMonkeyDevice.convertInstrumentResult(result); + + assertEquals("one", convertedResult.get("result1")); + assertEquals("two", convertedResult.get("result2")); + } + + public void testMultilineResultParse() throws IOException { + String result = getResource("multiline_instrument_result.txt"); + Map convertedResult = AdbMonkeyDevice.convertInstrumentResult(result); + + assertEquals(MULTILINE_RESULT, convertedResult.get("stream")); + } +} diff --git a/monkeyrunner/test/com/android/monkeyrunner/adb/LinearInterpolatorTest.java b/monkeyrunner/test/com/android/monkeyrunner/adb/LinearInterpolatorTest.java new file mode 100644 index 000000000..00670ce6d --- /dev/null +++ b/monkeyrunner/test/com/android/monkeyrunner/adb/LinearInterpolatorTest.java @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2010 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.monkeyrunner.adb; + +import com.google.common.collect.Lists; + +import com.android.monkeyrunner.adb.LinearInterpolator.Point; + +import junit.framework.TestCase; + +import java.util.List; + +/** + * Unit tests for the LinerInterpolator class.S + */ +public class LinearInterpolatorTest extends TestCase { + private static class Collector implements LinearInterpolator.Callback { + private final List points = Lists.newArrayList(); + + public List getPoints() { + return points; + } + + public void end(Point input) { + points.add(input); + } + + public void start(Point input) { + points.add(input); + } + + public void step(Point input) { + points.add(input); + } + } + + List STEP_POINTS = Lists.newArrayList(0, 100, 200, 300, 400, 500, 600, 700, 800, 900, + 1000); + List REVERSE_STEP_POINTS = Lists.newArrayList(1000, 900, 800, 700, 600, 500, 400, 300, + 200, 100, 0); + + public void testLerpRight() { + LinearInterpolator lerp = new LinearInterpolator(10); + Collector collector = new Collector(); + lerp.interpolate(new LinearInterpolator.Point(0, 100), + new LinearInterpolator.Point(1000, 100), + collector); + + List points = collector.getPoints(); + assertEquals(11, points.size()); + for (int x = 0; x < points.size(); x++) { + assertEquals(new Point(STEP_POINTS.get(x), 100), points.get(x)); + } + } + + public void testLerpLeft() { + LinearInterpolator lerp = new LinearInterpolator(10); + Collector collector = new Collector(); + lerp.interpolate(new LinearInterpolator.Point(1000, 100), + new LinearInterpolator.Point(0, 100), + collector); + + List points = collector.getPoints(); + assertEquals(11, points.size()); + for (int x = 0; x < points.size(); x++) { + assertEquals(new Point(REVERSE_STEP_POINTS.get(x), 100), points.get(x)); + } + } + + public void testLerpUp() { + LinearInterpolator lerp = new LinearInterpolator(10); + Collector collector = new Collector(); + lerp.interpolate(new LinearInterpolator.Point(100, 1000), + new LinearInterpolator.Point(100, 0), + collector); + + List points = collector.getPoints(); + assertEquals(11, points.size()); + for (int x = 0; x < points.size(); x++) { + assertEquals(new Point(100, REVERSE_STEP_POINTS.get(x)), points.get(x)); + } + } + + public void testLerpDown() { + LinearInterpolator lerp = new LinearInterpolator(10); + Collector collector = new Collector(); + lerp.interpolate(new LinearInterpolator.Point(100, 0), + new LinearInterpolator.Point(100, 1000), + collector); + + List points = collector.getPoints(); + assertEquals(11, points.size()); + for (int x = 0; x < points.size(); x++) { + assertEquals(new Point(100, STEP_POINTS.get(x)), points.get(x)); + } + } + + public void testLerpNW() { + LinearInterpolator lerp = new LinearInterpolator(10); + Collector collector = new Collector(); + lerp.interpolate(new LinearInterpolator.Point(0, 0), + new LinearInterpolator.Point(1000, 1000), + collector); + + List points = collector.getPoints(); + assertEquals(11, points.size()); + for (int x = 0; x < points.size(); x++) { + assertEquals(new Point(STEP_POINTS.get(x), STEP_POINTS.get(x)), points.get(x)); + } + } + + public void testLerpNE() { + LinearInterpolator lerp = new LinearInterpolator(10); + Collector collector = new Collector(); + lerp.interpolate(new LinearInterpolator.Point(1000, 1000), + new LinearInterpolator.Point(0, 0), + collector); + + List points = collector.getPoints(); + assertEquals(11, points.size()); + for (int x = 0; x < points.size(); x++) { + assertEquals(new Point(REVERSE_STEP_POINTS.get(x), REVERSE_STEP_POINTS.get(x)), points.get(x)); + } + } +} diff --git a/monkeyrunner/test/resources/com/android/monkeyrunner/adb/instrument_result.txt b/monkeyrunner/test/resources/com/android/monkeyrunner/adb/instrument_result.txt new file mode 100644 index 000000000..c127c0fb3 --- /dev/null +++ b/monkeyrunner/test/resources/com/android/monkeyrunner/adb/instrument_result.txt @@ -0,0 +1,10 @@ +INSTRUMENTATION_STATUS: id=InstrumentationTestRunner +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: class=com.example.android.notepad.NotePadTest +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: numtests=1 +INSTRUMENTATION_STATUS: test=testActivityTestCaseSetUpProperly +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: result1=one +INSTRUMENTATION_RESULT: result2=two +INSTRUMENTATION_CODE: -1 diff --git a/monkeyrunner/test/resources/com/android/monkeyrunner/adb/multiline_instrument_result.txt b/monkeyrunner/test/resources/com/android/monkeyrunner/adb/multiline_instrument_result.txt new file mode 100644 index 000000000..32fd901e5 --- /dev/null +++ b/monkeyrunner/test/resources/com/android/monkeyrunner/adb/multiline_instrument_result.txt @@ -0,0 +1,15 @@ +INSTRUMENTATION_STATUS: id=InstrumentationTestRunner +INSTRUMENTATION_STATUS: current=1 +INSTRUMENTATION_STATUS: class=com.example.android.notepad.NotePadTest +INSTRUMENTATION_STATUS: stream=. +INSTRUMENTATION_STATUS: numtests=1 +INSTRUMENTATION_STATUS: test=testActivityTestCaseSetUpProperly +INSTRUMENTATION_STATUS_CODE: 0 +INSTRUMENTATION_RESULT: stream= +Test results for InstrumentationTestRunner=. +Time: 2.242 + +OK (1 test) + + +INSTRUMENTATION_CODE: -1 diff --git a/monkeyrunner/test/resources/com/android/monkeyrunner/image1.png b/monkeyrunner/test/resources/com/android/monkeyrunner/image1.png new file mode 100644 index 0000000000000000000000000000000000000000..9ef1800452ca2e5cfdfbaf5c9715895a5a72aa42 GIT binary patch literal 184289 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
}@L}BEb5#Gx`=IZxf2^zymJ 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

O+0K=A zq~VHw-ZDXpAsn83Rb0D|cQaRCXNZ>^^F})>Iz!0hqpz1fU{yhHmk9X6aKKT36)M>v zpuxc%r+(moWA(C``=e0eP;36NlT(JxxM?2>Rl|7xEP65d~7Y6I2W6GU^B#vAQh`$ zJQa!CqD)${OhD$o>ZgGV#85T=ZhAh`&<-{ApC#WvF#*q%g#tvr&Fj6G&%2@dAwKI% zk2oDNGIoKHFzSxZwiCEE3T;pu}gQ|LYuqyM}gj*Re zyFN&N-wL0wbH4r97hI%aZRBca_x1L3r0xB~*OHI8_4o9X3i>wtfQf)j1x*Be?z5oV z+t8_u93L=j4QzzFr+w%L5LiX{)QSp32a?@e)`vT`Z<*>s*S-!h(6$m=EDUs`CCNCEq zx`-HgtCExyn5B!Q7H^`u#_+}CgR2+L*tpu*4?LCRDlOy~n;#(;KHk>z8Jy?~&Yn-LFL5}^m$x&wIp|DB#^>^fal}EMVUc^c2mfFaZq76~i+#Z=;GCF6P{mj{_uy|Q7n~~l2HtwK zMpd-6C()8bBusB`#`#{&)y4G$tV)mWs)VeTKety;&?>puen6&?Q;r$Vo9(uuUd_k5 zSwYSb*>2YVp7?tlITt?Q+pdC62zc+JWI>;_9SsD!|LdN|CJHh!pXjVWC%aa2=E&>8 zfg{4`J1x0bB28vQiwfFG-nk8yZ)fM6>%qeup+Upwwq_OsiyGQw)49VUkR>wG*0Sps!^Y$wj2L@A_AwndGU6=!bD0_a=(a? z4BN>R!r^sc!NSz~guRs~+z+oC63^suim;SP$bc@n?(XtoE(@*XtJ`B2QZiMPTq zPZ`gHO7HNX-)==3lq%=&`?Hp(svkJ~-1VXlI3nQhJ_jE#hpJf;e7G1o#2{oV5_l3= zjmX>T5GxX*LUmn+T*LkFAr`;kw~Bt5QM*sY?MZ6o8mH?BcT^zU{O8K&H3|K*V-_gb zR<7`$Z2Sp}0_Ucmrfg-&thU(3By4&&;Y{jaorM0^S>Co}+%@@F-jBV?Z>^X$u1rNL z`&rA87b94R3Q+CDx0EN|hUMtDx&O8WtxRl4yNB4k+gKDGFT0`pF$a;P+c7iR`oY;7 z4B-_&myD++XY85M&3&0Q?eArCKMc3CzYB0|3lO*nEGrsASh(Ol5oF;tklMm)YDtPn zmMGXcVcUL=S<(E8K48BNzTwQ*yHR8{ua`dCUOho;qwwKwuHuAq-*AgNF4WZY|9W9U zDY$ZfaKT9zLq0>gu`jq#Pv=?CZ4P+PRnU17*7@duiwjG*nY~N3AP^2zuJDIJ1&H`I zY#Vd<68VxKXO{4cf$i3!LavlUQhJ6FcW1-hg;>8Gyg>q0`+8LIsvzE@cThXOR-biBsG51(5D_jBxz_|fNimYgua|GX9cV+J zzP%C8r6V|{r#m20r#5(s~NQkXQq_llx=wY{aW^dtmx*rJe+u99Wn`khM~y4@#mZF zQ)T=jg;v7(+IDp56PACcPj@|KMh{D$?+Tx8);iQ5v|5Z-`Fe9zbK6=(Znnkw#x|qk zd8CTLbY1rO*0P}U?B}hPkNGqX_)f@z7VwAs^0z|3=YRt)FCvWkc`wgAE-Li&-;$7u z{4PF>%%G*(ki4O*gbm4(i)Bj^dx13~PgR*!q#F~dB8U4hB|BxDa75toI&jsJiTrEI z#C4>67&u_#D&x>)G8h9(GL`e&BHyE&?-eT-{j|@g8K>$Tv^`fQUCr#d`E&U_+mp7C zU^S(yl|$Sl{terdKuhxdS$dy|a3`je#n!Xu2tP|zhUAbt(bcCMLQCI@#_=Rvu%Tet z-TF!Uz9&SwMzgTF%!lvu6i<0>VnUAsA8d<31s!%y!h)n3#E8<}x_%?6nCa^^bn9wp zPs&;|G@M$K%D&*tvQu)vC1P!{e4OO3J@A#cZa?oQKX8F?tG?pH6}KOal6so{U>n}r0<&)`-sS@r zLN$nV=`$v0nTBraC1!YqXKEk)4&+;8aTD2k5}5TDlVj7@FKy3HN?)%Ct$yE0P{UZ3 z8q#1IfKsiD*HeUZh!z!YIE8Ic9WC3`s1_8z?|xD}vy~?Zxz03acwx7olb@VD!uWjb z{IFw-;d`6i)$9~zO`{L^jH{r_&zzk1UTfaL?3sxiAC5hy66c|N|GB5z zqhHw&_Ld{PrY~5xp)aTQB&wy$B& zoYG$O%U*%7beJ-r-&fHg_?$^Q-VYqh)DOpPKQ7Z~3)#myL=iHXuCH! zk;(7{-}b|9; zVh+nf4J~N&=Y8FVwm8at@0%Uv-0fj4X)5**D~Bt-M)urdG4WfnMmc945v2KB-7h=0 zmM7{4DUx{N35Em ztFJF!MC*yg7L-eFBa)m_F#$k7y?-}5Nt>p?sh+G>u-~-zMn>|mN z-a^|v)CHJp0-h%XED2`kYym>>fWih@Xd)}R5M1)bWO#~?d4bV?C)Jh)ccMX95j1owTfQK z#G}q!$i&yE*4OLL^L-?2nIK1AH_LqX=kq+pjou^o`!wY}D>_QKz@nrzgdBT~fiGV|EQp}FNlCq+`m1w=f4fkt^w?M=NS|+meZRqIh%{bgbJ>Ab$%k4z0 zUJK#I+hyWb&NXY|Rn~vJq8~WrLJy>oDrP~$2fS^&Z9C+EEqCH#`G8CA(yn#8wLpHB zsY>z2@>SwQiF{lAy-!k>a}09N{K51E|Fq|O{W04)yPt8#^eu9`JogBk zld-NuRdmtsyU{xV2@i@Su7HI5r9~+DY}J3fmLcHSFYL&5MFw>XDTfxLy!SVTl(c=w zX*+w%)zkdD*Fqt~Fcd@#BM1BsYeV{P&H?8t=*h+N0h1Rgg&MjQyYTI1Du4y~8gisi zNs*+fpq~eH=Yowqw>YY!iDcb}{3!W~S($cVh1!`vw@9RlXm@6aF?)VN#k>qE<_zf` zwI-FLg_-%!xaiPpL(+ClWXs>j*J1W-nz~d2=S)8(`&Ie(FfEFYy=0E_`#|KT2F3fQ z*|>YD<>sk|ukd{mb!;1iTjhd_Oy?>G98hdTz%e;23;Q4^OeEdB zei2Q#`hX$8`nx4z{oC4*%m=)esi4OfkOMwS+z{R8eCk7z<>c%=mhENs9WPhx1iYF% zlAphr+23iLHxcwaUC-_HVEYPv!VKw{`GB5yVio-zn`CR$) z^~Up<2Y)9A@SR{OqAz)F?K1R%ZcBdnfvcS7;qRo1_SEg?4jF&coiDuq8j7PF@Q8_J zmSxWO7w^ARNVa;qbyzJHi*x;Q=(%92w92!Y`Q68gx_&v3K_I=s)|Xo%)W`+*3Nbl!EFw>@cYKF4yv8|g|9du^=h%i zMhf!~A8_+H5=AL0=sVhmL>2V?gn$KP;g~yZ0G~?^n8ggQBgaeRJ70Zm!ORAUWzHLsQGPl)Yj)%dbZuGA?{zrYqGN7CDsQ?v9Opf~C~yD%o}gddnoKJ3 ziG2tpbmJ$b5TY-cJ04VWcf&_+goI<#1Zqu&N^8favD)@^-jh6xStZYytj`jLC_{7Nmm1O#&)zg9c6)kNdLV zbfIE?oz%;jig}rHVR1M`A=$zOS_^snW$pFIb_N#N{iCXy*PfkhN@w^hWAYbO(!#aB zUcPtX5*JyzJv_1GtFc>5#>M5a!{WZ;=6=XD!?JO{lfD-t!^s$ht(l z#m}e0hQJxu5OVAZF4~z||Gx6~*}`B|7WB7~1Kz*j9Iy=~Zq0HVT2Z8J-x?oGi;g49 z3}G%ar0KW)@fQAg98Pmb#wl5ef+Xh>pGAM}%(sDwEbB=3ICyuLbsntX#JsE4ElCO4 zFJ2YTKmHxYkw*mFzD_^qX<^SaVF*LeTa}`}_X8lu#Ch=~v+vb`M7g8|Wc%4-C)0DD zx7&=Pi#mxC-HNU6a1O+zn~qW`v426xw!&xj52-|+%Jzyf8UK}5LNr) z0=>7)ik?|_@S$c!V;g$U60$HLWE*<3$ckQPVMEV{@LJ{#Ziet>^$14}I2JxQU+P1> zqB71n*kQ}}oBjJ{**>(D^S~>(;OzcIJCr9{ozSA>gSFxlE;Fa`yutr&{pH5VKHy&~ zeZcdJ!T|^26@9)czzUq{Lbqs+ZF~Bd9O^P5OCmLL$*tQVIV(PX%d`7rVJy|hU5{o`< zLECqW8;%R{0h>B{yEz#~PM&F*yhk|m2^ZY%+Ila~ zi0&t@dF%RCuG%hJlkE9t30_q{@-T705=D8_5wLK;u7Wlnuq0uPE^Zby4?b4XxeqoV z%8Wy$2etIc9=*Y^KT7=TO3u09P#tlWKHcp3{JxU`9#C!mey42W-k_s-LNZ)|$73lz@J{ z%Cb{GpBcds7G1j>z})>H9Tbwy;LjXC9=CR)#MAxo;9}-^v#?<{55*xP---qbzWc9j zd2Pf(b8YCuD1K#G(NPuM3}K+)$Q?&tFpD2DWZf^apUb}B4C$uu3wbVCQdUo`K^u88 zRx1H(Q~kVy{vZ=vm8$0!@{XMK3SV;TiyW}{fNzC9;O%N3@aXW(ld#SY2OLh$Q4O6T z+i>lOd4-QS+taCWQAZV|Tq0v^liId25pJ2mEZN6374zE+-}&4#mBA@zT=mPDbJ#?( z^g*ArF?l_3h)#T8qRaJ=LA=lc)$!M*RcJ;R&AEYBuC ztQ0VucO)FLqUru17YvSE#D>ifhCdk9tZ|!l*v~8bu$>&a-`E>`=}(t3#GHJ%3EBGX z^-uw5!e90>M%C7_h#Wcj#<$m%Q+(5R^M=$F&(&LLE5k; zT_1`9y6yu$sSRl^9oH9w11@>d*zWTo{hKjcnH)5cZN@1t>zwYJBJawDKF79tdXXV+ zN3J#;TgZ16CtO3uM8LD;pB`Dj0Xgyy_Ie+YN~h5vgra;|!A z`OieixX;0Zq}s;GD*Bo)l0fG|fV*a>&~MMUR-#|p_L$+06Jqpq`wqvmsT~s+SXg(I zTa)MwmYB*PbqGTw1mVzdb6EH5UhR2hp)@7^$v9wdOj=94Z@Xt0+eq~zt!zUvK@D-gQ|r)*-^UfbXF!Lr5l{LmRop>nwd(sPbHs`3W)Qyn zjLkOnJ`%1@;sEueq63oI+1`E>;xIjYgDpm8i=qH$%I)W1J&GJLPFh~z(Q&|M;=;Jr zy`Oc6@O^jdk@N|1Bkx9)skXX8SNuU2uvbN#$1oswcIbtvr1R_V>Z+|2#4 zfz!#bxzXZ^e;Fyru~&zIZK+2fQx z*~W3;&sukg)uIa?VWV`cPTPA^D0bXKkR`YYkCRzy9-% zdwWwbfBHVt%jn~d2}#Vd?zrExbHRXxhzLVOP;h9yVuIT^v|bVQ@^dl?DRy}8KaVYg zkQMz*hw#1?$cTdchh5nz*kZy{R4;pfaG{3&lXAfB55|yQZ}$dAuW^>uOdoKWsT^;I zp5K%uT~{OPaO5_1u4+z}r1aSBtmz8k^=)f=-0NxR4msfYcU?mk^i4s)(g*y1ihvPo zn`J@&jwGye#{r)m1Y@#Q;B@)@91)*{gy)Vt$Sp4x zA2!ktkIxn(oJ_z0dI5v^c8P>kpK=o|u{A-42S8%yRxC<9zz1jWB z>sFRFo+O?D;)5Xi_QUGwCy+RyJfPKXIMvWx0dAfa+Z+qJm-iR$Z`C7 znW>vsC4#k(FfC6r-F`lPz5IaN&zA9R^^xlTJx~N}?Niaei-R1T%-H;(ORsP53$?gFb9f2M ztmp@t6)ngNNVpjkKydU04`P4s=FkOMVn1pj;a;AQ6@^u`KHxIjxlkL^r#qT21(|4KPvLBM}cD(E~3YegGU#{r+^t+!(p4iWig zVIC)_m4o^@L$DzU%Wp^j@~e546t+4sYwo-ozUa07po5D3UlU;AWV~x38s5-k+s`au z7&D$SG(3?Dl#}{lK+fUk@%`>{HZDv$8(9@5EoW5y6WI!?gDRTn_xUv25s~{qt^acV zS)ND49x35DGcTdgMXVw;1l9n_Woqcqm&<(U%SCUn3$&OO9elnuHFVCsYM*Z2uRC1L z(Z&R=en`;TZ1)MrWUJFMp-)7C+u;GC}|1k65Qs-RJVv2#E70ly6b?l|C2z4c~U z$I|XHU!2bQ&Sxz|%%MpEQxaa)Z&x$0YaH-P^<75w^M^*j!es&Rm;ehLmLp)CSPbC; zA?-G+dhJynhXRdML8lg$WKr@yV-vV_$oJDc`H)Zdc@o7 z?KY#<{adX_MNH+2Z0PuSu6j1EmMu(!f(w?R>c}<>Ti3#{r+W z4-8X#$oIOnXf`_)`O+(^+t8Lwwa~OIsca)^U8Hc1oDW{K)zZc9n}rTx@A&=DD|k!5 zV#hD6Cd`2*=f@Nzu^5GHYA>j;0txbn)39C1gsd+6`3!8EHpk?M=+~6btd!(uLJLkN zUh&Dr6L&i(z#~Hbtamn!jx$v>7WT-BRxO2c!8_kW6|Gs(-f$E-TxLa6622zGsttC8*d?%yqvv0BJD2&nXWtIYvhLRByL zfQg8eW9}tRI3nku{!U1FEAI*3-12Hf8NOec5BTe#f)*PRIpA6n*5s5Vtd0ZzBo_=( z4h6O*W!cTIN`zWR!ZJiH=T`#itnhE$-@Pzb3kXJ1As^axSu(V|H_y4ei`--8US4#e)+#VGir`vjZ)+AOa35 zXeMFpnp*?F0o%{xjsrd;Cz`-9YN5i|s>IsuN%j8X`fVmY9hl9ACn=o7a)cXw!YA|~ zN8hkLFZya_d)pD?2jqZJwP3vFxr_sAuDo%PZJ`F{lB7)w!Y@> z^09|Pe*6gME1d4W`+t#OHJj;<3*Rp}uI+tf;+6Y;pIR@s9rw83hbjm;Z#!&48NEJs zaUuqT_~I=q8vfNg-`q(m;Prq6t>;($!Q_Hdd(xV5!;*xxp7#Z_WhnZC2Sv8?DxYtT zgp2zZNSRsCt;DQ;TQxnX-QHN`D<0&1!InKu4wz*Ocm8>|-G+4G`+(2!ha$%4%|e@z zbF!ypHy77v0h*YVhTIrVKJZfF`oy1K)fdcOVe)U5F!WJSg~fR;3<2Y$yweO{LBPfh zPM!oMG-4_(BRX|4Clxdi@bpREkVD06clmTf81LV{#f!3PQu3Z{M`&8(@fo% z{L&wc?{}9R1utJMT@@W0llJcKiGo*E(Zf_N82H?kNSNMW6J!ly++!GIC5Ow~vDs*N zk{UYXL$}n-Ef4Q7%Z6@cQE%3>pQ~!=;8h+54!G3^{O{F$z#RvChE6(AC34$2ZttGv z%WeI8_&!cnx{bG!wxVZRQtpXYuioPE$w7;4%1dJgJ zH8YS9GoP7FEvne&-)HgU{4}YcW!w5mj)0}qebxnVe5_$xa_v}TQOzvED-7R7D+0iU<+XJk6t$;30AXS1TMs6@Ue zaKJ&WjG=;)4$&;oAchsKJXLk`s}-CwdxgopJx_@7qoqX|0-oFUBTmjc#sM?YivG`( z^{fbrK3~QaifZ;SsbXVjgGL*64M?BrB3@sro{cjjeJ~4cN4e_RI-b2~W8!p+BH&TV z_3kdM&y`S6v$?g4jb%_EB})WZ4T3|!#L&VyJjse_Qp}3JlKX?TGx)N9FH6X>;hQ+& zUe;Jt_4W2E9Bs`99EPO!{|j1oo>faZ*L3w7_Xmmz*9xQ_Z0z4Fn?CaFmvk(GJ!dinf2^_u#r1t0@h(C)cI5w zyl^U=g!yNM#4)KYR+F+R`eqq z!lsJe{?9!bNL$yo@?@(bD|)Shgqe_qtY{yCLB+hr(2iC{^C0&F7l~BlU>(tB+-yR= zYwH!{9QuB<%;^kK53}!=x9KbPEa)YWk67r3f9f_Y@exz-^$N@LMdn6((%UPwu5GUHe>FNM3+K>#n z`|IzGIa62Fb_4hm>;{=d&MWhNJ8*9|cVCEZDJW#pm2>+~#xA@XlVW(RtyjmLt?Yys zzs!oBq^#(llBH zv7Kp<4c)?*e1Z?S*FRYeJq#*p`hZbI$TpNwy}wB76+SMw(9Scn8T zT5w!~OudaLakPt&>AX0Nvt981%j5%oRj8U@)_#7u(&y{Km%>Nu)}xPwD2{>;xLFL~ zB#gm}*AZ%GAYD1Q4^#FtPR4kBV+W*;0!Vhq;Gupxlh4w@Z&vr&3}VDoqBnTxZArZp(t(65 zt0bg9Shl1uuSst(5OB4D^jSm9D#Gb+RMLR_VxA)m2#ni9`x(|!-+#~ zBVX}DUkkq9>o+oA@RlK9_<#ld{^O4OfbW$Y@EarGjst$b+dR&<%w4^Up@A>FNjT84 z!gqukGM5*NT%kOF0}eReUVZ;X>wd0sE|4$L2Zdr{WBAB}D*1qw1C*7epx~XXA&1+{ z6Y{_oPe=}!Drtss@cvBD`s}SLANV~iFJc)pCA;Q1>ozoZg`(3Ys*uk8!K#Yxc^gtMY!7>G zbG%*a3$7$+QJEZ*yJDpv5i@!0;k8=gRhjj?)&71!z*!t&LeE~<9Y_M8k@9klX&SuBmSkeX@8f)?)gQA#-LtVeHou42}@ zS^XqoO!Bu6x>kzV-FZgeU0_<&!%{r984*O4#%vCq=*_0Wx@Px11F75Wq1UKVvX zb`WrY(+~VO_XF!zv!N#cn{?Pt4nr2SaloBW=i^+&E+ku>`13mu*Cc0;(xiWW}(w}gTbQ+dO-qCFvt!m4#sMYl4dlRCO* zy}@~5LqN18^4-XjurdxfBvL7_Jjl>+*1mVq?XRt!IcEup&cdF-{@~&$#`~t>f+H&Ev^Kwp~qa+-fU& zQy=e1w_nZ^@}14Iu!DqrXKDC;DuGhbhJ@FP+^_h7Z85`YLaMaIX7qTR^#v0ND`F~o zgbzEr%EwrQ;`Kf-PK;U3VkHaj6O-IVmH|C464<=uD9{NKS7{t@S1I{>-k)PvMMIFK z3)qQ@h|HR_{jY7^#x+Y45vUAd_69Q{>+;5U%$D_uD?+gk%#^bp%{y zH*cmaY8kHUHq860{l2yS--wuFLBm$)1KzSeVC)dwkv62;;sbso4!FyL{`f-}E2OpN zAl?4=T~BZVdb|6tJJMr|?_=ee_4U52A=uM7;MR3SzVj0KPBWh`k%)-9aG)H0+LL$W z1c7*ge1U{_j7Mj6-Q-Em>rR65uuMwwFb*Q%4mEuc8ip4f$M9z#SdfNX+W?(C*JDjS z4-fSF7^?jK-15h>mLsNJaU0rpLA=qbqZHnH2)ioUvZ5sp^k>V8{%%K*-jIB7%!=j^ zCI?)qqdA1vi(cT^VpRVBX1mvSST-8j03DY9AJosfOaDzjaZT)5-MXBAJ#hF{uS;GO~`^O8nuPW{jz#+%Wo?Oto~r(f@5NqZAYuBc`XxGDW^P0NmeE2 z8aY}fUKt{0k1@B5x2_jH-p#G5x_Vgg8T+<(KUYUrZ`*)&4!A+U;DGNr2fW*Hz-Qv1 zZVqT{GvnaIN{C?`QMt*kTMTL85t<>46_lVq8$Qd$;*B}pWtr_fFVxO6Q#%_fjN5-2 zw6XZ`UB7REfHh`Q?L@*E{-{1+yk3riEyN)fElf-y8~b8a?Kw_9VO9}#KHv}Y_Pt)n za3o@t_s9?~7C~}szhYVZDD7H2GgSO^ViqM+yFX4sI!(XQ$HV=)U5xkee!icww;%+g4+303zO{k%c2DW5ew7U zHSyIwAHciL1ycpfY~Ts~qn-^t_mh80!WvhtGTr6f-Zvb7v=MQUr)3KJo+&N@JH(7y z7W9k}lg9P(eRQ9&A!!i{+14{|XYXGpsQdk(0fMZBWz|!V6|$lwprbiI-T3N8&be-C zWuf;5U$xBWtG$#R{blM8W(Ks!JDRm;5ZaSU-)~e$lQZ7Bo+o2@QG#*ATlPG+GETRG zg!yyy|5iBRjDvO#_?C0PcPtC~-naEEXxYK(IN*-WyAP z6W_M?G^a&TN?_AL%&J0Wc{5Z6|IXr(?()7qZ&*AnB&JdWPEv2M)D|`a=4ONZ2C*-g zf~@t#1!ulsupB*rn5Jd zh&QU8KZ(!xO?MJ(`<+6ny`S~KmSP4JiGvF^&V~L`TB*b@ik$`~UvUQ_v?$@jvFHZy z?_dY&#|eh(f$T<%e1~OX79pO5`w&!(ct?<=fN!pn~p~ zoN(?>9+pU#zTxYU%dM!NZ5ZbXS;hS$a*iDE-`>;*e99Jd#{s{?5o;G5q*(1?C@|j{ zCkqTx_!}x#R9X)MxJ4&M$La z#M%(n9QHlmie^k@=IJewaNvZAf&~eCOywYCHn;nF6N=3_;PT7=JtEcM8!oxt7*m<~ zeGBAVBJ9`)9DTs5f(~s+KX!eBS3jQnPK^7VV zjhydUJr}%IbtbFld>i`5UE31d78SW~`~1A;tvHf%8~mf`BtLU*n3>n74VUh6@*;^y zRgtenM$(`A*pTmh?m{>sUoXtC_dym$PZRQuzTl~CS#y~4_~6_e+Gj9#zpj=YrXubm?;9f*H<{`GZ5^RlTRze8A*(?f&l5?H9LW zcJyXaOFO50Ewn2|WW3P}LwGA2#xV<8iWvTJNBV&86$tpC>jVBc7YuB$d1OzOYIrWaJI@Tpke9crO1lh zu(uf%$k#ovhWG;K>uTroz)Qt#=;m*bZD>Kf%9CSpf*k}|p<7j9p81^r{qgqHELh#; zcTxms`U*uCvk;o$USA7!NoaVK-j~pBEnFvmRd5=EfJcX&5BS3%;pTtQ2MMv2oD?8HG2|IDY}NLnwhIht zS@Azlp#rMbwUZ6Dr5}#GYKor@XduFWexi> zgk{itzbhWtScKpR_-g76c3<$-f(vGX*7~68)6F>G^*rO5iCC_RHY8qd8^@%rjv49Hn6ptMa(YH%?f*jZaL$`_u+{bDKV4aGv-X3X~$(TdJLBf%E-Ttw!%- zi<8^yR5lXYNJ1-|~bkN50Pz;^MVuUU!$17ejXJ6X8xCj~%)47{u`P z&%tcw$W<1iA)7nC58mr*4M{2KYT{YCS#d^(d_Te)u7WJFF}|256bxI^4;Bgg?M`zJ zypLc&=eaKF;eORhL(KS$1XqurDgIpCP@Jg6mMtw6x>_qZCm z8Nfil5dnJ^^mp|nta0Z9e$U5dgCMc(xpw99@$F_61Vk$W6K~-en+R*6dBU2k{auJH4edeMfW<;E~W!o!U7%{gFKJ4eJD z5Og&$>snApM-KQaMZhr&TC_U`uk*kW!TBvt4=PA4P$ECvp?ymu{@9K z<5oLE9i(4bww%qH)C^&@18jR@mZW4o%ELGO^*3*^{2Q}`kB+-krIlOGGv{R~pqiSd zAQMPEw_TgiYQ&6j3InN>p4d*0>}p`aM1TAfO+I7(v!r7!x~%6<@!4C_i4b-(ATUx5 z#;$Bf0~8QxdaKdKAY??Zd3P{5V7U%i(HO*KQ3HoyYA`Ce+ycR7YUPd8n3N&(e$f%! z9~61gI+RO}dFcN(kR0fnU*Bx?0pBZI*dUa9S8hgE_gwAEd&Bcc zL_v=rfEPr#IB)|OX(ufSmuL_&2I{S^Z!|wY6q^#1(ipbn)NnGwn}#>^M)N&pM(4=nSXdoycBb)@t`QmkuzUAhq*slRXXz8t0Fp}TzK#jjPPYRs!TG~AEh3}K+)JKx+%>f%k^h6d`5s%URb z3hha2p-*_Ns4Q%Az`ZaOix#AibQS%;?e?T$-b);Yt`|-4=lTUww&5)t@Yjh01_C}Q z3p$CgIu7`~T_hUOI7gr@_`+Z#!bwHKF|0~3Z3U~xcOH_du(Fh7ryqAj1&yBv8paT2 zW-(5J8g+J8S6a=NyvaZ4HY>R__qPV*dwfv_$&qgR$CWq^Zf$JY)!f=&O&}se__n5G zMSGHOgWBu$B&eY+^a20wS=b#CmXj`#t@6E7Z!nU87t3pQl>2;|`h1^E+=K4w=%-2T zEGbwItoi8CC<(Dl*d_6z*m{1o=-!L7@cFYez9|J+&HFmIxtC@xXt%>zK4}& zTafhHUC-1mr6* zdChAfLl_5rbB)&p{0s*$wx>syDJ((}s+9ez+$bFhV+rpzr+SwhUSww)X_}Y9-&USMkx>G2;sB)dfPnEfj3M zr7vdA6ABmnlMdmL#T!avQZsZRl)#6AYUw@p2OF<0LZK(Ag@@KJ{JSFI&+pjA@fzbF zCxw4}=1Eqgtb;ifT})H@TF@jg%}S2h2M4ZSzA@R_yOxm3S4Aa8yCZVu#IP zP)-jrzc5wO`2QP!2?+R`b{kTc1^uD6}ijy%_ z-#Q31s9#mj2g(IoauPUTY}?~Qg7-m?@=xj?7N4qpC}dmIXaZTO8d8(k&k}iE)PZb& z*A&N~#Y8egTXt0F!+w$~0V!x>A2U_Xj(mf^mzJUfAHD~^*zt^KoX{U?@)h1^$scZx z_55>JzWyB|{;R|LfQtS@MeLOYkk0xLk`2;hrcCZ!3PYm)#iZrIv?;yn8cnWMYMz$n|ufa zK|r%W!uOgXpxw4}Z$08RG5;U@uvnK28N=En!-CtYh8S>iq`H@gPk7~vjC?Cxl*bxo zjV-$Jq*7M~Mf3WhH3_R!3}el+)geqDtDrSQ)R{LGEmh|wG3*_WWguHuI6uvYD0dvj zkH;z9>iN`#SrPHZ_)j8Vs+?up*@RpZuZv7pBjJ1J+QK8zht2Kfs}B91#UadOIxMP$ zN}wwG`=E*@ce)YUjn+#99D9R3vz_Y0{KX5>{TLC$jKi|ug(02c? zZe+c~SFp zHgYCNSGZtaKhq>EDQIX;QYdaiKgLo{~B-+M=6Snt96PpyFWn5(_bYL&@h1_m7wf%wlcR758CNb@T_&*JylB3Nk z1Y?%7U2|KXHYCPLYNX^eJ&pv=kV`hdI^r!4N5VB%cb>Y-r={MGj=k zBn8gWEguh4#x6NBq6X*Wtc2mSLJ3E@`@qr(@k^U(meqtrxQedywIn}}oeA>6k{$hP z>Jp}xS`l%wEG_2qb8O|RqnIgsdLN~JWH~NvM}>boIddY}#Pv?HpCjsZWNU#kf@UA2 zLIrwzd5q)trvy0-^}zQN&C?CvGdYA83*R}CMUf33;2mhotA#ju6Z14X2t{jY8%^=1>%b$}>=jMVp4ZN|G zGZ;t4>|$<*5@Aq{DqFFO#b=oeBwVm?QPXTY)CF0#eJ?u+?km+I2fPmmPT4o#Fa=yx z^|GYFk)5e~F9H%?HqW2jxhI5qQrp~zuUd&h53kvZ7z#6a8WOES+ZGpzBa2ks|1B+q zsBUJTuWU=(`x1TY9LD}R>n>+=2rrK<&tT@NXj#<$xEHdbZ;N1w2vvK7bvt@c&5DkR zSp)42-WXI&9ChXeOzQ*h;qTjPuI1zs5M!wv_qA!6~gnqrrHFgalk@pIEdn-zyFJ^72-$_#~B zSeusrosY+kcqfM`&B{Y$o|l~O)D_M|zVu}?*O`y2Lw)2s4zAv}V;qYrLBCzx$16kFPBN(LfHPm@XFGu74#dLM%(CVA>w)(L z>TLuo!PLQrv$Mlf?T7Hhauq9zOyq=J37l{hkVc5XK-PvXjy1Y{5aUXuPIp= z!rTA0l&p}?%)Dqv!uECfN@lCvrta75mPDmt$kEV$xT8Pl6> z4j6x*WI=yda=>L2W#aghP;fginHj%kVZN$HXxi z_O?(Gnt&gwkFsrg^5ct*&Dx?S76P9%0~+o^l`@ejEkBM>ZPB3|Zz>j+PO!rmMFgL1(*-(gT?$dkU_ zb>n)$317*P@8v70x)1}B+0xD_8xqd4o&yr@#So98M;N!))(ao;3NAUznkEO#ENF1R z|Gb;pkmP)`_m(Q?jst!l(?GMIUnE{kkioC}mKdW+St`}v@%lBKq%kx3DHRg{*BZwz$GIOV~%> zHbrctw-1dygIP2KhA`PeMAfn^QY^O9`Cb!P#m?lpd8A{30`Jd6E8TY7cWaU#_x3uI z17?APY8liGAX}KPyNbbcKZIXfOy!HYdxIsX9jfSN0AmOPCFb414CxrS+Bx$Fhha>f zSbBzwVuh^bsEUAxnT07PXvz12U%BNgE^?^1A_x4xi33IuM@t3$Yu5+-3ASURI(O#V zo%^;e$LwMtVRB?NwJ%>SOlf<3p)4;SjRxQj#PgYNd$J{I$LbqJXeA3GQ|GcI-c-*( zYT$&C$qfO?j`e%eH>?PHoVInJN5AaURKmL5D+{RiHB>5D&FVj&__i^h&)l9512lxQ zHRL+7q$$nB)-B@LJ{0?UMO+gtS*~JESj9?ES9W$@r!bpthv)o% z{$vPSOr?gpjGE7z_IAr+_J>^=R9e^&km%-CLc&)P^39MiqbjeaA?y|;@#(hJ%h4Ac z1y~5za4S;tIMENBKd;m)oV6xl2sb}_^K0XO|H+`AZC|wej$0wZ>Nwz!F@#?)y*Whe zNl(*Ba{MT5XVPxLj9sbx>Nv1>-+?eswhZA1){OJQ{gcF^dHR4gd9q zAYvwHVbR1`P({QCNli>uu(e#VV^{{<)5&||?XfVUn%R4fZAdaQl8sxbaAIPXtOHjc zN7XX3o;}gZxLL+?y3oqD>&fw9cftF6?RznWjFu%0sWIgH$`HVEnNr(2O~VEG{OMM- z=d@cwoqXo*Yh|GXbo}E^5@cQ9ay0BoSyxkWL-Ggby~3`7_Arj5uBOmy6_PEpq#ccK z1T}O_zPdJarM3J&LO2@q3l3PKD8FeZVWmD`4&ZU;1O8asfjm(P5@tw8XoH!CzFs1N zPTlS6(@b&JJtg&mZx9#GQpB_t}lW= z*7}Rdfl9n$xrMjt?=iJ^R2!GSCt1|ydA~8L0xbxGzaRb6(XYE*fQc z+m3<^-(Qtu9&zZh*Vlw@j>w;-b}l*2B`&o?ychLC6}yV`CTZ~tN5cJ-6^%0ch%B|| zSGiyh>tKH{eZf~!Ym%sosdp$AP`?A-r^7YwDeiNO;eREVR;*S=;Qe z^=?~J31g_-Z9ZW5;Ne53CFDCUsPo5oIC73OCOgdnkILsnHLxaZrT$@8b=&Wr8lRf= zJO}kKEj;ee_4KNdhh0oc#QS7YeLOZBu@#D88f-A)>vzE9FpH7&M62-oVmp_soEKfL z^Jj71v&JM@z?nDL8zPmcQwDSsiJ#Vds&b06x{EggKoTl4{cbElewMFdPAaMuU?2@XUK1KFCviPn^Y%U61mJ?;c3 zA7Ldv@$6zjaITJ4pRf+${lE<$WP%}bp+JiGKDMRt0Ys7(_~E2_OqGb^V7Z~+HSTyY zIZZVJ6Gxg1aY?@0Y2sq-=i~!yeY^}HA!3~b;gfEwPxFK-_ViM1|1w3QGFCF@ddJDv zX^CzJM853vB`40fO8&jir!D|<|9W?ve;(((WfEk`ZU_>xAWDKD3pSk}R23}&9oL2# zvUF=wkrmAz;k7RVGBzYUw6-K>G*`J`Zcq2kM;x-BS0P<)k8g$W4&{(@4j64nxBs3v zV4e@;T=S+;lpP2B0at`eD;2ka%c0zHU?28%$AQk_Qb)qOUg^l{yNK`{$(c2b+q2k) z1vk8Q<+7~e#e8oqOYDTk^?|7%rF7mbOG-gZG87vTGI>{SGn1Qk!ITX-&s2Ug$ugQf z>B{a$uGkSTEk!T&@0r@rb%gvlZ7XBAvbcgOaD0!|m{fVX#VDkQaffH|8ONo5zFSbK zw_9kSN28>QwwOwMVPL^=kOWVuVle9t4l3v}F^m3TN33Ccx#WB)+{)UJ$_(hZ80ZgL zYHPW^rb4b8<^x6>5`Dm>3K|0#ajVRD=zPGR2njnP{#^QH&&X@<31v2{*hicBgn!)i zer2zKWSde@J9|seToEyb5DGT1A|CX6$9Mm6=XeLhT!yeB#=W0+ec01-*2+{4T(0y& zQ^ouuN2bgMXIqnJg&V^4#4b~Fb2w61MkGyvRm^Utz=}gvxL*7n=7T1e?(wSp_aZ54 z`aE&c9rFFWX&_PQyB1^Q30We@!lL#2UD>*ot>|LtWvb{hE84cB`F-3L1YA`w4_5ko z$qlQTx)5e<4%=DNWgqa@c@h@;fcMHaq{EH_K3l_h)$Q)`0nP-P(&I>&{3wy|&pI5{ zqrKxucHe?isCJgE;b)U<2&?y26~;KBK&UlrKFAQ5;I`+&{+J3P{BeKX_fQbeS}wAY zV^WlB2F$AFLwlBUxRL8E{mQ=GOm%a}eCCk#EbX7t-!JKHBA(f9PMSMzsT*4?XGGTS z@BQ4f%DZ!&X)zW`wG@?wM8VjShAR5TS2uFcZGY$}*z=;lT+6TH_O#_iJ7;?>^#cz# zhXukNX4%dy1iabq3(oEjA23wVU(*MyWeh0XX>q{#e47)Z|-YZhcpm|$9(OE-<>*S?QZWThb;Uy z9;sLKKZbL*R_*Kyv1Ce8;T;{lqQ#`cc|Bh%`hBn8$aB3`{j46(epI1X&`a0yoG^;8 zL;)iY{QGM1g3c7M_kv~)m{@cr+zo_vpw3rea6`)d3PGw3r72c>E~?ho*4DEhbDk|% z?b~jr9!T8jqk0+_moP*0ru^W&Uu@+H*+}19nWNYv}ue z+p7G{^V#>Khv{3p(Ub)58~QX?WLlKv#;r;`t8%sxnPw~bO{a7n_Si~C#Lx}3;JoE1NK$W%mEV%dNJswoN&9HDdAu&5lGltjFO{G@`N^9OCuvIR1#;X zw@De>z=Do>f~x}>!ndfFMBWHL-WBAJ2J4}S%N2sX*cwvESeL3}r`$y`YxS}9nTsOT z8v%2$lKH>7e@5b_e9^bKD*JT1zb-{2>uMyQlyLNl{!mk$o%OL(`4aBF_pq1QR0a#v zy?E1!-&wF$`5fZznHk z_5l-wDdC<|!s>-AmOv*D002NENklS$j@t>zszPug0F z@V-(w^>#nZqn7H;(8nx}Juid8-FNeRCFgBb)K+y}%TOn=R9m4qfMn2RxMreRng0_AJ{A5%PuF3=Z2MT_59!=C0y~k%nSN@>I1%$O+$hc zmdyj+N?y>}G^7r5zyy_WsE+Q$!lXFQRu!;!%R*QdWCaq2azwbyOgF5s%2y6YQxC0l z_TJGc_nJROf935E=9X5C!F%FIE#&`vD-5^)l9X-Bs-=y5KOSV0jrN^QB=&1n!{6AZ zs9nt)@2S5t_B9q-nUD2{Jl7jkb}_|>AR7GUVsEh8REFQ1dPP6kl;0H;)gKSHS31~tTyhb~tv1zy{(%2{*G)@K}Y ztor}*zWVo?i?-@%KefsFe?huvNiw_4;1zA&&HIt;aWOz{3QBrY!((7pa)6>)-b^||RdmP&3mHG%$iilF$ByvXpP_IHA!?8^n)GoOk6f!X>EF|7DQaec?LpzL zDcM3P%;7*~{l8xMW>c2DXLIy`-j7Bawm;baJ=fACg(0TIi>XH99sS`T&PVR* zXhTlxB2Mn-R?H24yBDjX#VgviB}r9u?9+7)S=U@H_);2Oh#av@OH!}s%YR>rx#Ki= zA)j(&IpFgDvuQ~M2_yWBA}kq4IQWfY9rE;B^Z3TAnqSe}qTe^@D^#()fD||Joc~YiWv=%^we3|F7k5L--gM zF>$PVxaQ^-@5Ftv_uYM&_x1X@y|J&iqq$yjwBi&a;^b7Y*;FF+V_wnGfz7<4A8o|h z!PzK5t%?>Ud`*k7uDa^zE7g6%LzT=w=Cgor_;o)y$)+j&m#!MxoT;K$a_;?n z@X_oscT*qn=QKyxho95br2VXa89#ElDX=^5?KIuVn|th8?)lALHoeHt?H!-%&iNmp!Yl9Ktg)aP3& z;hXyZ=6rP{D)5`h3tFA9@_E4P**xIM6fkqZ1W7pDnX3|ReN5ib$ti1733xr`YQ4?m za5c2=6D}RB_G52w%<-xhv?*T+3%_^Mj^6IaaI#c4OFyxihM-`~<(`v`W?C#qY?abh z&=vc7zjdRJGsDfqsVZR%>-ef((N-0`trL@6Z!l^tY}8=P%U(j_|AXs3^`$KK2Ouam;)w=u@{7%hN8Pk3AdAXvb5-EzweG# zMQ=!((EX6F(&DQ?#ySn@xvPf8qvl-qodP}3DMnHGer~1tylz^N^y%sl36QXan;!=U zA(s7>oA-2(Le|&&CV5P!0SZC!_T1<|k}ok0B^y3l3%*vB15RGiC=Rn6@XCKz`zv=><2>NaXT>~V zd^Yw06GX#1^Iqt2?dS~Pn0vKcl~pXOZ?sh#%MVahu~k7!m|Anlp#?~14Xd+M%PHPy z9~t|3_hOzmD&E15dR-?I;UeXgcbs0NHw!k~*bkEMeZ3va^?tLy-mcE5=I@!9(r@iB zMVw+)^!84k3r2C%U+NWYgBrAId1zwNrMf=h%W-OwkhcwH_^I%Q&ZZ%i-q6V=Q~H3_ z2`hO)56=T;A22~2Q3>}<3F~~`V57II7m2NC4+#>KFt8|6t%kn0D&ERg5G5q21y3>D zZ1aBI++X>zzOz1FgqwHLbfUp_)-?BQgaQJPnKu^>wnC6q8i(SO_zJ-BgNQc$SU7ktI~fZd3~D=7zD_6z%Yz*(R0 z^}>cSQ^fUN&^8ZvP2J^^6Bcv81aaiMbIDVwd4N?S+kk~#ZR@eTuc+Q9p?Xt7XBgr4 zYB$~irvj^1?6b98?}4@yfpquP7IIGuQ>4gCE3buYgjJ(}#}Y7ezywjPgso2)Zb zW>aZZ(NFSz`};8H_{Xg<-}mR683|`z(M6x|MV|}45|pwPSj9fzGB@n{e=X;1bAv+; z*m*(U9oGlUdB6m5#4uS`=bCn+VMp%0te(s2MCEg>EmOQ-%tRx3Iqyfm=H28_rD5cl zJAS$ur!Ym2YV(?YRoBm(dpCDF%<&RuBjSXjtRb&xN5UJAH)B<_wF)h%+tsp#qg_?B z4QP;cRmc}zRdjU9`srrO1Dl65wq@^=`9g~omqpJ6KuYuPI*1DcdwA&EfjK;%K5#_VKE6ZpH9+ zI~IB{$4i_!B^-ZWxmUD!u^S0L3I$mpzngAKQRWpLtDl$i+^?USq>fpaucZ0G(F59Y z!)~NuP{6Ja7+%o-E)?*eJ_lUR17;4GASS$b=nb!H$PDCWmC-h5SIjoFuQn-O&GFil zBJKP2p3LS{WjWkfy{wK^yRY;9-B?xmvG8nG6OC@{<)woaamGm4*;Hm;(a+Q?`f6$1|#yA=20mIeY8iWF^uLUDJupoJoZ;!dDgf#U8b z^nH8I`JIpFcklgl^C{Wvv(N18%+7yiXLmUn%c#ezM|}=2QmjU(YEpg%SWvqyqa%QG z4*o~eAE@rPBA)Rj8&2h&1Erdnd`8Kq{V3()({7%?RuRNK_gDovJyWf(`e!x|UugWw zd$ZuYHFf(vu_F9a2OollJ-Feh28#{}CT+d#ODY#Gy9LXN zki_NAaeP|Cp{MT0Go7kRVzk?#a(y(D?Jy=RU$>smeo_eZH+(~NNNIv28La!udg|-6 z_GB`k`7POZAcJQGuWeQ;UE6!?cWP8MV-We8W4n`JiN*}Rl=Oaf<;Ks6F2!$@V7$S zu1Z~5BMXuShAdoV1Df`W+B3Aq3W(Y@+_{m#X=3)b{tKD-Y-&$UD4y;Qub$x^f z$y{nTWdzuiPYzRNE}G@dRUXCqc)0kAHYG7_p}wjLpinR2x5Wl(D=~JaKFEBgJ9o;+ zV(NsRg+lt2r|ZYg`pff|&~naHN9D$g?;b5;Y$lfO3>NJ$)2G5xaxhHLmY3I1kacDKC;Y|+8bpe)R~4+c*=|S=uOlKkoF_w5 z<+l5o7tFXcN#h8hV3*{ri7C+<=zF~%uKOt#FNm9_=RpO&w=(9DH)~q<>n`}WSyQ|T z4yoh)lw#xAz{P<>u%1c&`4WezBPP+;8+suf3#zOcr}N*JZ%+C8(s7xrc&=DVQ?0~P ztyMU7&=3bZCkEm1lVuC~su(4XFPg{G0E^e{Vq`;9n^)Fx_dL2=f{zZkNXw$;F7Ew} z2074gE0a+0LWhbiKB+lBsldVH7cdZBc<9|y{drWvQ59F-Bw}u%; zt6~(AZ(CcRa;^)tUi%!c-OP^^Ag{`vXP5BWiq?$Q&rGDyf?8Y?J%O14YE#1kxC5$O z=aXFH!+hSRCCsNQ3K4tWFs~YH#WMBSERpXE$zD`p@gQzntke!p%MT28U3dbza?yHq zc(O;PVmOe){thyn8DU(_cS918L7dnZWO zZM8b2voM~4C{EyLL;}b4l+J+_^tYUhQ6jdu=u|8p`Z7v&x$r@Jr8>!Vn9z`?cq0!LFL3}{X;p?1N+rv28j<(jFFg`IX1zV zOwpMeuX7dLnKu|a>JmKm-mC>0(<#*po<7icrkb6=fMpEm?;j2vg`R~yZM0IJ`B25W z{)JKo4*y%-2)~H2?bF$THWtMZ1Wsex73+8g1x#mZ;kFAIG9Ti+4!HXaRD2eY8aMv8RZAL zXR8iF3k`z~Yoh~+1_c!MLc#%oR?EY5jo2cJZ3y81i4&)SFDyX0rU1eqWviUpK??a8 z8P*Z8n>^Ps_=@)=DwrIrMzT}C_lu0e6GJY+OIhxz5zO<6gkg5WZ`V88HHARO!Hq7D z-PDC@d;~s)(MbQ)IAQzM?vsJ8I@$S6@ch$j>xG!iZUHrP<`3nC#?BZNM*8zfS)ZMb z9;jH2gc{Zq1sAxc&j=;Nw|mZBkP6uRveIs<_w=61X2WUqnHoCKK}rE=?DZWUhx_tG z+%GL@em4$lJTtS;qw&~;*6{PbKI4_5RNy?dRFhM{6&_|6PB={bPVj^}{-sB4wVU#H zKuSbgPCF47HMfHc*>3QgRSgR%!s)$`d^Woi$TKt!>V2bZwCZgk=}j={Va7CN@w#zo zQc>yn8EC-3_jz6}Bdc|8Z#2#OSr!=njwcFTPCtc#S?PzyQI!4*AAqHk%5gi*xad-u z;T*6+*BBq5-L7#zq(#@E0UG|PnU8X?5%GR;e`UXAue2gYG@xDe=se)-aeG$fQ&e{k z<;$wn06D8Sg$Zuo&~o|hWxf%V@T>8a97mnw8Kg$vuM7>a?k3EG<|p%hp#`y@BURp4 zrv*qkGQC1vJ&{JCOmXK$P#U9xw#e>LlhPA*j0&(!!%yP#$Q4>8phhlURVR)b3!hfO z?rJqJ$&3^Sp)=<@N6l`4H-c`6?xCT?4Ns}^a*lBq;$pS0TRsj2rIw_GlAf4;Yaka#!|vc z>~_~oyzvagNsayG@By~llX*_ThY~KB)$l84rgd-#P5eRV4J-Ps=y#M@IsJov5W*@4 z#;T8-au1uGMU)8zfar+4+lzqv`n3*u;G2BO=fwP_Y-%=##}~ zE8o7)S9GYNX-&iLdbml+Q#~?7^D6wtj{hv|ZM$h>?Bn6w!b5}Ya@{^@3L z3~l9O5nETU;eH6%|3UnlR_Cm?ene6WqMA*7vAmCEk&U_h?HO~1?+bi&0T!irBicO^ z9){GhpkVcKM*#WYRdD%!B0rO3v+<&=IW;pD6^D-_!yO~X*|>)c#e7r8b64s-v&M<% z*IE(%ZOQ;Pvr?D+u@6zSuS>u;#S*hl=81Z5N}>cRe=R(;P*Iiz!${EiF+Q0ZjkIU8 zm*iS;&5q(v3ouIHlQ~diA9#I6f3Iv;JlQ~)GmOMNGQcXQ32&LI1pKzSs}};aod7dY z@UYbxS>)E;FY2i<9@OtT=dsH`Q{y?gP+eHoOh%@vyAl5zo3mPM9iw^yMG`vZ+ZD-c zj2p1E+Fn#kP)#wzP&fVH^U$ZT=BuW6UbV&*qSV)Hn_Q)-n3n35UgOIV&lL0WGW1@3 z8{K?@uvkksMB&dm?675a*EUrALJr6CYm^OXYVTK8!bntwbf>WW)hZMy;*P~vCc}Fv z4JAk*`UQM*3K7^GQBcX^S&h>ijAoJ5DH} zOgQ*zW?;={(;L&$IyQHj zw|c)qF(b`Xr`PFDeP}gh^6Fl^FlU8F|h4(4wiu; zab7v6qP8)V;NU!Ec^e9Oaq|!hTV57C|0h-XV!^H6tMNCd_s!eH`D3wZ4^$?u>tOnJj#Gi@Qk@gUl+VXETvd!8L_Y z&5f`-USC{~K?A(YxG6iC=A&0Ysc6ULutz|c6~U*C;Vr>tfyw7MQkz&$bjGN+a5YZ7 ze*?%2$+poV{AdCxlmxqy^UDx4bLEoo0}SoVZ>$Oim?UuRDc%-yvG_8`iIgBzT*X~~CBX725?Y-WMeby3A>BiDMPoDWGoH-fq+ky3t z&8m97OhNS#?ZfuU-%3B1#06F8W(x8)_|-2ZO^}QWd@bpH@0HAMeRlyd%sJ*<^e3J@~+yi{R5{DKZ?issVIC^sl|Z^(I5;6O$8l|v%|P4 zZIA5;J9+uX2a_0!Ux!6_2A_zyZbI96@$zs-w~acMV=e43z1WeA@bojzALYI0$Vh5hqSmd-PXM7AvFT~eWntsLmVg$y)zyfb)ux`t31z$6 zvbKNS3AVx0w-0t5f_~p4dvjd!n#}|v6fqnZp zqv>c))q)FoVr6iHxLE?XREANKPGT><oOp3o;kHSCYvUaQqtP0g^!X(xfVgL)j zxL-rnm6w~`*@)#3bIQkN{s@K7++hQvq+S zZv~G4)a$N$5D#(gpX+o_)BNn=H4%a5M7$Cpn2!;6kicC#D+8NTi3K@4eNOE&C0=uR zbD@6J@*K9DE4&M5!m!M)2<4%{QJHVN(Z;bsp>VP!s(AZtDM~HBG%8jgIdyS8&(fs| zC^clAm!3_qJG0Og%j+-YYBLdEBfg@Ji&)GE>`ShMW-|59rD~Rk=~aY@G-E#mWIyyg z-2Zr3c(^lqaDCWvy`u@fl$z!?Zlc{JvB4A2`Iu$sp6POGINc2y_Pn|a&c8T@;fZ1d zb&I(FBW*mIIWyCNx6ZzBL(l-%w$zAf`3w@gD2FNrM~X6ITGBxyaUwBuvA;rhzQbaP zmp)WrA`UMRcxdKYx7SHr_xDrl`9aD(?Jvh|rUWo&F~^j7u$7Zupgpg_7b+N(XER4A ztT^UEUi@2n)MAKr&$~AUN&DYJmMIsD%N6M$`uXiRI$%kE0kL15Tjrl3OQT7S+Eu)K zdL*S#<2=Qk`haDL61`eyTkeGNiVm-b%GF;^FxTO;1}pYNHC6g;B2>bhw|8VwcrY|6 zG$W}LTy;st!@g1BEj^<|h|Kf`2W9(uX*OYIIMv3e6q1TW)hRMuLpLe(A_|LaW+E;F zy^Sn8RULy#g&IWBW#fPm`R34dJDsGp&&w}Kq@Gj+>QSy$MWXDzH5Hpsc@q+}SZNqy zlK*}Q-m&~{o%&k{_xFdp43Bp0DJLih*oG=)?U0vMk|P1lel^BU&UicHKa3eFYBN$f zjBA>pFoZ;Ll``=`a{3z`I$EI7{D&2E&exO0Li0I|<)~8&6 zZC%V>4C;7ubrLi40;_;>59B2|oRo+|GoOXSes}-S>=S%L zi*k<_-E8r8md@k$72~^=AZwb#EAhEE@nC=?l;HSnc z{`tEeHLh$)r3tpQGp8(j(!x(PGy8WlKskZxJV=id%}84R=>aHEMWf}U%IeWg5{)9d`{n~$fbU4F|0Vo*^uERAVLt|tsG zFjRrImgccy=`NZ4T=TAQ;>@BPm@D~YweQ0{y651x0H%a-s`6{kZ_D-PMN7JyTyiJ%Solb9C|7&_8Rkd^e;(N0_*2xY%@2G7t?uPl(DMo zB!t*|TWTni4iV|@w+H45tXTR+9|*!z+{1QenP<%SF)Z;eZ!?{{-sJ3V?qB=0?s?Y* z)uqt$bwv(NO2CSJO?$qclihgo2Rey$HPlJu->){zs}}&e9c-T$Qa9Vnj);cRV*C^u zlcJaf2UgXoMd_XDmc8qO>=PU*{HTT&gfo!_@&jxv$a>uHd_g3KEh7x@q&-{E53^bH zKo|nDAI*uHQyK1Up+s}$`im~qeJMMbIlD^Zw4O#c7BW(ry;Sk&Q)WN{jWtXpbCpFiPDN>u z)+^5DLA(6~Sb@^74T?xH0k99eJ4iA|_oD1&H_LyEW;<@(Tm!l{MV87n8w7$Pbs{k! zACbGs#x+TtYeVz-x3^ypqL-@BUI#EuI>}H}aM}Va)+0laVNX9Jl1A`>r!C=MpkT9z zBx8BRv8krNCSHE1W3@VolCQ|y-Q0-v2cAU#s;4Azib=Q=-~52!SCW>$oJxE2JkUjK zDM}7FPEpouE>YDL_~mG^JY;zv{tE3DE{zll)+&o~iSxM`!Hhluzcch&91_b9a9LuX zG0irfi$-wZdGp9S3oWDe9QcOm*vqY|z^Yl`{GvJC>MIE$)|CbAFwiHIX@b+`)*sj$ z^)J0phY=_v>tp-corDxY? z4Ssc@Tm*q3PW2Mm1b;?;f~kP~7_7#C=<5@4wdH8V+nA31jL*L^C)P7iNg#C3L z^=ONN*8~quU*D4CR1&GjfL&Lrlxl+-tNKUH0Od<50@UgsKf1@vfs?pa`f#dWhaV@? z!d|{=%NaXxJWtZ>z7))S`ZN}F*p*T70E8Q-Qpp4w<*~>^Ifg~*?xECT{4tW}|#en${U=E>0*yzidww%@Ji~OgB z{RW`Ai>O#U14FRamYL6WV{m&ivD+N_`#|2dQ~2*#W`uG3(>-9}=Vfo}|Lg_*0I(?>>%X_GCcQ-XK9zU#OE!zGLmTb{Umakk0VjWPkO0$NyIu}MHv3dX;LLC8=_qg)(8r|EZyd?k+4C%K%MP(96V3^4?VEMs{v#BT4zmtm?~ z2g6^Ys}dj>yq4@%S;_ako)#O=0ENl%2^C9~G;GGBGXecRh>2wdoepP@)F z`%)fi#0@R4b(&k-*;j4s)%JhAYvp!BXY8Uy829EpHc^Qu1y z*Re@CI54D)Na|QtQl*d%7G5#__h!*y_Lhk;1WRwm)2s)dp<= zlbOY0k1(7*HrAj*nS9k=)D?>i6^AM2XNARoe31f{nqSKK^mIPqu+)3EW5;4lP{VZ? zoZ=qNt%LSz{*&agW{319|9?UTDbng5Pn&eX&Ze(ixc-5~cvDSs+?Is`2z?_psoAbC z30vwxLJFzW{*T^XJEHw3iFgD&&ln5`j)L)a^f6lYB4@slav8yQ|Bj)SLMIAxeMS`l z`+O3CX-k?pHLnrm&kCe%K-kllu@;uza_%R_on4wv1av(za_?+lCa|82Du zzE3FoXa091?btOL{BPi81Ho$uix1J4MH7txtSmQr(@vw4BKB}bpsI3k_-A=vFOfFh ze2z%nxcG6kYuV8nR0!X#^L4}cnZdHsJcvXAz?5n?VMcl?EhJBLTH|8&Fh#P<`b>bIEL9Kx3)u3D{T=i!-&C--xlnPjN$ zc*KW`>tJ_1?%uGfg%xDJog5WpQ%d^o$J&SA){bcN>@XlgLs-6uRI??$(zhSQoz7Yh z1baHn;8~I2J-_%Sr>EJXVF!ncl491CdkET7*;(5JHQ|~@vwc5qaJlYlLTFLi|M>~` zs!Z*$KZu~f3?rx(ZJ#>`T8@bt!I*UssH#j}sBXJ7r?BGwp)fl-@4R|xZWO63+C(6M z0;6~cu5k^u(!cr)TfoS2cFSOQZOVkJ6XJ{F#X_mj*CqE_*-0yLHtHjm0?icGRo0qM zZoOORYCO#kBll*j6Hc}UVotBnL-=;&zib2e2mFMInY!Iu6p&v;o_qmsA?`mRwKP_B zr>n*OsfD2*`EyO3<5vQ9jZTKNgFjs&HVs!zQ|Asmg;ce<3a*pT=@_%JDEDe14r#0} z<1<`5v!{a!ssFAFlU<&O!qY;0FgTX}*f;PrplWSx;Is&pLy*}!uxfNx?;>c{oshTo zg6g-#bhR(h@cEQ@Bcb3(VV94VUo4oi{@XwUMPn!h62Ub}5WFkqOOUHC?#S36MSl1e zaN?xy{Iyfn0jgAn4VtI|!Yw9mrIq7-e%q?N_ln-!7{i^1fp5o2L%$rqxEV3n zf<}^DhB2R1-t5sBV4!)Yn>tQLiqWgzJ>jm5$piNW5_l_aVH8ZE zz+|ok^Ia~s*ZI1!RcB>TD7xmOE2|kCSAht6zrxCiU+^?+Z-eul_+;il)M%Ls6T;|lhS}EvGgnM@YJGt;p3hY z8Xt#ulhTuO=XJu(?_a3;tMdaiB1S0g@Ji34X(MY3z*~&y8LW~sHxxZTP`ZV&kY-F4 ztq6h8D8laAj!MnkbMoKm>o;tXe491saSWjM`0psTNi6KJH3TpvG+MIi1!XWAV`m={ zY0Vkr1D9LY7Q?{(dyb+Nv1GNLc{wwp)TJdSxt0M6fWowlLXcLx(l}y!{cs0zCc;Lu z^ynMYPzeFF_jlNA?aL6%cUK(|G zXm)wffPgnP2al&h)42)kO?(3xk>UW;?hlJtHK8=U!goV@Ju(`h!A0(E-n&aQ^6GhAf%npBY_Wsl!-Et#n@OTZ&bbG*{rV zhO68))InO5F8#*uD18Fc+RpVsKYlrWt*#0RCNLEQ{v!whQ|QIFHhi9-U3oWJj5+^n zy|pwFnGn_eoa9i|vy-R)ik2h~hx7U&8I-3$yW(C_e11m4sO?ovT}W#+TSvR{k$sXf zt6UIQM7$|f!EY@xBwD2qh&*s_o9P8*r1)5-T8Nx|~6iH}f; zCIW2rmF*fp5$4UnO8k{qt36c^J!PVzdc3Rz!o|Jrk*yH>2C}oIbWwYL*~Iosp74D@ z4`Eb-CR>B|?1gI_aBPK_7EZ;uBivEUZ zxOL!1e`CDzZRqz%vy7N1WqtS3lEH1^ZC#B|ACXBCrO{+c{g#(l2ml92y^6>s3tV;EI+^m)3XeK(}f1-=(`6Z^6uB zg=v|E9^$jjW@Gpo1if>*oqR(`{kP^%BMQ60D@~{wpw+aA#B`y=X0bWB8Pd65VQFN@ zoHsry%p9C~AEMwqrauY-`{kZE3|K(!DE(G1)b#}zbAJ}lrZ28Z?1p03XU~1S==VPI zuMH@pcU-s+#XhPxfb+vtJYn58Kl%4tIpbFC2@hqrfITO#TCB$cLup4oA!oYd38noO zboZ^Ps@Ob^Rp~4!gMJ*Am~9KdF75H9du5~$|10{7M~-EAi+*k-mbJO*j~xcehk|hM zUSA$pnaDXrY&AHxMQI=~=5y9r(?xO={5*J=5dQ;P8*FcO7LEg3nD6Ef)XeAO zB*as_evfX@C^}N^_$=F7E!OW2kBvh$|4+Qw3z2F&AFG8=*$k^5PXPb>8ykgSe}8xB ze)?QDWcRCX$DP-;y~Mxn9#nd3K~geU_?N2~e5X>v@W54cnSj?N#2%aH0;UnMfJh^K zbe6Hoxy$cIhCbi-CF0T{-1)8!AJe_lg}sKbyu#J4&VL;pebn1#CX21_h3V35=^6rZ zXjW9CYY$T06MsQD_FMJB3HU=5_Z9rREy8K`qkP7)I$bzT{3n?f(M#lPpIL0iTNeqP z?q>;o!ixIGUG16cVHymKL9abK1w)!yvHu`H*-qsm+SO2e^c)B@jAo1ReK!ZTLKYU% zs1Dxc%9>Qj#zpe|c$~^zbSl?5!k51|xZR3fe0PZ-7wUd=Kx*?zJ_9yJDm*K(z}&HT z%j`;o=;CHVSO+uF^4zl0svWMJ0@3}raPr`<<^iNi3DdYdud5v!Ijgd1nlRVY82-$S(P+bUz`?n?64Iy?9+?lR ze4Az$HSJ4+IfJ*wo<+Wop5I92T!e|e7-XCTIk@cu=PwfZuIc9QNTKFZhPLnQlpZ}z zTm7rxgMl-0fT?>gIg1I4S$xGhILql=Fv~US8cixo8N;92qci@NmNV?1v~KAMudrBT zPMYrXq5bqFClSQXu?hIy$?IW>N-^W~%L-dcq^#2$LPWa?3WkMJ(i6I@L53gG#my;k7%W(N-AP73s7}q+G?uZbl?&wy>LlA1B9{_HlZh`@ z68$Cq_}5=%Njc@EVfdeqp){xGv60Qi`dTA8G%wjQ3DeH@6uqDZk4>zzdDQMrITy0E zfw>2^oHP=^8asE7LyP$i-}J|VQTE0!3wpCpkztV1o@L+*`tSLquewpbp{LVx$qag- zI$;r6Ks^FdNL^|^+atKq{>Tj;Kz}64^og~UeTCj@F+eiKTfcKipOo}$6Puv1oVAeK zW)8HC8<93ajw-JFJn_+^c!thWhTK6r6V2j?BSND-W8l8u{v{?!nZ#JZn%3BU&)r!8 zLkzJ&Mt#&bE2V(7iE!j5B8^bI~u_&gFn zWTMVK4fWAQ9S#F;(V;s%A=a17)U5ipFz*S%Gw_n#EF`orY7kqGFI5#+PasHFm7)I= z4UqaH`MqdEio_b2M{ItO$ion|WJVyjVf>Ehm(p*0c^K8(qUJ=8agtS%!^KT7Gg1@7#{Xw0HovK3e2Ks~M;a!d;7--I#{Yg;0z;qqDWC*DsdzD zNbyYNv1<{?;>-YZ6vGh7URWA=wrw5l=RQdr#8VKVSY+{&f1Pz9BdkjV4tfmR{N!L; z@%-?wzh9dR9yRzAhol`z__!vB}m0wJ@3Gy4yR{VpAMc+xp&l1?<<(~T}bKZ=@N_1x;qYS53Zak6*V|~P-qA5 z1=``?ecam6|J*BA9x%IG+3qrM1;G{*pBc{zkPiF2e;UFLLN)ej+q!B6a7n^0#oc7y z=I@`ZwDlczAAG@T%nIMjAVp3&@aaA9qsD03X%mfmw7-zBeNl;c8g_N*<^XC@pWT7` zW*EhZAPsFo;tO-*wjC}P+q;}_t56D3N}3FAp_jL)!tkE$s$~OQyu-)pe9l!AM`HLm!iN&M50iiA zr}s3sgJz4+>&pzL*HW-Vg2T2D!G5GzF>#7mG)$q@6~{}?A+J3b{sD5NQF?#R<2>#uB3>VF?F4v8o%+FKUi5YiH(uE_R7ySX+=51=%PQ~3WZ^dX?s zvz=a;RQ_5s(d-jbp9dSq-?piv{(@~jPm%jzEAQZf|^SiaCq%GYk zpNaLhs`T#T1DlX1qYN>8`)#6TkHaF5>NFaFU=wn}KS!2JlNx>qWoX`!))mK>eloV= z*Vb_xA{U7vVVbe7@AmWOT@}r@RP*ANNb`=P+oHhCAbI0qXZWpm2?m)2*>7|%(WaHv zheMeo2Z9jWe$<<{d$y>Wl<8VoqsvbZZ1dh<)CUP6PW2g)`<}y~##N#gn<~NOOC`=Q zf*TlY+^Is;b@cVbTeM2iSBu*?7sGe_VDr^E4XK0EL_i4+GZ`q+Af=_rA`kjlFr9*v4Igd$PHMq+w4cNDp|(!c&t5CwKN z8>B&B#t)(CQQ{YT0wTRabOzoY(9P}|U*MP|e3 z=&}%Lwin& zB{JZyJp=u;gE6~h{<|+b3cP#%mFsm1U)DOk#Qw?KLpP42W~UDXHwQgFn-fh%pStZK z1^q*@Dh8gKUg9fvr46iD>tUFe2tF_LYWwtfWvuzm16JH`#9g=8%vt#uL{v1A`-}EP zdj0)S#!hc&k@VOR6k-#x8GUdYzfQCQLd~Zh420$yw7lrLmF%54G=bBD+OP^XRNxs( z^^Z7cRzK8D8TrYVL&WaV12*J}h16rNfQ0DVrcu4k@HB*!@8*O@$8`+RKnway_it-X z`by(koCOAuvL<~zGwvEEqk}@!xSG@u%gmU*i?Gp!W(PvvcqSNyQAv)F7d(4O(su*? zNZ3WhxWX`!UdBrytuHQ8ukZ7O*pQ66l0WEy6lbGAZXddLk1o6|)ulD%vCheze2j}) zW5LijXHR;8H=+bDV`&;dTnc*zV!C+xo+h9zOibU~`Qx-x z@<-;xt(JI!qDsh_Q3&yB60+#4pI24x%p@+A?)KJBCCw~Bu5hO_Z2hsSKGUtDcB}?M zr3`uH<736tBq8AC_j>|IO7QA-qOIt8@hd=|THFjH>XS2*sUbgdx?dBs4=ofCT6Eh5 zH$0d~dQe?vv4g=sFQqs15W5(PI45|gP6Tne4k8;%LFKS;-$VpN#nq7e1|mf4hRUxW z1icKNiO!nThm?~ny>E$pel+ix4*WGuSOpTAhh17(WuG0_rtE3TFWY1}O;wX$T$NSX zBxJ1Gn@;||TH&^M69H z$2l;&&+Uz=19DcJJ;**sA@x3% z2wr4TX$7hc=_Zca9=x-HVpGPFnntV{f{1Lt z&yAzZRR{L)1XXmv$8-E94vq>F6pg$1dLR1F(NdhlgnbK5B2g8ql+%pi%5WKS|IC5T zpQ*Dx>bAs%`uBzN*FvE@}6zajx3Al{RvNm3_A14W3k{O>DqOiXzf|>Uvhtl_kuIE$hVKR~ea2@7Sp@ z_+&gCcQr_LFQxx~8e`AMn&UJf6XX{dnWeqff_sQ8Kb4Ok`m_RY{j?Y!%icV8ZVMG- zL;wCVFIvL)-%_PN89O9p3Ds=Os)sr9hsI2s8vob82RL@Kk8#NYFeh+poJqvBp!}#Mmqz;i6qmV09r$FOFtd$y!JW~0u+cNJ z*a$`ZZc)r1PpA#iB6GD9P;RYyYGo`XbmZ6Bvzg`*uL{r4ySC;_h&v5kO#Fxj^}hMw zbi@uLAxe$6gb@|aCJbmkp=>^W{ZqHF_Fkgx>FR&KgRXZUdPE2x8+oi=*fB!+@^8)m it&#s#Xe^O`_JD7SiF^$ilC}Q_@lldfm#vUChx`vHZy0(2 literal 0 HcmV?d00001 diff --git a/monkeyrunner/test/resources/com/android/monkeyrunner/image2.raw b/monkeyrunner/test/resources/com/android/monkeyrunner/image2.raw new file mode 100644 index 0000000000000000000000000000000000000000..06e5b47aa58c606144acddf35ccd41ab887e4e6a GIT binary patch literal 1536345 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 a>r1Xbu0O6nH+8`8!wrj#^uRN1PyRo{(`xtt literal 0 HcmV?d00001 -- 2.11.0

0D0k80%~~f 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 literal 0 HcmV?d00001 diff --git a/monkeyrunner/test/resources/com/android/monkeyrunner/image1.raw b/monkeyrunner/test/resources/com/android/monkeyrunner/image1.raw new file mode 100644 index 0000000000000000000000000000000000000000..99ec01303272c780ce5a61c4a2b8997e2d6cefcd GIT binary patch literal 307545 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