1*13e8728fSAndroid Build Coastguard Worker#!/bin/bash 2*13e8728fSAndroid Build Coastguard Worker# Copyright (C) 2016 The Android Open Source Project 3*13e8728fSAndroid Build Coastguard Worker# 4*13e8728fSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*13e8728fSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*13e8728fSAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*13e8728fSAndroid Build Coastguard Worker# 8*13e8728fSAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*13e8728fSAndroid Build Coastguard Worker# 10*13e8728fSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*13e8728fSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 12*13e8728fSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*13e8728fSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*13e8728fSAndroid Build Coastguard Worker# limitations under the License. 15*13e8728fSAndroid Build Coastguard Worker 16*13e8728fSAndroid Build Coastguard Worker# Include some functions from common.sh. 17*13e8728fSAndroid Build Coastguard WorkerSCRIPT_DIR="$(dirname "$(readlink -f "$0")")" 18*13e8728fSAndroid Build Coastguard Workersource ${SCRIPT_DIR}/common.sh 19*13e8728fSAndroid Build Coastguard Worker 20*13e8728fSAndroid Build Coastguard WorkerOUT_DATA_DIR="test_out" 21*13e8728fSAndroid Build Coastguard Worker 22*13e8728fSAndroid Build Coastguard WorkerDEBUG=false 23*13e8728fSAndroid Build Coastguard Worker 24*13e8728fSAndroid Build Coastguard Worker 25*13e8728fSAndroid Build Coastguard Workerapply_overlay() { 26*13e8728fSAndroid Build Coastguard Worker local overaly="$1" 27*13e8728fSAndroid Build Coastguard Worker local base_dts="$2" 28*13e8728fSAndroid Build Coastguard Worker local overlay_dts="$3" 29*13e8728fSAndroid Build Coastguard Worker local merged_dts="$4" 30*13e8728fSAndroid Build Coastguard Worker 31*13e8728fSAndroid Build Coastguard Worker ./apply_overlay.sh "--$overaly" "$base_dts" "$overlay_dts" "$merged_dts" 32*13e8728fSAndroid Build Coastguard Worker} 33*13e8728fSAndroid Build Coastguard Worker 34*13e8728fSAndroid Build Coastguard Workerrun_stress_test() { 35*13e8728fSAndroid Build Coastguard Worker # see ufdt_gen_test_dts.c for detail 36*13e8728fSAndroid Build Coastguard Worker local node_depth="$1" 37*13e8728fSAndroid Build Coastguard Worker local node_unused="$2" 38*13e8728fSAndroid Build Coastguard Worker local node_count="$3" 39*13e8728fSAndroid Build Coastguard Worker local append_count="$4" 40*13e8728fSAndroid Build Coastguard Worker local override_count="$5" 41*13e8728fSAndroid Build Coastguard Worker 42*13e8728fSAndroid Build Coastguard Worker mkdir -p "$OUT_DATA_DIR" >& /dev/null 43*13e8728fSAndroid Build Coastguard Worker 44*13e8728fSAndroid Build Coastguard Worker # 45*13e8728fSAndroid Build Coastguard Worker # Prepare dtb and dtbo files 46*13e8728fSAndroid Build Coastguard Worker # 47*13e8728fSAndroid Build Coastguard Worker local base_dts="${OUT_DATA_DIR}/base.dts" 48*13e8728fSAndroid Build Coastguard Worker echo " Base DT: depth=$node_depth unused=$node_unused nodes=$node_count" 49*13e8728fSAndroid Build Coastguard Worker ufdt_gen_test_dts -n $node_count -d $node_depth -u $node_unused \ 50*13e8728fSAndroid Build Coastguard Worker -o "$base_dts" 51*13e8728fSAndroid Build Coastguard Worker if $DEBUG; then 52*13e8728fSAndroid Build Coastguard Worker cat "$base_dts" 53*13e8728fSAndroid Build Coastguard Worker fi 54*13e8728fSAndroid Build Coastguard Worker 55*13e8728fSAndroid Build Coastguard Worker local overlay_dts="${OUT_DATA_DIR}/overlay.dts" 56*13e8728fSAndroid Build Coastguard Worker echo " Overlay DT: append=$append_count override=$override_count" 57*13e8728fSAndroid Build Coastguard Worker ufdt_gen_test_dts -p -a $append_count -w $override_count \ 58*13e8728fSAndroid Build Coastguard Worker -o "$overlay_dts" 59*13e8728fSAndroid Build Coastguard Worker if $DEBUG; then 60*13e8728fSAndroid Build Coastguard Worker cat "$overlay_dts" 61*13e8728fSAndroid Build Coastguard Worker fi 62*13e8728fSAndroid Build Coastguard Worker 63*13e8728fSAndroid Build Coastguard Worker local merged_dts="${OUT_DATA_DIR}/overlay_merged.dts" 64*13e8728fSAndroid Build Coastguard Worker apply_overlay ufdt $base_dts $overlay_dts $merged_dts 65*13e8728fSAndroid Build Coastguard Worker 66*13e8728fSAndroid Build Coastguard Worker rm -rf "$OUT_DATA_DIR" 67*13e8728fSAndroid Build Coastguard Worker} 68*13e8728fSAndroid Build Coastguard Worker 69*13e8728fSAndroid Build Coastguard Workermain() { 70*13e8728fSAndroid Build Coastguard Worker alert "========== Running Stress Tests ==========" 71*13e8728fSAndroid Build Coastguard Worker 72*13e8728fSAndroid Build Coastguard Worker if [ -z "$ANDROID_BUILD_TOP" ]; then 73*13e8728fSAndroid Build Coastguard Worker die "Run envsetup.sh / lunch yet?" 74*13e8728fSAndroid Build Coastguard Worker fi 75*13e8728fSAndroid Build Coastguard Worker 76*13e8728fSAndroid Build Coastguard Worker if ! command_exists ufdt_gen_test_dts || 77*13e8728fSAndroid Build Coastguard Worker ! command_exists dtc; then 78*13e8728fSAndroid Build Coastguard Worker die "Run mmma $(dirname $SCRIPT_DIR) yet?" 79*13e8728fSAndroid Build Coastguard Worker fi 80*13e8728fSAndroid Build Coastguard Worker 81*13e8728fSAndroid Build Coastguard Worker ( 82*13e8728fSAndroid Build Coastguard Worker 83*13e8728fSAndroid Build Coastguard Worker # cd to ${SCRIPT_DIR} in a subshell because gen_test.sh uses relative 84*13e8728fSAndroid Build Coastguard Worker # paths for dependent files. 85*13e8728fSAndroid Build Coastguard Worker cd "${SCRIPT_DIR}" 86*13e8728fSAndroid Build Coastguard Worker 87*13e8728fSAndroid Build Coastguard Worker # node_depth = 2 88*13e8728fSAndroid Build Coastguard Worker # node_unused = 0 89*13e8728fSAndroid Build Coastguard Worker # node_count = 5000 90*13e8728fSAndroid Build Coastguard Worker # append_count = 2500 91*13e8728fSAndroid Build Coastguard Worker # override_count = 2500 92*13e8728fSAndroid Build Coastguard Worker run_stress_test 2 0 5000 2500 2500 93*13e8728fSAndroid Build Coastguard Worker 94*13e8728fSAndroid Build Coastguard Worker ) 95*13e8728fSAndroid Build Coastguard Worker 96*13e8728fSAndroid Build Coastguard Worker if [ $? -ne 0 ]; then 97*13e8728fSAndroid Build Coastguard Worker die "Some test cases failed, please check error message..." 98*13e8728fSAndroid Build Coastguard Worker fi 99*13e8728fSAndroid Build Coastguard Worker} 100*13e8728fSAndroid Build Coastguard Worker 101*13e8728fSAndroid Build Coastguard Workermain "$@" 102