| Index: docs/android_test_instructions.md
|
| diff --git a/docs/android_test_instructions.md b/docs/android_test_instructions.md
|
| index 71131ab94cef017d7137a9fdcc8f7d7f7dc5c828..6524177a06f464799ad856f750720ca9a943baf6 100644
|
| --- a/docs/android_test_instructions.md
|
| +++ b/docs/android_test_instructions.md
|
| @@ -1,11 +1,12 @@
|
| # Android Test Instructions
|
|
|
| -Device Setup Tests are runnable on physical devices or emulators. See the
|
| -instructions below for setting up either a physical device or an emulator.
|
| -
|
| [TOC]
|
|
|
| -## Physical Device Setup **ADB Debugging**
|
| +## Device Setup
|
| +
|
| +### Physical Device Setup
|
| +
|
| +#### ADB Debugging
|
|
|
| In order to allow the ADB to connect to the device, you must enable USB
|
| debugging:
|
| @@ -15,14 +16,14 @@ debugging:
|
| * Go to "Developer options"
|
| * Check "USB debugging".
|
| * Un-check "Verify apps over USB".
|
| -* On Jelly Bean, developer options are hidden by default. To unhide them:
|
| +* On Jelly Bean and above, developer options are hidden by default. To unhide them:
|
| * Go to "About phone"
|
| * Tap 10 times on "Build number"
|
| * The "Developer options" menu will now be available.
|
| * Check "USB debugging".
|
| * Un-check "Verify apps over USB".
|
|
|
| -### Screen
|
| +#### Screen
|
|
|
| You MUST ensure that the screen stays on while testing: `adb shell svc power
|
| stayon usb` Or do this manually on the device: Settings -> Developer options
|
| @@ -32,11 +33,11 @@ If this option is greyed out, stay awake is probably disabled by policy. In that
|
| case, get another device or log in with a normal, unmanaged account (because the
|
| tests will break in exciting ways if stay awake is off).
|
|
|
| -### Enable Asserts!
|
| +#### Enable Asserts
|
|
|
| adb shell setprop debug.assert 1
|
|
|
| -### Disable Verify Apps
|
| +#### Disable Verify Apps
|
|
|
| You may see a dialog like
|
| [this one](http://www.samsungmobileusa.com/simulators/ATT_GalaxyMega/mobile/screens/06-02_12.jpg),
|
| @@ -44,9 +45,9 @@ which states, _Google may regularly check installed apps for potentially harmful
|
| behavior._ This can interfere with the test runner. To disable this dialog, run:
|
| `adb shell settings put global package_verifier_enable 0`
|
|
|
| -## Emulator Setup
|
| +### Emulator Setup
|
|
|
| -### Option 1:
|
| +#### Option 1
|
|
|
| Use an emulator (i.e. Android Virtual Device, AVD): Enabling Intel's
|
| Virtualizaton support provides the fastest, most reliable emulator configuration
|
| @@ -72,7 +73,7 @@ will fail with `INSTALL_FAILED_NO_MATCHING_ABIS`.
|
| android\_tools in the same parent directory as your chromium checkout. It
|
| will also download the system-images for the emulators (i.e. arm and x86).
|
| Note that this is a different SDK download than the Android SDK in the
|
| - chromium source checkout (i.e. src/third\_party/android\_emulator\_sdk).
|
| + chromium source checkout (i.e. `src/third_party/android_emulator_sdk`).
|
|
|
| 4. Run the avd.py script. To start up _num_ emulators use -n. For non-x86 use
|
| --abi.
|
| @@ -85,59 +86,67 @@ will fail with `INSTALL_FAILED_NO_MATCHING_ABIS`.
|
| emulators in an environment with hardware rendering available. See
|
| `avd.py --help` for more details.
|
|
|
| -### Option 2:
|
| +#### Option 2
|
|
|
| -Alternatively, you can create an run your own emulator using the tools provided
|
| +Alternatively, you can create and run your own emulator using the tools provided
|
| by the Android SDK. When doing so, be sure to enable GPU emulation in hardware
|
| settings, since Chromium requires it to render.
|
|
|
| ## Building Tests
|
|
|
| -It may not be immediately obvious where your test code gets compiled to, so here
|
| -are some general rules:
|
| -
|
| -* If your test code lives under /base, it will be built as part of the
|
| - base_unittests_apk.
|
| -* If your test code lives under /content, it will probably be built as part of
|
| - the content_shell_test_apk
|
| -* If your test code lives under /chrome (or higher), it will probably be built
|
| - as part of the chrome_public_test_apk
|
| -* (Please fill in more details here if you know them).
|
| -
|
| - NB: We used to call the chrome_public_test_apk the
|
| - chromium_shell_test_apk. There may still be references to this kicking
|
| - around, but wherever you see chromium_shell_test you should replace with
|
| - chrome_public_test.
|
| +If you're adding a new test file, you'll need to explicitly add it to a gn
|
| +target. If you're adding a test to an existing file, you won't to make gn
|
| +changes, but you may be interested in where your test winds up. In either case,
|
| +here are some guidelines for where a test belongs:
|
| +
|
| +### C++
|
| +
|
| +C++ test files typically belong in `<top-level directory>_unittests` (e.g.
|
| +`base_unittests` for `//base`). There are a few exceptions -- browser tests are
|
| +typically their own target (e.g. `content_browsertests` for `//content`, or
|
| +`browser_tests` for `//chrome`), and some unit test suites are broken at the
|
| +second directory rather than the top-level one.
|
| +
|
| +### Java
|
| +
|
| +Java test files vary a bit more widely than their C++ counterparts:
|
| +
|
| + - Instrumentation test files -- i.e., tests that will run on a device --
|
| +typically belong in either `<top-level directory>_javatests` or
|
| +`<top-level directory>_test_java`. Regardless, they'll wind up getting packaged
|
| +into one of a few test APKs:
|
| + - `android_webview_test_apk` for anything in `//android_webview`
|
| + - `content_shell_test_apk` for anything in `//content` or below
|
| + - `chrome_public_test_apk` for most things in `//chrome`
|
| + - `chrome_sync_shell_test_apk` in a few exceptional cases
|
| + - JUnit or Robolectric test files -- i.e., tests that will run on the host --
|
| +typically belong in `<top-level directory>_junit_tests` (e.g. `base_junit_tests`
|
| +for `//base`), though here again there are cases (particularly in
|
| +`//components`) where suites are split at the second directory rather than the
|
| +top-level one.
|
|
|
| Once you know what to build, just do it like you normally would build anything
|
| else, e.g.: `ninja -C out/Release chrome_public_test_apk`
|
|
|
| ## Running Tests
|
|
|
| -All functional tests are run using `build/android/test_runner.py`, either
|
| -directly or via a generated wrapper script in `<output directory>/bin/`.
|
| -Tests are sharded across all attached devices. In order to run tests, call:
|
| -`build/android/test_runner.py <test_type> [options]`
|
| -(or `<generated wrapper script> [options]`).
|
| -For a list of valid test types, see `test_runner.py --help`. For
|
| -help on a specific test type, run `test_runner.py <test_type> --help`.
|
| +All functional tests should be runnable via the wrapper scripts generated at
|
| +build time:
|
| +
|
| +```sh
|
| +<output directory>/bin/run_<target_name> [options]
|
| +```
|
| +
|
| +Note that tests are sharded across all attached devices unless explicitly told
|
| +to do otherwise by `-d/--device`.
|
|
|
| The commands used by the buildbots are printed in the logs. Look at
|
| http://build.chromium.org/ to duplicate the same test command as a particular
|
| builder.
|
|
|
| -If you build in an output directory other than "out", you may have to tell
|
| -test\_runner.py where you place it. Say you build your android code in
|
| -out\_android, then do `export CHROMIUM_OUT_DIR=out_android` before running the
|
| -command below. You have to do this even if your "out" directory is a symlink
|
| -pointing to "out_android". You can also use `--output-directory` to point to the
|
| -path of your output directory, for example,
|
| -`--output-directory=out_android/Debug`. (The generated wrapper scripts handle
|
| -this automatically.)
|
| -
|
| -## INSTALL\_FAILED\_CONTAINER\_ERROR or INSTALL\_FAILED\_INSUFFICIENT\_STORAGE
|
| +### INSTALL\_FAILED\_CONTAINER\_ERROR or INSTALL\_FAILED\_INSUFFICIENT\_STORAGE
|
|
|
| -If you see this error when test\_runner.py is attempting to deploy the test
|
| +If you see this error when the test runner is attempting to deploy the test
|
| binaries to the AVD emulator, you may need to resize your userdata partition
|
| with the following commands:
|
|
|
| @@ -205,7 +214,7 @@ build/android/test_runner.py junit -s chrome_junit_tests --release -vvv
|
|
|
| ```shell
|
| # Build a test suite
|
| -ninja -C out/Release content_unittests_apk
|
| +ninja -C out/Release content_unittests
|
|
|
| # Run a test suite
|
| out/Release/bin/run_content_unittests [-vv]
|
| @@ -297,5 +306,5 @@ https://sites.google.com/a/chromium.org/dev/developers/testing/webkit-layout-tes
|
| (e.g. the "Android Debug (Nexus 7)" bot on the chromium.gpu waterfall)
|
|
|
| See http://www.chromium.org/developers/testing/gpu-testing for details. Use
|
| ---browser=android-content-shell. Examine the stdio from the test invocation on
|
| -the bots to see arguments to pass to src/content/test/gpu/run\_gpu\_test.py.
|
| +`--browser=android-content-shell`. Examine the stdio from the test invocation on
|
| +the bots to see arguments to pass to `src/content/test/gpu/run_gpu_test.py`.
|
|
|