Create a build_all_unit_tests.sh script

bug: 163163467
test: ./build_all_unit_tests.sh
      ./build_and_run_all_unit_tests.sh

Merge from: go/wvgerrit/116524

Change-Id: I5eaf5ed34b46445d23530ca0edca94bfaeb3abaf
This commit is contained in:
Jeff Tinker
2021-02-09 12:10:31 -08:00
parent e77b029214
commit bcc3313828
2 changed files with 116 additions and 111 deletions

View File

@@ -0,0 +1,112 @@
#!/bin/sh
set -e
if [ -z "$ANDROID_BUILD_TOP" ]; then
echo "Android build environment not set"
exit -1
fi
# Read arguments in case the user wants to do a multicore build or
# copy files to a specific android device by providing a serial number
NUM_CORES=1
SERIAL_NUM=""
while getopts "j:s:" opt; do
case $opt in
j)
NUM_CORES=$OPTARG
;;
s)
SERIAL_NUM="-s $OPTARG"
;;
esac
done
# Define the relevant aliases
. $ANDROID_BUILD_TOP/build/envsetup.sh
# Build all the targets
# This list is slightly longer than the one in run_all_unit_tests.sh because
# it does not run very long tests or tests needing special setup.
WV_TEST_TARGETS="base64_test \
buffer_reader_test \
cdm_engine_test \
cdm_engine_metrics_decorator_unittest \
cdm_feature_test \
cdm_extended_duration_test \
cdm_session_unittest \
certificate_provisioning_unittest \
counter_metric_unittest \
crypto_session_unittest \
device_files_unittest \
distribution_unittest \
duration_use_case_test \
event_metric_unittest \
file_store_unittest \
file_utils_unittest \
generic_crypto_unittest \
hidl_metrics_adapter_unittest \
http_socket_test \
initialization_data_unittest \
libwvdrmdrmplugin_hidl_test \
libwvdrmdrmplugin_test \
libwvdrmengine_hidl_test \
libwvdrmengine_test \
libwvdrmmediacrypto_hidl_test \
libwvdrmmediacrypto_test \
license_keys_unittest \
license_unittest \
metrics_collections_unittest \
oemcrypto_test \
odk_test \
policy_engine_constraints_unittest \
policy_engine_unittest \
policy_integration_test \
request_license_test \
rw_lock_test \
service_certificate_unittest \
timer_unittest \
usage_table_header_unittest \
value_metric_unittest \
wv_cdm_metrics_test"
cd $ANDROID_BUILD_TOP
pwd
m -j $NUM_CORES $WV_TEST_TARGETS
# Detect the device and check if Verity is going to stop the script from working
echo "waiting for device"
ADB_OUTPUT=`adb $SERIAL_NUM root && echo ". " && adb $SERIAL_NUM wait-for-device remount`
echo $ADB_OUTPUT
if echo $ADB_OUTPUT | grep -qi "verity"; then
echo
echo "ERROR: This device has Verity enabled. build_and_run_all_unit_tests.sh "
echo "does not work if Verity is enabled. Please disable Verity with"
echo "\"adb $SERIAL_NUM disable-verity\" and try again."
exit -1
fi
# Push the files to the device
# Given a local path to a file, this will try to push it to /data/nativetest.
# If that fails, an error message will be printed.
try_adb_push() {
# android-tests.zip requires /data/nativetest, we should use the same
if [ -f $OUT/data/nativetest/$1 ]; then
test_file=$OUT/data/nativetest/$1
elif [ -f $OUT/data/nativetest/vendor/$1/$1 ]; then
test_file=$OUT/data/nativetest/vendor/$1/$1
else
echo "I cannot find $1"
echo "I think it should be in $OUT/data/nativetest"
exit 1
fi
adb $SERIAL_NUM shell mkdir -p /data/nativetest
adb $SERIAL_NUM push $test_file /data/nativetest/$1
}
# Push the tests to the device
for f in $WV_TEST_TARGETS; do
try_adb_push $f
done

