STT: Get disk size data from the stt build test
Get the size of build artifacts using df.
It collect the amount of disk space used for build for all targets.
Bug: 302075773
Test: combined_build_test.sh -t <target> -v userdebug \
-a <alter_target> -o -c droid
Change-Id: I4c59bc181164f4e8e13277719dc16158d3814f49
This commit is contained in:
@@ -21,7 +21,7 @@ usage() {
|
||||
echo " -d DIST_OUT : Path for dist out"
|
||||
echo " -a ALTER_TARGET: Alternative targets that share the build artifacts with the primary target"
|
||||
echo " -c : Run the target build again after installclean for reference"
|
||||
echo ' -o : Write build time results to "build_time_results.txt" file in "${OUT_DIR}" or "${DIST_OUT}/logs" if -d defined'
|
||||
echo ' -o : Write build time ("build_time_results.txt") and disk usage results (disk_size_results.txt") to "${OUT_DIR}" or "${DIST_OUT}/logs" if -d defined'
|
||||
echo " -r : Dryrun to see the commands without actually building the targets"
|
||||
}
|
||||
|
||||
@@ -41,6 +41,7 @@ while getopts ha:cd:ort:v: opt; do
|
||||
;;
|
||||
o)
|
||||
result_out="build_time_results.txt"
|
||||
result_out_size="disk_size_results.txt"
|
||||
;;
|
||||
r)
|
||||
dry_run="true"
|
||||
@@ -94,34 +95,49 @@ run_command() {
|
||||
fi
|
||||
}
|
||||
|
||||
read_df() {
|
||||
# read the available disk size
|
||||
df . | awk '{print $4}' | sed -n '2p'
|
||||
}
|
||||
|
||||
write_output() {
|
||||
if [[ -z "${result_out}" || -n "${dry_run}" ]]; then
|
||||
if [[ -z "$2" || -n "${dry_run}" ]]; then
|
||||
echo "Output: $1"
|
||||
else
|
||||
echo "$1" >> "${out_dir}/${result_out}"
|
||||
echo "$1" >> "${out_dir}/$2"
|
||||
fi
|
||||
}
|
||||
|
||||
get_build_trace() {
|
||||
run_command "cp -f ${out_dir}/build.trace.gz ${out_dir}/${1}"
|
||||
if [[ -n "${result_out}" ]]; then
|
||||
write_output "$(python3 development/treble/read_build_trace_gz.py ${out_dir}/${1})"
|
||||
write_output "$(python3 development/treble/read_build_trace_gz.py ${out_dir}/${1})" "${result_out}"
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ -n "${result_out}" ]]; then
|
||||
run_command "rm -f ${out_dir}/${result_out}"
|
||||
write_output "target, soong, kati, ninja, total"
|
||||
write_output "target, soong, kati, ninja, total" "${result_out}"
|
||||
fi
|
||||
|
||||
if [[ -n "${result_out_size}" ]]; then
|
||||
run_command "rm -f ${out_dir}/${result_out_size}"
|
||||
write_output "target, size, size_after_clean" "${result_out_size}"
|
||||
fi
|
||||
|
||||
# Build the target first.
|
||||
disk_space_source=$(read_df)
|
||||
echo; echo "Initial build..."
|
||||
run_command "${base_command} TARGET_PRODUCT=${target} TARGET_BUILD_VARIANT=${variant} ${goals}"
|
||||
size_primary=$((${disk_space_source}-$(read_df)))
|
||||
|
||||
if [[ -n "${installclean}" ]]; then
|
||||
# Run the same build after installclean
|
||||
echo; echo "Installclean for incremental build..."
|
||||
run_command "${base_command} TARGET_PRODUCT=${target} TARGET_BUILD_VARIANT=${variant} installclean"
|
||||
size_primary_clean=$((${disk_space_source}-$(read_df)))
|
||||
write_output "${target}, ${size_primary}, ${size_primary_clean}" "${result_out_size}"
|
||||
|
||||
echo "Build the same initial build..."
|
||||
run_command "${base_command} TARGET_PRODUCT=${target} TARGET_BUILD_VARIANT=${variant} NINJA_ARGS=\"-d explain\" ${goals}"
|
||||
get_build_trace "build_${target}_installclean.trace.gz"
|
||||
@@ -135,10 +151,13 @@ for alter_target in "${alter_targets[@]}"; do
|
||||
count=$((${count}+1))
|
||||
echo; echo "Build ${alter_target}...(${count})"
|
||||
run_command "${base_command} TARGET_PRODUCT=${alter_target} TARGET_BUILD_VARIANT=${variant} NINJA_ARGS=\"-d explain\" ${goals}"
|
||||
size_alter=$((${disk_space_source}-$(read_df)))
|
||||
get_build_trace "build_${alter_target}_ab${count}.trace.gz"
|
||||
|
||||
echo "Installclean for ${alter_target}..."
|
||||
run_command "${base_command} TARGET_PRODUCT=${alter_target} TARGET_BUILD_VARIANT=${variant} installclean"
|
||||
size_alter_clean=$((${disk_space_source}-$(read_df)))
|
||||
write_output "${alter_target}, ${size_alter}, ${size_alter_clean}" "${result_out_size}"
|
||||
|
||||
if [[ -n "${dist_dir}" ]]; then
|
||||
# Remove target-specific dist artifacts
|
||||
|
||||
Reference in New Issue
Block a user