1*dd0948b3SAndroid Build Coastguard Worker// 2*dd0948b3SAndroid Build Coastguard Worker// Copyright (C) 2016 The Android Open Source Project 3*dd0948b3SAndroid Build Coastguard Worker// 4*dd0948b3SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*dd0948b3SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*dd0948b3SAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*dd0948b3SAndroid Build Coastguard Worker// 8*dd0948b3SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*dd0948b3SAndroid Build Coastguard Worker// 10*dd0948b3SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*dd0948b3SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*dd0948b3SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*dd0948b3SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*dd0948b3SAndroid Build Coastguard Worker// limitations under the License. 15*dd0948b3SAndroid Build Coastguard Worker 16*dd0948b3SAndroid Build Coastguard Worker// Rules to generate setup script for device perf tests 17*dd0948b3SAndroid Build Coastguard Worker// Different devices may share the same script. To add a new script, define a 18*dd0948b3SAndroid Build Coastguard Worker// new variable named <device name>_script, pointing at the script in current 19*dd0948b3SAndroid Build Coastguard Worker// source folder. 20*dd0948b3SAndroid Build Coastguard Worker// At execution time, scripts will be pushed onto device and run with root 21*dd0948b3SAndroid Build Coastguard Worker// identity. 22*dd0948b3SAndroid Build Coastguard Worker 23*dd0948b3SAndroid Build Coastguard Worker// Only define the target if a perf setup script is defined by the BoardConfig 24*dd0948b3SAndroid Build Coastguard Worker// of the device we are building. 25*dd0948b3SAndroid Build Coastguard Worker// 26*dd0948b3SAndroid Build Coastguard Worker// To add a new script: 27*dd0948b3SAndroid Build Coastguard Worker// 1. add a new setup script suitable for the device at: 28*dd0948b3SAndroid Build Coastguard Worker// platform_testing/scripts/perf-setup/ 29*dd0948b3SAndroid Build Coastguard Worker// 2. modify BoardConfig.mk of the corresponding device under: 30*dd0948b3SAndroid Build Coastguard Worker// device/<OEM name>/<device name/ 31*dd0948b3SAndroid Build Coastguard Worker// 3. add variable "BOARD_PERFSETUP_SCRIPT", and point it at the path to the new 32*dd0948b3SAndroid Build Coastguard Worker// perf setup script; the path should be relative to the build root 33*dd0948b3SAndroid Build Coastguard Worker// 4. add below soong config setting below the line added on step 3: 34*dd0948b3SAndroid Build Coastguard Worker// $(call soong_config_set,perf,board_perfsetup_script,$(notdir $(BOARD_PERFSETUP_SCRIPT))) 35*dd0948b3SAndroid Build Coastguard Worker 36*dd0948b3SAndroid Build Coastguard Workerpackage { 37*dd0948b3SAndroid Build Coastguard Worker // See: http://go/android-license-faq 38*dd0948b3SAndroid Build Coastguard Worker default_applicable_licenses: [ 39*dd0948b3SAndroid Build Coastguard Worker "Android-Apache-2.0", 40*dd0948b3SAndroid Build Coastguard Worker ], 41*dd0948b3SAndroid Build Coastguard Worker default_team: "trendy_team_performance", 42*dd0948b3SAndroid Build Coastguard Worker} 43*dd0948b3SAndroid Build Coastguard Worker 44*dd0948b3SAndroid Build Coastguard Workersoong_config_module_type { 45*dd0948b3SAndroid Build Coastguard Worker name: "perf_script_filegroup", 46*dd0948b3SAndroid Build Coastguard Worker module_type: "filegroup", 47*dd0948b3SAndroid Build Coastguard Worker config_namespace: "perf", 48*dd0948b3SAndroid Build Coastguard Worker value_variables: [ 49*dd0948b3SAndroid Build Coastguard Worker "board_perfsetup_script", 50*dd0948b3SAndroid Build Coastguard Worker ], 51*dd0948b3SAndroid Build Coastguard Worker properties: [ 52*dd0948b3SAndroid Build Coastguard Worker "srcs", 53*dd0948b3SAndroid Build Coastguard Worker ], 54*dd0948b3SAndroid Build Coastguard Worker} 55*dd0948b3SAndroid Build Coastguard Worker 56*dd0948b3SAndroid Build Coastguard Workerperf_script_filegroup { 57*dd0948b3SAndroid Build Coastguard Worker name: "perf-setup-script", 58*dd0948b3SAndroid Build Coastguard Worker soong_config_variables: { 59*dd0948b3SAndroid Build Coastguard Worker board_perfsetup_script: { 60*dd0948b3SAndroid Build Coastguard Worker srcs: ["%s"], 61*dd0948b3SAndroid Build Coastguard Worker conditions_default: { 62*dd0948b3SAndroid Build Coastguard Worker srcs: ["empty-setup.sh"], 63*dd0948b3SAndroid Build Coastguard Worker }, 64*dd0948b3SAndroid Build Coastguard Worker }, 65*dd0948b3SAndroid Build Coastguard Worker }, 66*dd0948b3SAndroid Build Coastguard Worker} 67*dd0948b3SAndroid Build Coastguard Worker 68*dd0948b3SAndroid Build Coastguard Workersh_test { 69*dd0948b3SAndroid Build Coastguard Worker name: "perf-setup", 70*dd0948b3SAndroid Build Coastguard Worker src: ":perf-setup-script", 71*dd0948b3SAndroid Build Coastguard Worker filename: "perf-setup.sh", 72*dd0948b3SAndroid Build Coastguard Worker test_suites: [ 73*dd0948b3SAndroid Build Coastguard Worker "device-tests", 74*dd0948b3SAndroid Build Coastguard Worker "device-pixel-tests", 75*dd0948b3SAndroid Build Coastguard Worker ], 76*dd0948b3SAndroid Build Coastguard Worker auto_gen_config: false, 77*dd0948b3SAndroid Build Coastguard Worker product_variables: { 78*dd0948b3SAndroid Build Coastguard Worker debuggable: { 79*dd0948b3SAndroid Build Coastguard Worker required: [ 80*dd0948b3SAndroid Build Coastguard Worker "perf-setup-sh", 81*dd0948b3SAndroid Build Coastguard Worker ], 82*dd0948b3SAndroid Build Coastguard Worker }, 83*dd0948b3SAndroid Build Coastguard Worker }, 84*dd0948b3SAndroid Build Coastguard Worker} 85*dd0948b3SAndroid Build Coastguard Worker 86*dd0948b3SAndroid Build Coastguard Workersh_binary { 87*dd0948b3SAndroid Build Coastguard Worker name: "perf-setup-sh", 88*dd0948b3SAndroid Build Coastguard Worker src: ":perf-setup-script", 89*dd0948b3SAndroid Build Coastguard Worker filename: "perf-setup.sh", 90*dd0948b3SAndroid Build Coastguard Worker soc_specific: true, 91*dd0948b3SAndroid Build Coastguard Worker} 92