View File

@@ -1,116 +1,9 @@
#!/bin/sh
set -e
if [ -z "$ANDROID_BUILD_TOP" ]; then
echo "Android build environment not set"
exit -1
fi
# Read arguments in case the user wants to do a multicore build or
# copy files to a specific android device by providing a serial number
NUM_CORES=1
SERIAL_NUM=""
while getopts "j:s:" opt; do
case $opt in
j)
NUM_CORES=$OPTARG
;;
s)
SERIAL_NUM="-s $OPTARG"
;;
esac
done
# Define the relevant aliases
. $ANDROID_BUILD_TOP/build/envsetup.sh
# Build all the targets
# This list is slightly longer than the one in run_all_unit_tests.sh because
# it does not run very long tests or tests needing special setup.
WV_TEST_TARGETS="base64_test \
buffer_reader_test \
cdm_engine_test \
cdm_engine_metrics_decorator_unittest \
cdm_feature_test \
cdm_extended_duration_test \
cdm_session_unittest \
certificate_provisioning_unittest \
counter_metric_unittest \
crypto_session_unittest \
device_files_unittest \
distribution_unittest \
duration_use_case_test \
event_metric_unittest \
file_store_unittest \
file_utils_unittest \
generic_crypto_unittest \
hidl_metrics_adapter_unittest \
http_socket_test \
initialization_data_unittest \
libwvdrmdrmplugin_hidl_test \
libwvdrmdrmplugin_test \
libwvdrmengine_hidl_test \
libwvdrmengine_test \
libwvdrmmediacrypto_hidl_test \
libwvdrmmediacrypto_test \
license_keys_unittest \
license_unittest \
metrics_collections_unittest \
oemcrypto_test \
odk_test \
policy_engine_constraints_unittest \
policy_engine_unittest \
policy_integration_test \
request_license_test \
rw_lock_test \
service_certificate_unittest \
timer_unittest \
usage_table_header_unittest \
value_metric_unittest \
wv_cdm_metrics_test"
cd $ANDROID_BUILD_TOP
pwd
m -j $NUM_CORES $WV_TEST_TARGETS
# Detect the device and check if Verity is going to stop the script from working
echo "waiting for device"
ADB_OUTPUT=`adb $SERIAL_NUM root && echo ". " && adb $SERIAL_NUM wait-for-device remount`
echo $ADB_OUTPUT
if echo $ADB_OUTPUT | grep -qi "verity"; then
echo
echo "ERROR: This device has Verity enabled. build_and_run_all_unit_tests.sh "
echo "does not work if Verity is enabled. Please disable Verity with"
echo "\"adb $SERIAL_NUM disable-verity\" and try again."
exit -1
fi
# Push the files to the device
# Given a local path to a file, this will try to push it to /data/nativetest.
# If that fails, an error message will be printed.
try_adb_push() {
# android-tests.zip requires /data/nativetest, we should use the same
if [ -f $OUT/data/nativetest/$1 ]; then
test_file=$OUT/data/nativetest/$1
elif [ -f $OUT/data/nativetest/vendor/$1/$1 ]; then
test_file=$OUT/data/nativetest/vendor/$1/$1
else
echo "I cannot find $1"
echo "I think it should be in $OUT/data/nativetest"
exit 1
fi
adb $SERIAL_NUM shell mkdir -p /data/nativetest
adb $SERIAL_NUM push $test_file /data/nativetest/$1
}
# Push the tests to the device
for f in $WV_TEST_TARGETS; do
try_adb_push $f
done
# Build the tests using build_all_unit_tests.sh
cd $ANDROID_BUILD_TOP/vendor/widevine/libwvdrmengine
./build_all_unit_tests.sh "$@"
# Run the tests using run_all_unit_tests.sh
cd $ANDROID_BUILD_TOP/vendor/widevine/libwvdrmengine
./run_all_unit_tests.sh $SERIAL_NUM
./run_all_unit_tests.sh "$@"