#!/bin/bash # # Copyright 2018 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_FRAMEWORK_DIR=`dirname $0` TEST_FRAMEWORK_DIR=`dirname $TEST_FRAMEWORK_DIR` if [ -z "$ANDROID_BUILD_TOP" ]; then echo "Missing ANDROID_BUILD_TOP env variable. Run 'lunch' first." exit 1 fi touch $ANDROID_BUILD_TOP/test/vti/__init__.py avoid_list=( # known failures "./harnesses/host_controller/console_test.py" "./harnesses/host_controller/invocation_thread_test.py" # not unit tests "./harnesses/host_controller/command_processor/command_test.py" ) ####################################### # Checks if a given file is included in the list of files to avoid # Globals: # Arguments: # $1: list of files to avoid # $2: the given file # Returns: # SUCCESS, if the given file exists in the list # FAILURE, otherwise ####################################### function contains_file() { local -n arr=$1 for avoid in "${arr[@]}"; do if [ "$2" = "$avoid" ]; then return # contains fi done false # not contains } # Runs all unit tests under test/framework. for t in $(find $TEST_FRAMEWORK_DIR -type f -name "*_test.py"); do if contains_file avoid_list $t; then continue fi echo "UNIT TEST", $t echo PYTHONPATH=$ANDROID_BUILD_TOP/test/framework/harnesses:$ANDROID_BUILD_TOP/test python $t; PYTHONPATH=$ANDROID_BUILD_TOP/test/framework/harnesses:$ANDROID_BUILD_TOP/test python $t; done