summaryrefslogtreecommitdiffstats
path: root/toolkit/crashreporter/google-breakpad/android
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/crashreporter/google-breakpad/android')
-rwxr-xr-xtoolkit/crashreporter/google-breakpad/android/common-functions.sh372
-rw-r--r--toolkit/crashreporter/google-breakpad/android/google_breakpad/Android.mk103
-rwxr-xr-xtoolkit/crashreporter/google-breakpad/android/run-checks.sh555
-rw-r--r--toolkit/crashreporter/google-breakpad/android/sample_app/README32
-rw-r--r--toolkit/crashreporter/google-breakpad/android/sample_app/jni/Android.mk44
-rw-r--r--toolkit/crashreporter/google-breakpad/android/sample_app/jni/Application.mk32
-rw-r--r--toolkit/crashreporter/google-breakpad/android/sample_app/jni/test_breakpad.cpp57
-rwxr-xr-xtoolkit/crashreporter/google-breakpad/android/test-driver131
-rwxr-xr-xtoolkit/crashreporter/google-breakpad/android/test-shell.sh131
9 files changed, 0 insertions, 1457 deletions
diff --git a/toolkit/crashreporter/google-breakpad/android/common-functions.sh b/toolkit/crashreporter/google-breakpad/android/common-functions.sh
deleted file mode 100755
index c00e34f99..000000000
--- a/toolkit/crashreporter/google-breakpad/android/common-functions.sh
+++ /dev/null
@@ -1,372 +0,0 @@
-# Copyright (c) 2012 Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Collection of common shell functions for 'run-checks.sh' et 'test-shell.sh'
-
-# All internal variables and functions use an underscore as a prefix
-# (e.g. _VERBOSE, _ALL_CLEANUPS, etc..).
-
-# Sanitize the environment
-export LANG=C
-export LC_ALL=C
-
-if [ "$BASH_VERSION" ]; then
- set -o posix
-fi
-
-# Utility functions
-
-_ALL_CLEANUPS=
-
-# Register a function to be called when the script exits, even in case of
-# Ctrl-C, logout, etc.
-# $1: function name.
-atexit () {
- if [ -z "$_ALL_CLEANUPS" ]; then
- _ALL_CLEANUPS=$1
- # Ensure a clean exit when the script is:
- # - Exiting normally (EXIT)
- # - Interrupted by Ctrl-C (INT)
- # - Interrupted by log out (HUP)
- # - Being asked to quit nicely (TERM)
- # - Being asked to quit and dump core (QUIT)
- trap "_exit_cleanups \$?" EXIT INT HUP QUIT TERM
- else
- _ALL_CLEANUPS="$_ALL_CLEANUPS $1"
- fi
-}
-
-# Called on exit if at least one function was registered with atexit
-# $1: final exit status code
-_exit_cleanups () {
- local CLEANUP CLEANUPS
- # Ignore calls to atexit during cleanups
- CLEANUPS=$_ALL_CLEANUPS
- _ALL_CLEANUPS=
- for CLEANUP in $CLEANUPS; do
- ($CLEANUP)
- done
- exit "$@"
-}
-
-
-
-
-# Dump a panic message then exit.
-# $1+: message
-panic () {
- echo "ERROR: $@" >&2
- exit 1
-}
-
-# If the previous command failed, dump a panic message then exit.
-# $1+: message.
-fail_panic () {
- if [ $? != 0 ]; then
- panic "$@"
- fi;
-}
-
-_VERBOSE=0
-
-# Increase verbosity for dump/log/run/run2 functions
-increase_verbosity () {
- _VERBOSE=$(( $_VERBOSE + 1 ))
-}
-
-# Decrease verbosity
-decrease_verbosity () {
- _VERBOSE=$(( $_VERBOSE - 1 ))
-}
-
-# Returns success iff verbosity level is higher than a specific value
-# $1: verbosity level
-verbosity_is_higher_than () {
- [ "$_VERBOSE" -gt "$1" ]
-}
-
-# Returns success iff verbosity level is lower than a specific value
-# $1: verbosity level
-verbosity_is_lower_than () {
- [ "$_VERBOSE" -le "$1" ]
-}
-
-# Dump message to stdout, unless verbosity is < 0, i.e. --quiet was called
-# $1+: message
-dump () {
- if [ "$_VERBOSE" -ge 0 ]; then
- printf "%s\n" "$*"
- fi
-}
-
-# If --verbose was used, dump a message to stdout.
-# $1+: message
-log () {
- if [ "$_VERBOSE" -ge 1 ]; then
- printf "%s\n" "$*"
- fi
-}
-
-_RUN_LOG=
-
-# Set a run log file that can be used to collect the output of commands that
-# are not displayed.
-set_run_log () {
- _RUN_LOG=$1
-}
-
-# Run a command. Output depends on $_VERBOSE:
-# $_VERBOSE <= 0: Run command, store output into the run log
-# $_VERBOSE >= 1: Dump command, run it, output goest to stdout
-# Note: Ideally, the command's output would go to the run log for $_VERBOSE >= 1
-# but the 'tee' tool doesn't preserve the status code of its input pipe
-# in case of error.
-run () {
- local LOGILE
- if [ "$_RUN_LOG" ]; then
- LOGFILE=$_RUN_LOG
- else
- LOGFILE=/dev/null
- fi
-
- if [ "$_VERBOSE" -ge 1 ]; then
- echo "COMMAND: $@"
- "$@"
- else
- "$@" >>$LOGFILE 2>&1
- fi
-}
-
-# Same as run(), but only dump command output for $_VERBOSE >= 2
-run2 () {
- local LOGILE
- if [ "$_RUN_LOG" ]; then
- LOGFILE=$_RUN_LOG
- else
- LOGFILE=/dev/null
- fi
-
- if [ "$_VERBOSE" -ge 1 ]; then
- echo "COMMAND: $@"
- fi
- if [ "$_VERBOSE" -ge 2 ]; then
- "$@"
- else
- "$@" >>$LOGFILE 2>&1
- fi
-}
-
-# Extract number of cores to speed up the builds
-# Out: number of CPU cores
-get_core_count () {
- case $(uname -s) in
- Linux)
- grep -c -e '^processor' /proc/cpuinfo
- ;;
- Darwin)
- sysctl -n hw.ncpu
- ;;
- CYGWIN*|*_NT-*)
- echo $NUMBER_OF_PROCESSORS
- ;;
- *)
- echo 1
- ;;
- esac
-}
-
-
-# Check for the Android ADB program.
-#
-# On success, return nothing, but updates internal variables so later calls to
-# adb_shell, adb_push, etc.. will work. You can get the path to the ADB program
-# with adb_get_program if needed.
-#
-# On failure, returns 1, and updates the internal adb error message, which can
-# be retrieved with adb_get_error.
-#
-# $1: optional ADB program path.
-# Return: success or failure.
-_ADB=
-_ADB_STATUS=
-_ADB_ERROR=
-
-adb_check () {
- # First, try to find the executable in the path, or the SDK install dir.
- _ADB=$1
- if [ -z "$_ADB" ]; then
- _ADB=$(which adb 2>/dev/null)
- if [ -z "$_ADB" -a "$ANDROID_SDK_ROOT" ]; then
- _ADB=$ANDROID_SDK_ROOT/platform-tools/adb
- if [ ! -f "$_ADB" ]; then
- _ADB=
- fi
- fi
- if [ -z "$_ADB" ]; then
- _ADB_STATUS=1
- _ADB_ERROR="The Android 'adb' tool is not in your path."
- return 1
- fi
- fi
-
- log "Found ADB program: $_ADB"
-
- # Check that it works correctly
- local ADB_VERSION
- ADB_VERSION=$("$_ADB" version 2>/dev/null)
- case $ADB_VERSION in
- "Android Debug Bridge "*) # Pass
- log "Found ADB version: $ADB_VERSION"
- ;;
- *) # Fail
- _ADB_ERROR="Your ADB binary reports a bad version ($ADB_VERSION): $_ADB"
- _ADB_STATUS=1
- return 1
- esac
-
- _ADB_STATUS=0
- return 0
-}
-
-
-# Return the path to the Android ADB program, if correctly detected.
-# On failure, return the empty string.
-# Out: ADB program path (or empty on failure)
-# Return: success or failure.
-adb_get_program () {
- # Return cached value as soon as possible.
- if [ -z "$_ADB_STATUS" ]; then
- adb_check $1
- fi
- echo "$_ADB"
- return $_ADB_STATUS
-}
-
-# Return the error corresponding to the last ADB function failure.
-adb_get_error () {
- echo "$_ADB_ERROR"
-}
-
-# Check that there is one device connected through ADB.
-# In case of failure, use adb_get_error to know why this failed.
-# $1: Optional adb program path
-# Return: success or failure.
-_ADB_DEVICE=
-_ADB_DEVICE_STATUS=
-adb_check_device () {
- if [ "$_ADB_DEVICE_STATUS" ]; then
- return $_ADB_DEVICE_STATUS
- fi
-
- # Check for ADB.
- if ! adb_check $1; then
- _ADB_DEVICE_STATUS=$_ADB_STATUS
- return 1
- fi
-
- local ADB_DEVICES NUM_DEVICES FINGERPRINT
-
- # Count the number of connected devices.
- ADB_DEVICES=$("$_ADB" devices 2>/dev/null | awk '$2 == "device" { print $1; }')
- NUM_DEVICES=$(echo "$ADB_DEVICES" | wc -l)
- case $NUM_DEVICES in
- 0)
- _ADB_ERROR="No Android device connected. Please connect one to your machine."
- _ADB_DEVICE_STATUS=1
- return 1
- ;;
- 1) # Pass
- # Ensure the same device will be called in later adb_shell calls.
- export ANDROID_SERIAL=$ADB_DEVICES
- ;;
- *) # 2 or more devices.
- if [ "$ANDROID_SERIAL" ]; then
- ADB_DEVICES=$ANDROID_SERIAL
- NUM_DEVICES=1
- else
- _ADB_ERROR="More than one Android device connected. \
-Please define ANDROID_SERIAL in your environment"
- _ADB_DEVICE_STATUS=1
- return 1
- fi
- ;;
- esac
-
- _ADB_DEVICE_STATUS=0
- _ADB_DEVICE=$ADB_DEVICES
-
- FINGERPRINT=$(adb_shell getprop ro.build.fingerprint)
- log "Using ADB device: $ANDROID_SERIAL ($FINGERPRINT)"
- return 0
-}
-
-# The 'adb shell' command is pretty hopeless, try to make sense of it by:
-# 1/ Removing trailing \r from line endings.
-# 2/ Ensuring the function returns the command's status code.
-#
-# $1+: Command
-# Out: command output (stdout + stderr combined)
-# Return: command exit status
-adb_shell () {
- local RET ADB_LOG
- # Check for ADB device.
- adb_check_device || return 1
- ADB_LOG=$(mktemp "${TMPDIR:-/tmp}/adb-XXXXXXXX")
- "$_ADB" shell "$@" ";" echo \$? > "$ADB_LOG" 2>&1
- sed -i -e 's![[:cntrl:]]!!g' "$ADB_LOG" # Remove \r.
- RET=$(sed -e '$!d' "$ADB_LOG") # Last line contains status code.
- sed -e '$d' "$ADB_LOG" # Print everything except last line.
- rm -f "$ADB_LOG"
- return $RET
-}
-
-# Push a file to a device.
-# $1: source file path
-# $2: device target file path
-# Return: success or failure.
-adb_push () {
- adb_check_device || return 1
- run "$_ADB" push "$1" "$2"
-}
-
-# Pull a file from a device
-# $1: device file path
-# $2: target host file path
-# Return: success or failure.
-adb_pull () {
- adb_check_device || return 1
- run "$_ADB" pull "$1" "$2"
-}
-
-# Same as adb_push, but will panic if the operations didn't succeed.
-adb_install () {
- adb_push "$@"
- fail_panic "Failed to install $1 to the Android device at $2"
-}
-
diff --git a/toolkit/crashreporter/google-breakpad/android/google_breakpad/Android.mk b/toolkit/crashreporter/google-breakpad/android/google_breakpad/Android.mk
deleted file mode 100644
index 74625eb55..000000000
--- a/toolkit/crashreporter/google-breakpad/android/google_breakpad/Android.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 2012, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# ndk-build module definition for the Google Breakpad client library
-#
-# To use this file, do the following:
-#
-# 1/ Include this file from your own Android.mk, either directly
-# or with through the NDK's import-module function.
-#
-# 2/ Use the client static library in your project with:
-#
-# LOCAL_STATIC_LIBRARIES += breakpad_client
-#
-# 3/ In your source code, include "src/client/linux/exception_handler.h"
-# and use the Linux instructions to use it.
-#
-# This module works with either the STLport or GNU libstdc++, but you need
-# to select one in your Application.mk
-#
-
-# The top Google Breakpad directory.
-# We assume this Android.mk to be under 'android/google_breakpad'
-
-LOCAL_PATH := $(call my-dir)/../..
-
-# Defube the client library module, as a simple static library that
-# exports the right include path / linker flags to its users.
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := breakpad_client
-
-LOCAL_CPP_EXTENSION := .cc
-
-# Breakpad uses inline ARM assembly that requires the library
-# to be built in ARM mode. Otherwise, the build will fail with
-# cryptic assembler messages like:
-# Compile++ thumb : google_breakpad_client <= crash_generation_client.cc
-# /tmp/cc8aMSoD.s: Assembler messages:
-# /tmp/cc8aMSoD.s:132: Error: invalid immediate: 288 is out of range
-# /tmp/cc8aMSoD.s:244: Error: invalid immediate: 296 is out of range
-LOCAL_ARM_MODE := arm
-
-# List of client source files, directly taken from Makefile.am
-LOCAL_SRC_FILES := \
- src/client/linux/crash_generation/crash_generation_client.cc \
- src/client/linux/dump_writer_common/thread_info.cc \
- src/client/linux/dump_writer_common/ucontext_reader.cc \
- src/client/linux/handler/exception_handler.cc \
- src/client/linux/handler/minidump_descriptor.cc \
- src/client/linux/log/log.cc \
- src/client/linux/microdump_writer/microdump_writer.cc \
- src/client/linux/minidump_writer/linux_dumper.cc \
- src/client/linux/minidump_writer/linux_ptrace_dumper.cc \
- src/client/linux/minidump_writer/minidump_writer.cc \
- src/client/minidump_file_writer.cc \
- src/common/android/breakpad_getcontext.S \
- src/common/convert_UTF.c \
- src/common/md5.cc \
- src/common/string_conversion.cc \
- src/common/linux/elfutils.cc \
- src/common/linux/file_id.cc \
- src/common/linux/guid_creator.cc \
- src/common/linux/linux_libc_support.cc \
- src/common/linux/memory_mapped_file.cc \
- src/common/linux/safe_readlink.cc
-
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/src/common/android/include \
- $(LOCAL_PATH)/src
-
-LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)
-LOCAL_EXPORT_LDLIBS := -llog
-
-include $(BUILD_STATIC_LIBRARY)
-
-# Done. \ No newline at end of file
diff --git a/toolkit/crashreporter/google-breakpad/android/run-checks.sh b/toolkit/crashreporter/google-breakpad/android/run-checks.sh
deleted file mode 100755
index 51d2d5023..000000000
--- a/toolkit/crashreporter/google-breakpad/android/run-checks.sh
+++ /dev/null
@@ -1,555 +0,0 @@
-#!/bin/sh
-# Copyright (c) 2012 Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Sanitize the environment
-export LANG=C
-export LC_ALL=C
-
-if [ "$BASH_VERSION" ]; then
- set -o posix
-fi
-
-PROGDIR=$(dirname "$0")
-PROGDIR=$(cd "$PROGDIR" && pwd)
-PROGNAME=$(basename "$0")
-
-. $PROGDIR/common-functions.sh
-
-DEFAULT_ABI="armeabi"
-VALID_ABIS="armeabi armeabi-v7a x86 mips"
-
-ABI=
-ADB=
-ALL_TESTS=
-ENABLE_M32=
-HELP=
-HELP_ALL=
-NDK_DIR=
-NO_CLEANUP=
-NO_DEVICE=
-NUM_JOBS=$(get_core_count)
-TMPDIR=
-
-for opt do
- # The following extracts the value if the option is like --name=<value>.
- optarg=$(expr -- $opt : '^--[^=]*=\(.*\)$')
- case $opt in
- --abi=*) ABI=$optarg;;
- --adb=*) ADB=$optarg;;
- --all-tests) ALL_TESTS=true;;
- --enable-m32) ENABLE_M32=true;;
- --help|-h|-?) HELP=TRUE;;
- --help-all) HELP_ALL=true;;
- --jobs=*) NUM_JOBS=$optarg;;
- --ndk-dir=*) NDK_DIR=$optarg;;
- --tmp-dir=*) TMPDIR=$optarg;;
- --no-cleanup) NO_CLEANUP=true;;
- --no-device) NO_DEVICE=true;;
- --quiet) decrease_verbosity;;
- --verbose) increase_verbosity;;
- -*) panic "Invalid option '$opt', see --help for details.";;
- *) panic "This script doesn't take any parameters. See --help for details."
- ;;
- esac
-done
-
-if [ "$HELP" -o "$HELP_ALL" ]; then
- echo "\
- Usage: $PROGNAME [options]
-
- This script is used to check that your Google Breakpad source tree can
- be properly built for Android, and that the client library and host tools
- work properly together.
-"
- if [ "$HELP_ALL" ]; then
- echo "\
- In more details, this script will:
-
- - Rebuild the host version of Google Breakpad in a temporary
- directory (with the Auto-tools based build system).
-
- - Rebuild the Android client library with the Google Breakpad build
- system (using autotools/configure). This requires that you define
- ANDROID_NDK_ROOT in your environment to point to a valid Android NDK
- installation directory, or use the --ndk-dir=<path> option.
-
- - Rebuild the Android client library and a test crashing program with the
- Android NDK build system (ndk-build).
-
- - Require an Android device connected to your machine, and the 'adb'
- tool in your path. They are used to:
-
- - Install and run a test crashing program.
- - Extract the corresponding minidump from the device.
- - Dump the symbols from the test program on the host with 'dump_syms'
- - Generate a stack trace with 'minidump_stackwalk'
- - Check the stack trace content for valid source file locations.
-
- You can however skip this requirement and only test the builds by using
- the --no-device flag.
-
- By default, all generated files will be created in a temporary directory
- that is removed when the script completion. If you want to inspect the
- files, use the --no-cleanup option.
-
- Finally, use --verbose to increase the verbosity level, this will help
- you see which exact commands are being issues and their result. Use the
- flag twice for even more output. Use --quiet to decrease verbosity
- instead and run the script silently.
-
- If you have a device connected, the script will probe it to determine
- its primary CPU ABI, and build the test program for it. You can however
- use the --abi=<name> option to override this (this can be useful to check
- the secondary ABI, e.g. using --abi=armeabi to check that such a program
- works correctly on an ARMv7-A device).
-
- If you don't have a device connected, the test program will be built (but
- not run) with the default '$DEFAULT_ABI' ABI. Again, you can use
- --abi=<name> to override this. Valid ABI names are:
-
- $VALID_ABIS
-
- The script will only run the client library unit test on the device
- by default. You can use --all-tests to also build and run the unit
- tests for the Breakpad tools and processor, but be warned that this
- adds several minutes of testing time. --all-tests will also run the
- host unit tests suite.
-"
-
- fi # HELP_ALL
-
- echo "\
- Valid options:
-
- --help|-h|-? Display this message.
- --help-all Display extended help.
- --enable-m32 Build 32-bit version of host tools.
- --abi=<name> Specify target CPU ABI [auto-detected].
- --jobs=<count> Run <count> build tasks in parallel [$NUM_JOBS].
- --ndk-dir=<path> Specify NDK installation directory.
- --tmp-dir=<path> Specify temporary directory (will be wiped-out).
- --adb=<path> Specify adb program path.
- --no-cleanup Don't remove temporary directory after completion.
- --no-device Do not try to detect devices, nor run crash test.
- --all-tests Run all unit tests (i.e. tools and processor ones too).
- --verbose Increase verbosity.
- --quiet Decrease verbosity."
-
- exit 0
-fi
-
-TESTAPP_DIR=$PROGDIR/sample_app
-
-# Select NDK install directory.
-if [ -z "$NDK_DIR" ]; then
- if [ -z "$ANDROID_NDK_ROOT" ]; then
- panic "Please define ANDROID_NDK_ROOT in your environment, or use \
---ndk-dir=<path>."
- fi
- NDK_DIR="$ANDROID_NDK_ROOT"
- log "Found NDK directory: $NDK_DIR"
-else
- log "Using NDK directory: $NDK_DIR"
-fi
-# Small sanity check.
-NDK_BUILD="$NDK_DIR/ndk-build"
-if [ ! -f "$NDK_BUILD" ]; then
- panic "Your NDK directory is not valid (missing ndk-build): $NDK_DIR"
-fi
-
-# Ensure the temporary directory is deleted on exit, except if the --no-cleanup
-# option is used.
-
-clean_tmpdir () {
- if [ "$TMPDIR" ]; then
- if [ -z "$NO_CLEANUP" ]; then
- log "Cleaning up: $TMPDIR"
- rm -rf "$TMPDIR"
- else
- dump "Temporary directory contents preserved: $TMPDIR"
- fi
- fi
- exit "$@"
-}
-
-atexit clean_tmpdir
-
-# If --tmp-dir=<path> is not used, create a temporary directory.
-# Otherwise, start by cleaning up the user-provided path.
-if [ -z "$TMPDIR" ]; then
- TMPDIR=$(mktemp -d /tmp/$PROGNAME.XXXXXXXX)
- fail_panic "Can't create temporary directory!"
- log "Using temporary directory: $TMPDIR"
-else
- if [ ! -d "$TMPDIR" ]; then
- mkdir -p "$TMPDIR"
- fail_panic "Can't create temporary directory: $TMPDIR"
- else
- log "Cleaning up temporary directory: $TMPDIR"
- rm -rf "$TMPDIR"/*
- fail_panic "Cannot cleanup temporary directory!"
- fi
-fi
-
-if [ -z "$NO_DEVICE" ]; then
- if ! adb_check_device $ADB; then
- echo "$(adb_get_error)"
- echo "Use --no-device to build the code without running any tests."
- exit 1
- fi
-fi
-
-BUILD_LOG="$TMPDIR/build.log"
-RUN_LOG="$TMPDIR/run.log"
-CRASH_LOG="$TMPDIR/crash.log"
-
-set_run_log "$RUN_LOG"
-
-TMPHOST="$TMPDIR/host-local"
-
-cd "$TMPDIR"
-
-# Build host version of the tools
-dump "Building host binaries."
-CONFIGURE_FLAGS=
-if [ "$ENABLE_M32" ]; then
- CONFIGURE_FLAGS="$CONFIGURE_FLAGS --enable-m32"
-fi
-(
- run mkdir "$TMPDIR/build-host" &&
- run cd "$TMPDIR/build-host" &&
- run2 "$PROGDIR/../configure" --prefix="$TMPHOST" $CONFIGURE_FLAGS &&
- run2 make -j$NUM_JOBS install
-)
-fail_panic "Can't build host binaries!"
-
-if [ "$ALL_TESTS" ]; then
- dump "Running host unit tests."
- (
- run cd "$TMPDIR/build-host" &&
- run2 make -j$NUM_JOBS check
- )
- fail_panic "Host unit tests failed!!"
-fi
-
-TMPBIN=$TMPHOST/bin
-
-# Generate a stand-alone NDK toolchain
-
-# Extract CPU ABI and architecture from device, if any.
-if adb_check_device; then
- DEVICE_ABI=$(adb_shell getprop ro.product.cpu.abi)
- DEVICE_ABI2=$(adb_shell getprop ro.product.cpu.abi2)
- if [ -z "$DEVICE_ABI" ]; then
- panic "Can't extract ABI from connected device!"
- fi
- if [ "$DEVICE_ABI2" ]; then
- dump "Found device ABIs: $DEVICE_ABI $DEVICE_ABI2"
- else
- dump "Found device ABI: $DEVICE_ABI"
- DEVICE_ABI2=$DEVICE_ABI
- fi
-
- # If --abi=<name> is used, check that the device supports it.
- if [ "$ABI" -a "$DEVICE_ABI" != "$ABI" -a "$DEVICE_ABI2" != "$ABI" ]; then
- dump "ERROR: Device ABI(s) do not match --abi command-line value ($ABI)!"
- panic "Please use --no-device to skip device tests."
- fi
-
- if [ -z "$ABI" ]; then
- ABI=$DEVICE_ABI
- dump "Using CPU ABI: $ABI (device)"
- else
- dump "Using CPU ABI: $ABI (command-line)"
- fi
-else
- if [ -z "$ABI" ]; then
- # No device connected, choose default ABI
- ABI=$DEFAULT_ABI
- dump "Using CPU ABI: $ABI (default)"
- else
- dump "Using CPU ABI: $ABI (command-line)"
- fi
-fi
-
-# Check the ABI value
-VALID=
-for VALID_ABI in $VALID_ABIS; do
- if [ "$ABI" = "$VALID_ABI" ]; then
- VALID=true
- break
- fi
-done
-
-if [ -z "$VALID" ]; then
- panic "Unknown CPU ABI '$ABI'. Valid values are: $VALID_ABIS"
-fi
-
-# Extract architecture name from ABI
-case $ABI in
- armeabi*) ARCH=arm;;
- *) ARCH=$ABI;;
-esac
-
-# Extract GNU configuration name
-case $ARCH in
- arm)
- GNU_CONFIG=arm-linux-androideabi
- ;;
- x86)
- GNU_CONFIG=i686-linux-android
- ;;
- mips)
- GNU_CONFIG=mipsel-linux-android
- ;;
- *)
- GNU_CONFIG="$ARCH-linux-android"
- ;;
-esac
-
-# Generate standalone NDK toolchain installation
-NDK_STANDALONE="$TMPDIR/ndk-$ARCH-toolchain"
-echo "Generating NDK standalone toolchain installation"
-mkdir -p "$NDK_STANDALONE"
-# NOTE: The --platform=android-9 is required to provide <regex.h> for GTest.
-run "$NDK_DIR/build/tools/make-standalone-toolchain.sh" \
- --arch="$ARCH" \
- --platform=android-9 \
- --install-dir="$NDK_STANDALONE"
-fail_panic "Can't generate standalone NDK toolchain installation!"
-
-# Rebuild the client library, processor and tools with the auto-tools based
-# build system. Even though it's not going to be used, this checks that this
-# still works correctly.
-echo "Building full Android binaries with configure/make"
-TMPTARGET="$TMPDIR/target-local"
-(
- PATH="$NDK_STANDALONE/bin:$PATH"
- run mkdir "$TMPTARGET" &&
- run mkdir "$TMPDIR"/build-target &&
- run cd "$TMPDIR"/build-target &&
- run2 "$PROGDIR"/../configure --prefix="$TMPTARGET" \
- --host="$GNU_CONFIG" &&
- run2 make -j$NUM_JOBS install
-)
-fail_panic "Could not rebuild Android binaries!"
-
-# Build and/or run unit test suite.
-# If --no-device is used, only rebuild it, otherwise, run in on the
-# connected device.
-if [ "$NO_DEVICE" ]; then
- ACTION="Building"
- # This is a trick to force the Makefile to ignore running the scripts.
- TESTS_ENVIRONMENT="TESTS_ENVIRONMENT=true"
-else
- ACTION="Running"
- TESTS_ENVIRONMENT=
-fi
-
-(
- PATH="$NDK_STANDALONE/bin:$PATH"
- run cd "$TMPDIR"/build-target &&
- # Reconfigure to only run the client unit test suite.
- # This one should _never_ fail.
- dump "$ACTION Android client library unit tests."
- run2 "$PROGDIR"/../configure --prefix="$TMPTARGET" \
- --host="$GNU_CONFIG" \
- --disable-tools \
- --disable-processor &&
- run make -j$NUM_JOBS check $TESTS_ENVIRONMENT || exit $?
-
- if [ "$ALL_TESTS" ]; then
- dump "$ACTION Tools and processor unit tests."
- # Reconfigure to run the processor and tools tests.
- # Most of these fail for now, so do not worry about it.
- run2 "$PROGDIR"/../configure --prefix="$TMPTARGET" \
- --host="$GNU_CONFIG" &&
- run make -j$NUM_JOBS check $TESTS_ENVIRONMENT
- if [ $? != 0 ]; then
- dump "Tools and processor unit tests failed as expected. \
-Use --verbose for results."
- fi
- fi
-)
-fail_panic "Client library unit test suite failed!"
-
-# Copy sources to temporary directory
-PROJECT_DIR=$TMPDIR/project
-dump "Copying test program sources to: $PROJECT_DIR"
-run cp -r "$TESTAPP_DIR" "$PROJECT_DIR" &&
-run rm -rf "$PROJECT_DIR/obj" &&
-run rm -rf "$PROJECT_DIR/libs"
-fail_panic "Could not copy test program sources to: $PROJECT_DIR"
-
-# Build the test program with ndk-build.
-dump "Building test program with ndk-build"
-export NDK_MODULE_PATH="$PROGDIR"
-NDK_BUILD_FLAGS="-j$NUM_JOBS"
-if verbosity_is_higher_than 1; then
- NDK_BUILD_FLAGS="$NDK_BUILD_FLAGS NDK_LOG=1 V=1"
-fi
-run "$NDK_DIR/ndk-build" -C "$PROJECT_DIR" $NDK_BUILD_FLAGS APP_ABI=$ABI
-fail_panic "Can't build test program!"
-
-# Unless --no-device was used, stop right here if ADB isn't in the path,
-# or there is no connected device.
-if [ "$NO_DEVICE" ]; then
- dump "Done. Please connect a device to run all tests!"
- clean_exit 0
-fi
-
-# Push the program to the device.
-TESTAPP=test_google_breakpad
-TESTAPP_FILE="$PROJECT_DIR/libs/$ABI/test_google_breakpad"
-if [ ! -f "$TESTAPP_FILE" ]; then
- panic "Device requires '$ABI' binaries. None found!"
-fi
-
-# Run the program there
-dump "Installing test program on device"
-DEVICE_TMP=/data/local/tmp
-adb_push "$TESTAPP_FILE" "$DEVICE_TMP/"
-fail_panic "Cannot push test program to device!"
-
-dump "Running test program on device"
-adb_shell cd "$DEVICE_TMP" "&&" ./$TESTAPP > "$CRASH_LOG" 2>/dev/null
-if [ $? = 0 ]; then
- panic "Test program did *not* crash as expected!"
-fi
-if verbosity_is_higher_than 0; then
- echo -n "Crash log: "
- cat "$CRASH_LOG"
-fi
-
-# Extract minidump from device
-MINIDUMP_NAME=$(awk '$1 == "Dump" && $2 == "path:" { print $3; }' "$CRASH_LOG")
-MINIDUMP_NAME=$(basename "$MINIDUMP_NAME")
-if [ -z "$MINIDUMP_NAME" ]; then
- panic "Test program didn't write minidump properly!"
-fi
-
-dump "Extracting minidump: $MINIDUMP_NAME"
-adb_pull "$DEVICE_TMP/$MINIDUMP_NAME" .
-fail_panic "Can't extract minidump!"
-
-dump "Parsing test program symbols"
-if verbosity_is_higher_than 1; then
- log "COMMAND: $TMPBIN/dump_syms \
- $PROJECT_DIR/obj/local/$ABI/$TESTAPP >$TESTAPP.sym"
-fi
-"$TMPBIN/dump_syms" "$PROJECT_DIR/obj/local/$ABI/$TESTAPP" > $TESTAPP.sym
-fail_panic "dump_syms doesn't work!"
-
-VERSION=$(awk '$1 == "MODULE" { print $4; }' $TESTAPP.sym)
-dump "Found module version: $VERSION"
-if [ -z "$VERSION" ]; then
- echo "ERROR: Can't find proper module version from symbol dump!"
- head -n5 $TESTAPP.sym
- clean_exit 1
-fi
-
-run mkdir -p "$TMPDIR/symbols/$TESTAPP/$VERSION"
-run mv $TESTAPP.sym "$TMPDIR/symbols/$TESTAPP/$VERSION/"
-
-dump "Generating stack trace"
-# Don't use 'run' to be able to send stdout and stderr to two different files.
-log "COMMAND: $TMPBIN/minidump_stackwalk $MINIDUMP_NAME symbols"
-"$TMPBIN/minidump_stackwalk" $MINIDUMP_NAME \
- "$TMPDIR/symbols" \
- > "$BUILD_LOG" 2>>"$RUN_LOG"
-fail_panic "minidump_stackwalk doesn't work!"
-
-dump "Checking stack trace content"
-
-if verbosity_is_higher_than 1; then
- cat "$BUILD_LOG"
-fi
-
-# The generated stack trace should look like the following:
-#
-# Thread 0 (crashed)
-# 0 test_google_breakpad!crash [test_breakpad.cpp : 17 + 0x4]
-# r4 = 0x00015530 r5 = 0xbea2cbe4 r6 = 0xffffff38 r7 = 0xbea2cb5c
-# r8 = 0x00000000 r9 = 0x00000000 r10 = 0x00000000 fp = 0x00000000
-# sp = 0xbea2cb50 lr = 0x00009025 pc = 0x00008f84
-# Found by: given as instruction pointer in context
-# 1 test_google_breakpad!main [test_breakpad.cpp : 25 + 0x3]
-# r4 = 0x00015530 r5 = 0xbea2cbe4 r6 = 0xffffff38 r7 = 0xbea2cb5c
-# r8 = 0x00000000 r9 = 0x00000000 r10 = 0x00000000 fp = 0x00000000
-# sp = 0xbea2cb50 pc = 0x00009025
-# Found by: call frame info
-# 2 libc.so + 0x164e5
-# r4 = 0x00008f64 r5 = 0xbea2cc34 r6 = 0x00000001 r7 = 0xbea2cc3c
-# r8 = 0x00000000 r9 = 0x00000000 r10 = 0x00000000 fp = 0x00000000
-# sp = 0xbea2cc18 pc = 0x400c34e7
-# Found by: call frame info
-# ...
-#
-# The most important part for us is ensuring that the source location could
-# be extracted, so look at the 'test_breakpad.cpp' references here.
-#
-# First, extract all the lines with test_google_breakpad! in them, and
-# dump the corresponding crash location.
-#
-# Note that if the source location can't be extracted, the second field
-# will only be 'test_google_breakpad' without the exclamation mark.
-#
-LOCATIONS=$(awk '$2 ~ "^test_google_breakpad!.*" { print $3; }' "$BUILD_LOG")
-
-if [ -z "$LOCATIONS" ]; then
- if verbosity_is_lower_than 1; then
- cat "$BUILD_LOG"
- fi
- panic "No source location found in stack trace!"
-fi
-
-# Now check that they all match "[<source file>"
-BAD_LOCATIONS=
-for LOCATION in $LOCATIONS; do
- case $LOCATION in
- # Escape the opening bracket, or some shells like Dash will not
- # match them properly.
- \[*.cpp|\[*.cc|\[*.h) # These are valid source locations in our executable
- ;;
- *) # Everything else is not!
- BAD_LOCATIONS="$BAD_LOCATIONS $LOCATION"
- ;;
- esac
-done
-
-if [ "$BAD_LOCATIONS" ]; then
- dump "ERROR: Generated stack trace doesn't contain valid source locations:"
- cat "$BUILD_LOG"
- echo "Bad locations are: $BAD_LOCATIONS"
- exit 1
-fi
-
-echo "All clear! Congratulations."
-
diff --git a/toolkit/crashreporter/google-breakpad/android/sample_app/README b/toolkit/crashreporter/google-breakpad/android/sample_app/README
deleted file mode 100644
index aa19dbb44..000000000
--- a/toolkit/crashreporter/google-breakpad/android/sample_app/README
+++ /dev/null
@@ -1,32 +0,0 @@
-This is a sample Android executable that can be used to test the
-Google Breakpad client library on Android.
-
-Its purpose is simply to crash and generate a minidump under /data/local/tmp.
-
-Build instructions:
-
- cd android/sample_app
- $NDK/ndk-build
-
- Where $NDK points to a valid Android NDK installation.
-
-Usage instructions:
-
- After buildind the test program, send it to a device, then run it as
- the shell UID:
-
- adb push libs/armeabi/test_google_breakpad /data/local/tmp
- adb shell /data/local/tmp/test_google_breakpad
-
- This will simply crash after dumping the name of the generated minidump
- file.
-
- See jni/test_breakpad.cpp for details.
-
- Use 'armeabi-v7a' instead of 'armeabi' above to test the ARMv7-A version
- of the binary.
-
-Note:
- If you plan to use the library in a regular Android application, store
- the minidump files either to your app-specific directory, or to the SDCard
- (the latter requiring a specific permission).
diff --git a/toolkit/crashreporter/google-breakpad/android/sample_app/jni/Android.mk b/toolkit/crashreporter/google-breakpad/android/sample_app/jni/Android.mk
deleted file mode 100644
index 61487b52c..000000000
--- a/toolkit/crashreporter/google-breakpad/android/sample_app/jni/Android.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2012, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := test_google_breakpad
-LOCAL_SRC_FILES := test_breakpad.cpp
-LOCAL_STATIC_LIBRARIES += breakpad_client
-include $(BUILD_EXECUTABLE)
-
-# If NDK_MODULE_PATH is defined, import the module, otherwise do a direct
-# includes. This allows us to build in all scenarios easily.
-ifneq ($(NDK_MODULE_PATH),)
- $(call import-module,google_breakpad)
-else
- include $(LOCAL_PATH)/../../google_breakpad/Android.mk
-endif
diff --git a/toolkit/crashreporter/google-breakpad/android/sample_app/jni/Application.mk b/toolkit/crashreporter/google-breakpad/android/sample_app/jni/Application.mk
deleted file mode 100644
index 9728017d3..000000000
--- a/toolkit/crashreporter/google-breakpad/android/sample_app/jni/Application.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2012, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-APP_STL := stlport_static
-APP_ABI := all
-APP_CXXFLAGS := -std=c++11 -D__STDC_LIMIT_MACROS
diff --git a/toolkit/crashreporter/google-breakpad/android/sample_app/jni/test_breakpad.cpp b/toolkit/crashreporter/google-breakpad/android/sample_app/jni/test_breakpad.cpp
deleted file mode 100644
index 9c4ebbb14..000000000
--- a/toolkit/crashreporter/google-breakpad/android/sample_app/jni/test_breakpad.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright (c) 2012, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#include <stdio.h>
-
-#include "client/linux/handler/exception_handler.h"
-#include "client/linux/handler/minidump_descriptor.h"
-
-namespace {
-
-bool DumpCallback(const google_breakpad::MinidumpDescriptor& descriptor,
- void* context,
- bool succeeded) {
- printf("Dump path: %s\n", descriptor.path());
- return succeeded;
-}
-
-void Crash() {
- volatile int* a = reinterpret_cast<volatile int*>(NULL);
- *a = 1;
-}
-
-} // namespace
-
-int main(int argc, char* argv[]) {
- google_breakpad::MinidumpDescriptor descriptor(".");
- google_breakpad::ExceptionHandler eh(descriptor, NULL, DumpCallback,
- NULL, true, -1);
- Crash();
- return 0;
-}
diff --git a/toolkit/crashreporter/google-breakpad/android/test-driver b/toolkit/crashreporter/google-breakpad/android/test-driver
deleted file mode 100755
index eaaac6b29..000000000
--- a/toolkit/crashreporter/google-breakpad/android/test-driver
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/sh
-# test-driver - basic testsuite driver script.
-
-# Slightly modified for Android, see ANDROID comment below.
-
-scriptversion=2012-06-27.10; # UTC
-
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# This file is maintained in Automake, please report
-# bugs to <bug-automake@gnu.org> or send patches to
-# <automake-patches@gnu.org>.
-
-# Make unconditional expansion of undefined variables an error. This
-# helps a lot in preventing typo-related bugs.
-set -u
-
-usage_error ()
-{
- echo "$0: $*" >&2
- print_usage >&2
- exit 2
-}
-
-print_usage ()
-{
- cat <<END
-Usage:
- test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
- [--expect-failure={yes|no}] [--color-tests={yes|no}]
- [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
-The '--test-name', '--log-file' and '--trs-file' options are mandatory.
-END
-}
-
-# TODO: better error handling in option parsing (in particular, ensure
-# TODO: $log_file, $trs_file and $test_name are defined).
-test_name= # Used for reporting.
-log_file= # Where to save the output of the test script.
-trs_file= # Where to save the metadata of the test run.
-expect_failure=no
-color_tests=no
-enable_hard_errors=yes
-while test $# -gt 0; do
- case $1 in
- --help) print_usage; exit $?;;
- --version) echo "test-driver $scriptversion"; exit $?;;
- --test-name) test_name=$2; shift;;
- --log-file) log_file=$2; shift;;
- --trs-file) trs_file=$2; shift;;
- --color-tests) color_tests=$2; shift;;
- --expect-failure) expect_failure=$2; shift;;
- --enable-hard-errors) enable_hard_errors=$2; shift;;
- --) shift; break;;
- -*) usage_error "invalid option: '$1'";;
- esac
- shift
-done
-
-if test $color_tests = yes; then
- # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
- red='' # Red.
- grn='' # Green.
- lgn='' # Light green.
- blu='' # Blue.
- mgn='' # Magenta.
- std='' # No color.
-else
- red= grn= lgn= blu= mgn= std=
-fi
-
-do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
-trap "st=129; $do_exit" 1
-trap "st=130; $do_exit" 2
-trap "st=141; $do_exit" 13
-trap "st=143; $do_exit" 15
-
-# Test script is run here.
-# ANDROID: old line was: "$@" > $log_file 2>&1
-progdir=$(dirname "$0")
-"$progdir/test-shell.sh" "$@" > $log_file 2>&1
-estatus=$?
-if test $enable_hard_errors = no && test $estatus -eq 99; then
- estatus=1
-fi
-
-case $estatus:$expect_failure in
- 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
- 0:*) col=$grn res=PASS recheck=no gcopy=no;;
- 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
- 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
- *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
- *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
-esac
-
-# Report outcome to console.
-echo "${col}${res}${std}: $test_name"
-
-# Register the test result, and other relevant metadata.
-echo ":test-result: $res" > $trs_file
-echo ":global-test-result: $res" >> $trs_file
-echo ":recheck: $recheck" >> $trs_file
-echo ":copy-in-global-log: $gcopy" >> $trs_file
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/toolkit/crashreporter/google-breakpad/android/test-shell.sh b/toolkit/crashreporter/google-breakpad/android/test-shell.sh
deleted file mode 100755
index 3677d8755..000000000
--- a/toolkit/crashreporter/google-breakpad/android/test-shell.sh
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2012 Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# A special shell wrapper that can be used to run the Google Breakpad unit
-# tests on a connected Android device.
-#
-# This is designed to be called from the Makefile during 'make check'
-#
-
-PROGDIR=$(dirname "$0")
-PROGNAME=$(basename "$0")
-. $PROGDIR/common-functions.sh
-
-# Extract test program name first.
-TEST_PROGRAM=$1
-shift
-
-if [ -z "$TEST_PROGRAM" ]; then
- panic "No test program/script name on the command-line!"
-fi
-
-if [ ! -f "$TEST_PROGRAM" ]; then
- panic "Can't find test program/script: $TEST_PROGRAM"
-fi
-
-# Create test directory on the device
-TEST_DIR=/data/local/tmp/test-google-breakpad-$$
-adb_shell mkdir "$TEST_DIR" ||
- panic "Can't create test directory on device: $TEST_DIR"
-
-# Ensure that it is always removed when the script exits.
-clean_test_dir () {
- # Don't care about success/failure, use '$ADB shell' directly.
- adb_shell rm -r "$TEST_DIR"
-}
-
-atexit clean_test_dir
-
-TEST_PROGRAM_NAME=$(basename "$TEST_PROGRAM")
-TEST_PROGRAM_DIR=$(dirname "$TEST_PROGRAM")
-
-# Handle special case(s) here.
-DATA_FILES=
-case $TEST_PROGRAM_NAME in
- linux_client_unittest)
- # linux_client_unittest will call another executable at runtime, ensure
- # it is installed too.
- adb_install "$TEST_PROGRAM_DIR/linux_dumper_unittest_helper" "$TEST_DIR"
- # linux_client_unittest loads a shared library at runtime, ensure it is
- # installed too.
- adb_install "$TEST_PROGRAM_DIR/linux_client_unittest_shlib" "$TEST_DIR"
- ;;
- basic_source_line_resolver_unittest)
- DATA_FILES="module1.out \
- module2.out \
- module3_bad.out \
- module4_bad.out"
- ;;
- exploitability_unittest)
- DATA_FILES="scii_read_av.dmp \
- ascii_read_av_block_write.dmp \
- ascii_read_av_clobber_write.dmp \
- ascii_read_av_conditional.dmp \
- ascii_read_av_non_null.dmp \
- ascii_read_av_then_jmp.dmp \
- ascii_read_av_xchg_write.dmp \
- ascii_write_av.dmp \
- ascii_write_av_arg_to_call.dmp \
- exec_av_on_stack.dmp \
- null_read_av.dmp \
- null_write_av.dmp \
- read_av.dmp \
- null_read_av.dmp \
- write_av_non_null.dmp"
- ;;
- fast_source_line_resolver_unittest)
- DATA_FILES="module0.out \
- module1.out \
- module2.out \
- module3_bad.out \
- module4_bad.out"
- ;;
- minidump_processor_unittest|minidump_unittest)
- DATA_FILES="src/processor/testdata/minidump2.dmp"
- ;;
-esac
-
-# Install the data files, their path is relative to the environment
-# variable 'srcdir'
-for FILE in $DATA_FILES; do
- FILEDIR=src/processor/testdata/$(dirname "$FILE")
- adb_shell mkdir -p "$TEST_DIR/$FILEDIR"
- adb_install "${srcdir:-.}/$FILE" "$TEST_DIR"/"$FILE"
-done
-
-# Copy test program to device
-adb_install "$TEST_PROGRAM" "$TEST_DIR"
-
-# Run it
-adb_shell "cd $TEST_DIR && LD_LIBRARY_PATH=. ./$TEST_PROGRAM_NAME $@"
-
-# Note: exiting here will call cleanup_exit which will remove the temporary
-# files from the device.