179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin#!/bin/bash 279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# Copyright (C) 2016 The Android Open Source Project 379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# 479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# Licensed under the Apache License, Version 2.0 (the "License"); 579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# you may not use this file except in compliance with the License. 679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# You may obtain a copy of the License at 779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# 879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# http://www.apache.org/licenses/LICENSE-2.0 979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# 1079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# Unless required by applicable law or agreed to in writing, software 1179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# distributed under the License is distributed on an "AS IS" BASIS, 1279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# See the License for the specific language governing permissions and 1479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# limitations under the License. 1579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 1679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin# Include some functions from common.sh. 1779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei LinSCRIPT_DIR="$(dirname "$(readlink -f "$0")")" 1879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Linsource ${SCRIPT_DIR}/common.sh 1979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 2079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei LinOUT_DATA_DIR="test_out" 2179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 2279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei LinDEBUG=false 2379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 2479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 2579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Linapply_overlay() { 2679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local overaly="$1" 2779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local base_dts="$2" 2879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local overlay_dts="$3" 2979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local merged_dts="$4" 3079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 3179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin ./apply_overlay.sh "--$overaly" "$base_dts" "$overlay_dts" "$merged_dts" 3279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin} 3379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 3479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Linrun_stress_test() { 3579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # see ufdt_gen_test_dts.c for detail 3679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local node_depth="$1" 3779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local node_unused="$2" 3879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local node_count="$3" 3979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local append_count="$4" 4079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local override_count="$5" 4179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 4279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin mkdir -p "$OUT_DATA_DIR" >& /dev/null 4379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 4479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # 4579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # Prepare dtb and dtbo files 4679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # 4779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local base_dts="${OUT_DATA_DIR}/base.dts" 4879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin echo " Base DT: depth=$node_depth unused=$node_unused nodes=$node_count" 4979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin ufdt_gen_test_dts -n $node_count -d $node_depth -u $node_unused \ 5079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin -o "$base_dts" 5179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin if $DEBUG; then 5279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin cat "$base_dts" 5379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin fi 5479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 5579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local overlay_dts="${OUT_DATA_DIR}/overlay.dts" 5679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin echo " Overlay DT: append=$append_count override=$override_count" 5779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin ufdt_gen_test_dts -p -a $append_count -w $override_count \ 5879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin -o "$overlay_dts" 5979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin if $DEBUG; then 6079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin cat "$overlay_dts" 6179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin fi 6279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 6379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin local merged_dts="${OUT_DATA_DIR}/overlay_merged.dts" 6479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin apply_overlay ufdt $base_dts $overlay_dts $merged_dts 6579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 6679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin rm -rf "$OUT_DATA_DIR" 6779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin} 6879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 6979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Linmain() { 7079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin alert "========== Running Stress Tests ==========" 7179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 7279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin if [ -z "$ANDROID_BUILD_TOP" ]; then 7379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin die "Run envsetup.sh / lunch yet?" 7479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin fi 7579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 7679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin if ! command_exists ufdt_gen_test_dts || 7779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin ! command_exists dtc; then 7879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin die "Run mmma $(dirname $SCRIPT_DIR) yet?" 7979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin fi 8079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 8179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin ( 8279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 8379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # cd to ${SCRIPT_DIR} in a subshell because gen_test.sh uses relative 8479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # paths for dependent files. 8579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin cd "${SCRIPT_DIR}" 8679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 8779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # node_depth = 2 8879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # node_unused = 0 8979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # node_count = 5000 9079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # append_count = 2500 9179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin # override_count = 2500 9279ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin run_stress_test 2 0 5000 2500 2500 9379ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 9479ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin ) 9579ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 9679ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin if [ $? -ne 0 ]; then 9779ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin die "Some test cases failed, please check error message..." 9879ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin fi 9979ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin} 10079ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Lin 10179ba2aefbbc7fcf8f8b60b5efab417e5684b13b6SzuWei Linmain "$@" 102