blob: 99851580ae3412cd44eeec0b0d504f35897b9686 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
art-build-scripts
=================
Contents:
* Overview
* Requirements
* Directory Structure
* Guidelines
Overview
========
The art-build-scripts are part of a stable/tip checkout. All scripts work for both Tip and Stable.
The scripts follow the Google Shell Style Guide, plus following additions:
* All scripts use set -o nounset (done by default in utils.sh).
* Constant variables used in the same script are in **lower_case**.
* Constant variables used across scripts or picked up from environment are in **UPPER_CASE**.
Requirements
============
1. bash 4.2+
Note: you don't need to have shellcheck installed, presubmit.sh will download it if necessary.
Directory Structure
===================
(mostly output from `tree -Fn`)
.
├── benchmarks/
│ ├── benchmarks_run_target.sh* Runs benchmarks in a android root configuration.
│ └── boot_oat_measurements_host.sh* Runs boot.oat measurements on the host.
├── devices/ Device specific scripts.
│ ├── config/ Contains the configuration for each device.
│ │ ├── angler.sh
│ │ ├── bullhead.sh
│ │ └── flounder.sh
│ ├── cpu_freq_utils.sh
│ ├── flash_device.sh Helper script sourced by flash_${device}.sh scripts below:
│ ├── flash_nexus5x.sh* -=|
│ ├── flash_nexus6p.sh* | Use these scripts to flash
│ ├── flash_nexus9.sh* | a particular device
│ ├── flash_pixel.sh* -=|
│ └── set_cpu_freq.sh* Sets the CPU frequency on your nexus device.
├── jenkins/
│ ├── presubmit_art_testing.sh* Presubmit test for art-testing repo (benchmarks)
│ ├── presubmit_vixl_test_mac.sh* Presubmit for vixl project (Mac OS only)
│ ├── presubmit_vixl_test.sh* Presubmit for vixl project
│ ├── setup_adb.sh* Script to setup adb configuration for CI jobs.
│ ├── setup_android.sh* Used by Jenkins to apply your patch & setup an Android env.
│ ├── setup_host.sh* Used by Jenkins to set-up the Jenkins host.
│ └── test_launcher.pl* Used by Jenkins as a wrapper for running the scripts,
│ so that every script gets its new process group ID.
├── presubmit.sh* Presubmit script that uses shellcheck and a few other checkers.
├── README.md This file.
├── tests/
│ ├── monkey/
│ │ ├── blacklist
│ │ ├── monkey.sh*
│ │ └── whitelist
│ ├── test_art_build_linux_target.sh* ART on linux test script.
│ ├── test_art_fuzzer.sh* The fuzzer script.
│ ├── test_art_host.sh* The host tests script.
│ ├── test_art_target.sh* The target tests script.
│ ├── test_art_vixl.sh* The VIXL tests script.
│ └── test_boot_to_gui_emulator.sh* The Boot to GUI script.
└── utils/
├── utils_android_root.sh Utilities to setup android_root configuration.
├── utils_android.sh Utilities for android tree manipulation.
└── utils.sh Common utilities.
Guidelines
==========
* All executable scripts should have a `main()` function.
* All executable scripts should take options (at least -h and -v) in `arguments_parser()`.
* All executable scripts have a `usage()` (-h or --help) that tells how the script should be used.
* All helper scripts are not executable.
* All scripts should include at least utils.sh, which
* sets global shell options like set -o nounset and,
* enables coloured logging for interactive sessions (not jenkins).
* All scripts and changes should be checked by running ./presubmit.sh.
|