summaryrefslogtreecommitdiff
path: root/automated/android/cts/cts.sh
diff options
context:
space:
mode:
Diffstat (limited to 'automated/android/cts/cts.sh')
-rwxr-xr-xautomated/android/cts/cts.sh84
1 files changed, 84 insertions, 0 deletions
diff --git a/automated/android/cts/cts.sh b/automated/android/cts/cts.sh
new file mode 100755
index 0000000..86b4dd2
--- /dev/null
+++ b/automated/android/cts/cts.sh
@@ -0,0 +1,84 @@
+#!/bin/sh -x
+
+# shellcheck disable=SC1091
+. ../../lib/sh-test-lib
+# shellcheck disable=SC1091
+. ../../lib/android-test-lib
+
+SKIP_INSTALL="false"
+TIMEOUT="300"
+JDK="openjdk-8-jdk-headless"
+PKG_DEPS="curl wget zip xz-utils python-lxml python-setuptools python-pexpect aapt android-tools-adb lib32z1-dev libc6-dev-i386 lib32gcc1 libc6:i386 libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386"
+CTS_URL="http://testdata.validation.linaro.org/cts/android-cts-7.1_r1.zip"
+TEST_PARAMS="run cts -m CtsBionicTestCases --abi arm64-v8a --disable-reboot --skip-preconditions --skip-device-info"
+RESULT_FILE="$(pwd)/output/result.txt"
+export RESULT_FILE
+
+usage() {
+ echo "Usage: $0 [-s <true|false>] [-o timeout] [-n serialno] [-d jdk-version] [-c cts_url] [-t test_params]" 1>&2
+ exit 1
+}
+
+while getopts ':s:o:n:d:c:t:' opt; do
+ case "${opt}" in
+ s) SKIP_INSTALL="${OPTARG}" ;;
+ o) TIMEOUT="${OPTARG}" ;;
+ n) SN="${OPTARG}" ;;
+ d) JDK="${OPTARG}" ;;
+ c) CTS_URL="${OPTARG}" ;;
+ t) TEST_PARAMS="${OPTARG}" ;;
+ *) usage ;;
+ esac
+done
+
+if [ "${SKIP_INSTALL}" = "true" ] || [ "${SKIP_INSTALL}" = "True" ]; then
+ info_msg "Package installation skipped"
+else
+ dist_name
+ dist_info
+ # shellcheck disable=SC2154
+ case "${dist}" in
+ debian)
+ dpkg --add-architecture i386
+ dist_info
+ echo "deb [arch=amd64,i386] http://ftp.us.debian.org/debian ${Codename} main non-free contrib" > /etc/apt/sources.list.d/cts.list
+ echo "deb http://ftp.debian.org/debian ${Codename}-backports main" >> /etc/apt/sources.list.d/cts.list
+ cat /etc/apt/sources.list.d/cts.list
+ apt-get update || true
+ install_deps "${JDK}" || install_deps "-t ${Codename}-backports ${JDK}"
+ install_deps "${PKG_DEPS}"
+ ;;
+ *)
+ install_deps "${PKG_DEPS} ${JDK}"
+ ;;
+ esac
+fi
+
+initialize_adb
+wait_boot_completed "${TIMEOUT}"
+wait_homescreen "${TIMEOUT}"
+
+# Increase the heap size. KVM devices in LAVA default to ~250M of heap
+export _JAVA_OPTIONS="-Xmx350M"
+java -version
+
+# Download CTS test package or copy it from local disk.
+if echo "${CTS_URL}" | grep "^http" ; then
+ wget -S --progress=dot:giga "${CTS_URL}"
+else
+ cp "${CTS_URL}" ./
+fi
+file_name=$(basename "${CTS_URL}")
+unzip -q "${file_name}"
+rm -f "${file_name}"
+
+if [ -d android-cts/results ]; then
+ mv android-cts/results "android-cts/results_$(date +%Y%m%d%H%M%S)"
+fi
+
+# Run CTS test.
+./cts-runner.py -t "${TEST_PARAMS}" -n "${SN}"
+check_return "cts-test-run"
+
+# Cleanup.
+rm -f /etc/apt/sources.list.d/cts.list