You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.2 KiB
149 lines
4.2 KiB
_lite_test_general() {
|
|
usage="
|
|
Usage: $0 [-c CLASSNAME] [-d] [-a | -i] [-e], where
|
|
|
|
-c CLASSNAME Run tests only for the specified class/method. CLASSNAME
|
|
should be of the form SomeClassTest or SomeClassTest#testMethod.
|
|
-d Waits for a debugger to attach before starting to run tests.
|
|
-i Rebuild and reinstall the test apk before running tests (mmm).
|
|
-a Rebuild all dependencies and reinstall the test apk before/
|
|
running tests (mmma).
|
|
-e Run code coverage. Coverage will be output into the coverage/
|
|
directory in the repo root.
|
|
-g Run build commands with USE_GOMA=true
|
|
-h This help message.
|
|
"
|
|
|
|
local OPTIND=1
|
|
local class=
|
|
local project=
|
|
local install=false
|
|
local installwdep=false
|
|
local debug=false
|
|
local coverage=false
|
|
local goma=false
|
|
|
|
while getopts "c:p:hadieg" opt; do
|
|
case "$opt" in
|
|
h)
|
|
echo "$usage"
|
|
return 0;;
|
|
\?)
|
|
echo "$usage"
|
|
return 0;;
|
|
c)
|
|
class=$OPTARG;;
|
|
d)
|
|
debug=true;;
|
|
i)
|
|
install=true;;
|
|
a)
|
|
install=true
|
|
installwdep=true;;
|
|
e)
|
|
coverage=true;;
|
|
g)
|
|
goma=true;;
|
|
p)
|
|
project=$OPTARG;;
|
|
esac
|
|
done
|
|
|
|
local build_dir=
|
|
local apk_loc=
|
|
local package_prefix=
|
|
local instrumentation=
|
|
case "$project" in
|
|
"telecom")
|
|
build_dir="packages/services/Telecomm/tests"
|
|
apk_loc="data/app/TelecomUnitTests/TelecomUnitTests.apk"
|
|
package_prefix="com.android.server.telecom.tests"
|
|
instrumentation="androidx.test.runner.AndroidJUnitRunner";;
|
|
"telephony")
|
|
build_dir="frameworks/opt/telephony/tests/"
|
|
apk_loc="data/app/FrameworksTelephonyTests/FrameworksTelephonyTests.apk"
|
|
package_prefix="com.android.frameworks.telephonytests"
|
|
instrumentation="androidx.test.runner.AndroidJUnitRunner";;
|
|
esac
|
|
|
|
local T=$(gettop)
|
|
|
|
if [ $install = true ] ; then
|
|
local olddir=$(pwd)
|
|
local emma_opt=
|
|
local goma_opt=
|
|
|
|
cd $T
|
|
# Build and exit script early if build fails
|
|
|
|
if [ $coverage = true ] ; then
|
|
emma_opt="EMMA_INSTRUMENT=true LOCAL_EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true"
|
|
else
|
|
emma_opt="EMMA_INSTRUMENT=false"
|
|
fi
|
|
|
|
if [ $goma = true ] ; then
|
|
goma_opt="USE_GOMA=true"
|
|
fi
|
|
|
|
if [ $installwdep = true ] ; then
|
|
(export ${emma_opt}; mmma ${goma_opt} -j40 "$build_dir")
|
|
else
|
|
(export ${emma_opt}; mmm ${goma_opt} "$build_dir")
|
|
fi
|
|
if [ $? -ne 0 ] ; then
|
|
echo "Make failed! try using -a instead of -i if building with coverage"
|
|
return
|
|
fi
|
|
|
|
# Strip off any possible aosp_ prefix from the target product
|
|
local canonical_product=$(sed 's/^aosp_//' <<< "$TARGET_PRODUCT")
|
|
|
|
adb install -r -t "out/target/product/$canonical_product/$apk_loc"
|
|
if [ $? -ne 0 ] ; then
|
|
cd "$olddir"
|
|
return $?
|
|
fi
|
|
cd "$olddir"
|
|
fi
|
|
|
|
local e_options=""
|
|
if [ -n "$class" ] ; then
|
|
if [[ "$class" =~ "\." ]] ; then
|
|
e_options="${e_options} -e class ${class}"
|
|
else
|
|
e_options="${e_options} -e class ${package_prefix}.${class}"
|
|
fi
|
|
fi
|
|
if [ $debug = true ] ; then
|
|
e_options="${e_options} -e debug 'true'"
|
|
fi
|
|
if [ $coverage = true ] && [ $project =~ "telecom" ] ; then
|
|
e_options="${e_options} -e coverage 'true'"
|
|
fi
|
|
adb shell am instrument --no-hidden-api-checks ${e_options} -w "$package_prefix/$instrumentation"
|
|
|
|
# Code coverage only enabled for Telecom.
|
|
if [ $coverage = true ] && [ $project =~ "telecom" ] ; then
|
|
adb root
|
|
adb wait-for-device
|
|
adb pull /data/user/0/com.android.server.telecom.tests/files/coverage.ec /tmp/
|
|
if [ ! -d "$T/coverage" ] ; then
|
|
mkdir -p "$T/coverage"
|
|
fi
|
|
java -jar "$T/prebuilts/sdk/tools/jack-jacoco-reporter.jar" \
|
|
--report-dir "$T/coverage/" \
|
|
--metadata-file "$T/out/target/common/obj/APPS/TelecomUnitTests_intermediates/coverage.em" \
|
|
--coverage-file "/tmp/coverage.ec" \
|
|
--source-dir "$T/packages/services/Telecomm/src/"
|
|
fi
|
|
}
|
|
|
|
lite_test_telecom() {
|
|
_lite_test_general -p telecom $@
|
|
}
|
|
|
|
lite_test_telephony() {
|
|
_lite_test_general -p telephony $@
|
|
}
|