Merge "Remove test script that is no longer relevant"
This commit is contained in:
@@ -35,6 +35,3 @@ make -j vndk dist TARGET_PRODUCT=aosp_x86
|
||||
|
||||
echo "-----Generating VNDK snapshot for x86, 32-bit binder"
|
||||
make -j vndk dist TARGET_PRODUCT=aosp_x86_ab
|
||||
|
||||
echo "-----Running tests"
|
||||
source development/vndk/snapshot/test.sh all
|
||||
|
||||
@@ -1,252 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright (C) 2017 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.
|
||||
#
|
||||
|
||||
# Test script for build/make/core/tasks/vndk.mk.
|
||||
# Makes sure VNDK snapshots include all required prebuilts and config files.
|
||||
#
|
||||
# Local usage:
|
||||
# First, generate VNDK snapshots with development/vndk/snapshot/build.sh or
|
||||
# fetch VNDK snapshot build artifacts to $DIST_DIR, then run this script.
|
||||
|
||||
set -eo pipefail
|
||||
|
||||
if [[ "$#" -ne 1 ]]; then
|
||||
echo "Usage: \"$0 all\" to test all VNDK snapshot variants at once."
|
||||
echo " \"$0 \$TARGET_PRODUCT\" to test a specific VNDK snapshot."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$1" == 'all' ]]; then
|
||||
readonly TARGET_PRODUCTS=('aosp_arm' 'aosp_arm_ab' 'aosp_arm64' 'aosp_x86' 'aosp_x86_ab' 'aosp_x86_64')
|
||||
else
|
||||
readonly TARGET_PRODUCTS=($1)
|
||||
fi
|
||||
|
||||
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
readonly ANDROID_BUILD_TOP=$(dirname $(dirname $(dirname "${script_dir}")))
|
||||
echo "ANDROID_BUILD_TOP: "${ANDROID_BUILD_TOP}""
|
||||
|
||||
OUT_DIR=${OUT_DIR:-}
|
||||
DIST_DIR=${DIST_DIR:-}
|
||||
if [[ -z "${DIST_DIR}" ]]; then
|
||||
if [[ -z "${OUT_DIR}" ]]; then
|
||||
DIST_DIR="${ANDROID_BUILD_TOP}"/out/dist
|
||||
else
|
||||
DIST_DIR="${OUT_DIR}"/dist
|
||||
fi
|
||||
fi
|
||||
|
||||
# Get PLATFORM_VNDK_VERSION
|
||||
source ""${ANDROID_BUILD_TOP}"/build/envsetup.sh" >/dev/null
|
||||
readonly PLATFORM_VNDK_VERSION="$(get_build_var PLATFORM_VNDK_VERSION)"
|
||||
|
||||
readonly TEMP_DIR="$(mktemp -d /tmp/"$(basename $0)"_XXXXXXXX)"
|
||||
readonly SNAPSHOT_TOP="${TEMP_DIR}"/android-vndk-snapshot
|
||||
readonly SNAPSHOT_TEMPFILE="${TEMP_DIR}"/snapshot_libs.txt
|
||||
readonly SYSTEM_TEMPFILE="${TEMP_DIR}"/system_libs.txt
|
||||
readonly BINDER_32_DIRNAME='binder32'
|
||||
|
||||
readonly RED='\033[0;31m'
|
||||
readonly NC='\033[0m'
|
||||
readonly PASS="::: PASS :::"
|
||||
readonly FAIL=""${RED}"::: FAIL :::"${NC}""
|
||||
|
||||
|
||||
function set_vars() {
|
||||
TARGET_PRODUCT="$1"
|
||||
ARCH=''
|
||||
PRODUCT_OUT=''
|
||||
BITNESS_SUFFIX=''
|
||||
BINDER_BITNESS_PATH=''
|
||||
TARGET_2ND_ARCH=''
|
||||
case "$1" in
|
||||
aosp_arm64)
|
||||
ARCH='arm64'
|
||||
PRODUCT_OUT='generic_arm64'
|
||||
BITNESS_SUFFIX='64'
|
||||
TARGET_2ND_ARCH='arm'
|
||||
;;
|
||||
aosp_arm)
|
||||
ARCH='arm'
|
||||
PRODUCT_OUT='generic'
|
||||
;;
|
||||
aosp_arm_ab)
|
||||
ARCH='arm'
|
||||
PRODUCT_OUT='generic_arm_ab'
|
||||
BINDER_BITNESS_PATH="${BINDER_32_DIRNAME}"
|
||||
;;
|
||||
aosp_x86_64)
|
||||
ARCH='x86_64'
|
||||
PRODUCT_OUT='generic_x86_64'
|
||||
BITNESS_SUFFIX='64'
|
||||
TARGET_2ND_ARCH='x86'
|
||||
;;
|
||||
aosp_x86)
|
||||
ARCH='x86'
|
||||
PRODUCT_OUT='generic_x86'
|
||||
;;
|
||||
aosp_x86_ab)
|
||||
ARCH='x86'
|
||||
PRODUCT_OUT='generic_x86'
|
||||
BINDER_BITNESS_PATH="${BINDER_32_DIRNAME}"
|
||||
;;
|
||||
*)
|
||||
echo "Unrecognized \$TARGET_PRODUCT: "$1""
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
function cleanup {
|
||||
echo "[Cleanup]"
|
||||
echo "Removing TEMP_DIR: "${TEMP_DIR}""
|
||||
rm -rf ""${TEMP_DIR}""
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
|
||||
#######################################
|
||||
# Compares the list of VNDK-core and VNDK-SP
|
||||
# libs included in the snapshot and installed
|
||||
# under $PRODUCT_OUT/system/lib*
|
||||
#
|
||||
# Arguments:
|
||||
# $1: vndk_type: one of [vndk-core, vndk-sp]
|
||||
#######################################
|
||||
function compare_vndk_libs() {
|
||||
local vndk_type="$1"
|
||||
local vndk_dir_suffix
|
||||
local system_vndk_dir
|
||||
local snapshot_dir
|
||||
local snapshot_dir_2nd
|
||||
local system_lib_dir
|
||||
local system_lib_dir_2nd
|
||||
|
||||
if [[ -z "${PLATFORM_VNDK_VERSION}" ]]; then
|
||||
vndk_dir_suffix=""
|
||||
else
|
||||
vndk_dir_suffix="-${PLATFORM_VNDK_VERSION}"
|
||||
fi
|
||||
|
||||
if [[ "${vndk_type}" == 'vndk-core' ]]; then
|
||||
system_vndk_dir="vndk${vndk_dir_suffix}"
|
||||
else
|
||||
system_vndk_dir="vndk-sp${vndk_dir_suffix}"
|
||||
fi
|
||||
|
||||
function diff_vndk_dirs() {
|
||||
local snapshot="$1"
|
||||
local system="$2"
|
||||
local target_arch="$3"
|
||||
|
||||
ls -1 ${snapshot} > "${SNAPSHOT_TEMPFILE}"
|
||||
find "${system}" -type f | xargs -n 1 -I file bash -c "basename file" | sort > "${SYSTEM_TEMPFILE}"
|
||||
|
||||
echo "Comparing libs for TARGET_PRODUCT="${TARGET_PRODUCT}", VNDK="${vndk_type}", ARCH="${target_arch}""
|
||||
echo "Snapshot dir:" ${snapshot}
|
||||
echo "System dir: "${system}""
|
||||
(diff --old-line-format="Only found in VNDK snapshot: %L" \
|
||||
--new-line-format="Only found in /system/lib*: %L" \
|
||||
--unchanged-line-format="" \
|
||||
"${SNAPSHOT_TEMPFILE}" "${SYSTEM_TEMPFILE}" && echo "${PASS}") \
|
||||
|| (echo -e "${FAIL}"; exit 1)
|
||||
}
|
||||
|
||||
if [[ -n "${BINDER_BITNESS_PATH}" ]]; then
|
||||
snapshot_dir="${SNAPSHOT_TOP}"/"${ARCH}"/"${BINDER_BITNESS_PATH}"/arch-"${ARCH}"-*/shared/"${vndk_type}"
|
||||
else
|
||||
snapshot_dir="${SNAPSHOT_TOP}"/"${ARCH}"/arch-"${ARCH}"-*/shared/"${vndk_type}"
|
||||
fi
|
||||
|
||||
system_lib_dir="${ANDROID_BUILD_TOP}"/out/target/product/"${PRODUCT_OUT}"/system/lib"${BITNESS_SUFFIX}"/"${system_vndk_dir}"
|
||||
diff_vndk_dirs "${snapshot_dir}" $system_lib_dir "${ARCH}"
|
||||
|
||||
if [[ -n "${TARGET_2ND_ARCH}" ]]; then
|
||||
snapshot_dir_2nd="${SNAPSHOT_TOP}"/"${ARCH}"/arch-"${TARGET_2ND_ARCH}"-*/shared/"${vndk_type}"
|
||||
system_lib_dir_2nd="${ANDROID_BUILD_TOP}"/out/target/product/"${PRODUCT_OUT}"/system/lib/"${system_vndk_dir}"
|
||||
diff_vndk_dirs "${snapshot_dir_2nd}" "${system_lib_dir_2nd}" "${TARGET_2ND_ARCH}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
#######################################
|
||||
# Executes tests against VNDK snapshot of
|
||||
# specified $TARGET_PRODUCT
|
||||
#
|
||||
# Arguments:
|
||||
# $1: TARGET_PRODUCT
|
||||
#######################################
|
||||
function run_tests() {
|
||||
set_vars "$1"
|
||||
local snapshot_zip="${DIST_DIR}"/android-vndk-"${TARGET_PRODUCT}".zip
|
||||
local snapshot_variant_top="${SNAPSHOT_TOP}"/"${ARCH}"
|
||||
|
||||
echo "[Setup] Unzipping \"android-vndk-"${TARGET_PRODUCT}".zip\""
|
||||
unzip -qn "${snapshot_zip}" -d "${SNAPSHOT_TOP}"
|
||||
|
||||
echo "[Test] Comparing VNDK-core and VNDK-SP libs in snapshot vs /system/lib*"
|
||||
compare_vndk_libs 'vndk-core'
|
||||
compare_vndk_libs 'vndk-sp'
|
||||
|
||||
echo "[Test] Checking required config files are present"
|
||||
if [[ -z "${PLATFORM_VNDK_VERSION}" ]]; then
|
||||
config_file_suffix=""
|
||||
else
|
||||
config_file_suffix=".${PLATFORM_VNDK_VERSION}"
|
||||
fi
|
||||
|
||||
config_files=(
|
||||
"ld.config"${config_file_suffix}".txt"
|
||||
"llndk.libraries"${config_file_suffix}".txt"
|
||||
"vndksp.libraries"${config_file_suffix}".txt"
|
||||
"vndkcore.libraries.txt"
|
||||
"vndkprivate.libraries.txt"
|
||||
"module_paths.txt")
|
||||
for config_file in "${config_files[@]}"; do
|
||||
config_file_abs_path="${snapshot_variant_top}"/configs/"${config_file}"
|
||||
if [[ ! -e "${config_file_abs_path}" ]]; then
|
||||
echo -e ""${FAIL}" The file \""${config_file_abs_path}"\" was not found in snapshot."
|
||||
exit 1
|
||||
else
|
||||
echo ""${PASS}" Found "${config_file}""
|
||||
fi
|
||||
done
|
||||
|
||||
echo "[Test] Checking directory structure of snapshot"
|
||||
directories=(
|
||||
"configs/"
|
||||
"NOTICE_FILES/")
|
||||
for sub_dir in "${directories[@]}"; do
|
||||
dir_abs_path="${snapshot_variant_top}"/"${sub_dir}"
|
||||
if [[ ! -d "${dir_abs_path}" ]]; then
|
||||
echo -e ""${FAIL}" The directory \""${dir_abs_path}"\" was not found in snapshot."
|
||||
exit 1
|
||||
else
|
||||
echo ""${PASS}" Found "${sub_dir}""
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
# Run tests for each target product
|
||||
for target_product in "${TARGET_PRODUCTS[@]}"; do
|
||||
echo -e "\n::::::::: Running tests for TARGET_PRODUCT="${target_product}" :::::::::"
|
||||
run_tests "${target_product}"
|
||||
done
|
||||
|
||||
echo "Done. All tests passed!"
|
||||
Reference in New Issue
Block a user