Fix 'make check' for Android

This patch allows 'make check' to work when performing
an Automake-based build of Breakpad for Android. This
requires to have an Android device connected, and the
'adb' tool in your path.

You can test that with something like:

    configure --host=arm-linux-androideabi
    make check

This is achieved by adding a new small shell script
under android/test-shell.sh, which is invoked by the
Makefile (see TESTS_ENVIRONMENT definition in
Makefile.am).

By default, this runs all unit tests, including those
for the processor and tools (which normally never run
on an Android device).

Note that the test suites fails (e.g. 11 failing tests
for the client library). This will be addressed in later
patches.

+ Modify android/run-checks.sh to run the client library
  test suite on the device by default.

+ Add a new option (--all-tests) to android/run-checks.sh
  which forces it to run the unit test suite for the host
  binaries, and the full suite on the Android device.

+ Update README.ANDROID appropriately.
Review URL: https://breakpad.appspot.com/441002

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@1023 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
digit@chromium.org 2012-08-31 17:07:25 +00:00
parent 02f664dbf4
commit fa064e215b
6 changed files with 668 additions and 214 deletions

View file

@ -9,6 +9,9 @@ Note that this release only supports ARM-based Android systems.
We're working on adding support for x86 and MIPS, but that might
require an udpated NDK release.
IMPORTANT: Currently, Minidump generation only works when a signal is
handled by Breakpad. I.e. calling WriteMinidump() directly
at runtime will not work.
I. Building the client library:
===============================
@ -52,6 +55,9 @@ value, and disable the processor and tools, as in:
The library will be under src/client/linux/libbreakpad_client.a
You can also use 'make check' to run the test suite on a connected
Android device. This requires the Android 'adb' tool to be in your
path.
II. Using the client library in Android:
========================================
@ -64,7 +70,10 @@ found at http://code.google.com/p/google-breakpad/wiki/LinuxStarterGuide
2/ If you're not using ndk-build, you also need to:
- add $GOOGLE_BREAKPAD_PATH to your compiler include path
- add the following to your compiler include search paths:
$GOOGLE_BREAKPAD_PATH/src
$GOOGLE_BREAKPAD_PATH/src/common/android/include
- add -llog to your linker flags
Note that ndk-build does that for your automatically.
@ -118,17 +127,18 @@ IV. Verifying the Android build library:
========================================
If you modify Google Breakpad and want to check that it still works correctly
on Android, please run the android/run-test-program.sh script which will do all
on Android, please run the android/run-checks.sh script which will do all
necessary verifications for you. This includes:
- Rebuilding the full host package
- Rebuilding the client library with configure/make
- Rebuilding the client library with ndk-build
- Building, installing and running a test crasher program on a device
- Rebuilding the full host binaries.
- Rebuilding the full Android binaries with configure/make.
- Rebuilding the client library unit tests, and running them on a device.
- Rebuilding the client library with ndk-build.
- Building, installing and running a test crasher program on a device.
- Extracting the corresponding minidump, dumping the test program symbols
and generating a stack trace.
- Checking the stack trace for valid source locations.
- Checking the generated stack trace for valid source locations.
For more details, please run:
android/run-test-program.sh --help-all
android/run-checks.sh --help-all