#!/bin/sh
# Copyright (C) 2014 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.
#
# acov is a tool for gathering coverage information from a device and generating
# a report from that information. To use:
#
# 1. sudo apt-get install lcov
# 2. Build application/library with coverage information.
# * make NATIVE_COVERAGE=true NATIVE_COVERAGE_PATHS='*'
# 3. Push the new binaries to the device with adb sync.
# (Optional): Run `acov --clean-device`. This will reset coverage for everything
# on the device.
# 4. Run tests.
# (Optional): Run `acov --flush`. This will dump coverage from all processes
# running on the device.
# 5. Run `acov`.
#
# acov will pull all coverage information from the device, push it to the right
# directories, run lcov, and display the coverage report (currently by opening
# it in your browser).
#
if [ "$CLANG_COVERAGE" == "true" ]; then
echo "CLANG_COVERAGE is set. Use development/scripts/acov-llvm.py instead."
exit 0
fi
function clearGcdaFiles() { if [ -d "$ANDROID_OUT" ]; then
find $ANDROID_OUT -name '*.gcda' -delete
fi
}
function clearGcnoFiles() { if [ -d "$ANDROID_OUT" ]; then
find $ANDROID_OUT -name '*.gcno' -delete
fi
}
if [ "$1" = "--clean" ]; then
echo "Clearing gcda and gcno files from the local build."
clearGcdaFiles
clearGcnoFiles
exit 0
fi
if [ "$1" = "--prep" ]; then
echo "Clearing gcda files from the local build."
clearGcdaFiles
exit 0
fi
adb root
if [ "$1" = "--clean-device" ]; then
echo "Resetting coverage on the device..."
adb shell kill -37 -1
echo "Waiting $FLUSH_SLEEP seconds for coverage to be written..."
sleep $FLUSH_SLEEP
adb shell rm -rf /data/misc/trace/* exit0 fi
if["$1"="--flush"];then shift if[-z$@];then echo"Flushingcoverageforallprocessesonthedevice..." adbshellkill-37-1 else echo"Flushingcoveragefor[$@]onthedevice..." adbshellkill-37$(adbshellpidof$@) fi echo"Waiting$FLUSH_SLEEPsecondsforcoveragetobewritten..." sleep$FLUSH_SLEEP exit0 fi
whichlcov>/dev/null2>/dev/null if[$?-ne0];then echo'lcovnotfound:running`sudoapt-getinstalllcov`' sudoapt-getinstalllcov fi
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.