[ Merge of http://go/wvgerrit/156997 ] Several of the Android integration tests perform direct URL comparisons between fixed URLs and the server URL returned by the CDM. With provisioning 4.0, the CDM will append additional query parameters to the server URL. This updated URL still contains all of the original expected information, but with additional parameters. So long as the URL contains the required fields, any additional parameter should be considered valid. The gtest framework used by the integration tests allow for the creation of custom "matchers", rules that can be used to validate data and create informative failure logs. The CL creates a new matcher for checking that a tested URL is a superset of content of the expected URL. Bug: 244319313 Test: request_license_test on prov 4 device Change-Id: Ie721058fa628b3a4a74dc56f4172a3dfcb1f1ef3
122 lines
3.4 KiB
Bash
Executable File
122 lines
3.4 KiB
Bash
Executable File
#!/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.
|
|
# The default build target is for AIDL service, use "-t hidl" to
|
|
# build for HIDL service.
|
|
WV_UNITTESTS_BUILD_TARGET=""
|
|
NUM_CORES=1
|
|
SERIAL_NUM=""
|
|
while getopts "j:s:t:" opt; do
|
|
case $opt in
|
|
j)
|
|
NUM_CORES=$OPTARG
|
|
;;
|
|
s)
|
|
SERIAL_NUM="-s $OPTARG"
|
|
;;
|
|
t)
|
|
WV_UNITTESTS_BUILD_TARGET="WV_UNITTESTS_BUILD_TARGET=$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_UNITTESTS="base64_test \
|
|
buffer_reader_test \
|
|
cdm_coverage_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 \
|
|
hal_metrics_adapter_unittest \
|
|
http_socket_test \
|
|
initialization_data_unittest \
|
|
keybox_ota_test \
|
|
libwvdrmdrmplugin_hal_test \
|
|
libwvdrmengine_hal_test \
|
|
libwvdrmmediacrypto_hal_test \
|
|
license_keys_unittest \
|
|
license_unittest \
|
|
metrics_collections_unittest \
|
|
oemcrypto_test \
|
|
odk_test \
|
|
okp_fallback_policy_test \
|
|
ota_keybox_provisioner_test \
|
|
policy_engine_constraints_unittest \
|
|
policy_engine_unittest \
|
|
policy_integration_test \
|
|
reboot_test \
|
|
request_license_test \
|
|
rw_lock_test \
|
|
service_certificate_unittest \
|
|
system_id_extractor_unittest \
|
|
timer_unittest \
|
|
usage_table_header_unittest \
|
|
value_metric_unittest \
|
|
wv_cdm_metrics_test"
|
|
|
|
cd $ANDROID_BUILD_TOP
|
|
pwd
|
|
m -j $NUM_CORES $WV_UNITTESTS $WV_UNITTESTS_BUILD_TARGET
|
|
|
|
|
|
# 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_UNITTESTS; do
|
|
try_adb_push $f
|
|
done
|