#! /bin/bash # # Copyright (C) 2021 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. # Utilities for buildbot. This script is sourced by other buildbot-*.sh scripts. if [ -t 1 ]; then # Color sequences if terminal is a tty. red='\033[0;31m' green='\033[0;32m' yellow='\033[0;33m' blue='\033[0;34m' magenta='\033[0;35m' cyan='\033[0;36m' boldred='\033[1;31m' boldgreen='\033[1;32m' boldyellow='\033[1;33m' boldblue='\033[1;34m' boldmagenta='\033[1;95m' boldcyan='\033[1;36m' nc='\033[0m' fi function msginfo() { local heading="$1" shift local message="$*" echo -e "${green}${heading}${nc} ${message}" } function msgwarning() { local message="$*" echo -e "${boldmagenta}Warning: ${nc}${message}" } function msgerror() { local message="$*" echo -e "${boldred}Error: ${nc}${message}" } function msgfatal() { local message="$*" echo -e "${boldred}Fatal: ${nc}${message}" exit 1 } function msgnote() { local message="$*" echo -e "${boldcyan}Note: ${nc}${message}" } export TARGET_ARCH=$(build/soong/soong_ui.bash --dumpvar-mode TARGET_ARCH) # Do some checks and prepare environment for tests that run on Linux (not on Android). if [[ -n "$ART_TEST_ON_VM" ]]; then if [[ -z $ANDROID_BUILD_TOP ]]; then msgfatal "ANDROID_BUILD_TOP is not set" elif [[ -z "$ART_TEST_SSH_USER" ]]; then msgfatal "ART_TEST_SSH_USER not set" elif [[ -z "$ART_TEST_SSH_HOST" ]]; then msgfatal "ART_TEST_SSH_HOST not set" elif [[ -z "$ART_TEST_SSH_PORT" ]]; then msgfatal "ART_TEST_SSH_PORT not set" fi SSH_CONFIG=$ANDROID_BUILD_TOP/art/test/testrunner/ssh_config export ART_TEST_CHROOT_BASENAME="art-test-chroot" export ART_TEST_CHROOT="/home/$ART_TEST_SSH_USER/$ART_TEST_CHROOT_BASENAME" export ART_CHROOT_CMD="unshare --user --map-root-user chroot $ART_TEST_CHROOT_BASENAME" export ART_SSH_CMD="ssh -q -F $SSH_CONFIG -p $ART_TEST_SSH_PORT $ART_TEST_SSH_USER@$ART_TEST_SSH_HOST" export ART_SCP_CMD="scp -q -F $SSH_CONFIG -P $ART_TEST_SSH_PORT -p -r" export ART_RSYNC_CMD="rsync -az" export RSYNC_RSH="ssh -q -F $SSH_CONFIG -p $ART_TEST_SSH_PORT" # don't prefix with "ART_", rsync expects this name if [[ "$TARGET_ARCH" =~ ^(arm64|riscv64)$ ]]; then export ART_TEST_VM_IMG="ubuntu-23.10-server-cloudimg-$TARGET_ARCH.img" export ART_TEST_VM_DIR="$ANDROID_BUILD_TOP/vm/$TARGET_ARCH" export ART_TEST_VM="$ART_TEST_VM_DIR/$ART_TEST_VM_IMG" else msgfatal "unexpected TARGET_ARCH=$TARGET_ARCH; expected one of {arm64,riscv64}" fi fi