paycheck: test script puts temporary files in /tmp
Avoids bloating the platform/dev directory, which affects emerge time.
BUG=None
TEST=Emerge time reduced dramatically
Change-Id: I09ce977a011adca3276682997022d8b1f2acc2b1
Reviewed-on: https://gerrit.chromium.org/gerrit/49677
Tested-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Chris Sosa <sosa@chromium.org>
Commit-Queue: Gilad Arnold <garnold@chromium.org>
diff --git a/scripts/test_paycheck.sh b/scripts/test_paycheck.sh
index d6b9310..4d763c4 100755
--- a/scripts/test_paycheck.sh
+++ b/scripts/test_paycheck.sh
@@ -44,6 +44,11 @@
# strongly encouraged. Finally, each paycheck.py execution is timed.
+# Stop on errors, unset variables.
+set -e
+set -u
+
+# Temporary image files.
OLD_KERN_PART=old_kern.part
OLD_ROOT_PART=old_root.part
NEW_DELTA_KERN_PART=new_delta_kern.part
@@ -51,9 +56,6 @@
NEW_FULL_KERN_PART=new_full_kern.part
NEW_FULL_ROOT_PART=new_full_root.part
-# Stop on errors, unset variables.
-set -e
-set -u
log() {
echo "$@" >&2
@@ -95,18 +97,18 @@
apply_full_payload() {
payload_file=$1
- dst_kern_part=$2
- dst_root_part=$3
+ dst_kern_part="$2/$3"
+ dst_root_part="$2/$4"
time ${paycheck} ${payload_file} ${dst_kern_part} ${dst_root_part}
}
apply_delta_payload() {
payload_file=$1
- dst_kern_part=$2
- dst_root_part=$3
- src_kern_part=$4
- src_root_part=$5
+ dst_kern_part="$2/$3"
+ dst_root_part="$2/$4"
+ src_kern_part="$2/$5"
+ src_root_part="$2/$6"
time ${paycheck} ${payload_file} ${dst_kern_part} ${dst_root_part} \
${src_kern_part} ${src_root_part}
@@ -133,13 +135,14 @@
die "cannot find paycheck.py or file is not executable"
fi
+ # Check the payloads statically.
log "Checking payloads..."
check_payload "${old_full_payload}" "${old_full_metasig}" full
check_payload "${new_full_payload}" "${new_full_metasig}" full
check_payload "${delta_payload}" "${delta_metasig}" delta
log "Done"
- # Pick a random block between 0-1024
+ # Trace a random block between 0-1024 on all payloads.
block=$((RANDOM * 1024 / 32767))
log "Tracing a random block (${block}) in full/delta payloads..."
trace_kern_block "${new_full_payload}" ${block}
@@ -148,21 +151,32 @@
trace_root_block "${delta_payload}" ${block}
log "Done"
- log "Apply old full payload..."
- apply_full_payload "${old_full_payload}" "${OLD_KERN_PART}" "${OLD_ROOT_PART}"
+ # Apply full/delta payloads and verify results are identical.
+ tmpdir="$(mktemp -d --tmpdir test_paycheck.XXXXXXXX)"
+ log "Initiating application of payloads at $tmpdir"
+
+ log "Applying old full payload..."
+ apply_full_payload "${old_full_payload}" "${tmpdir}" "${OLD_KERN_PART}" \
+ "${OLD_ROOT_PART}"
log "Done"
- log "Apply delta payload to old partitions..."
- time ./paycheck.py "${delta_payload}" "${NEW_DELTA_KERN_PART}" \
+
+ log "Applying delta payload to old partitions..."
+ apply_delta_payload "${delta_payload}" "${tmpdir}" "${NEW_DELTA_KERN_PART}" \
"${NEW_DELTA_ROOT_PART}" "${OLD_KERN_PART}" "${OLD_ROOT_PART}"
log "Done"
- log "Apply new full payload..."
- time ./paycheck.py "${new_full_payload}" "${NEW_FULL_KERN_PART}" \
+
+ log "Applying new full payload..."
+ apply_full_payload "${new_full_payload}" "${tmpdir}" "${NEW_FULL_KERN_PART}" \
"${NEW_FULL_ROOT_PART}"
log "Done"
+
log "Comparing results of delta and new full updates..."
- diff "${NEW_FULL_KERN_PART}" "${NEW_DELTA_KERN_PART}"
- diff "${NEW_FULL_ROOT_PART}" "${NEW_DELTA_ROOT_PART}"
+ diff "${tmpdir}/${NEW_FULL_KERN_PART}" "${tmpdir}/${NEW_DELTA_KERN_PART}"
+ diff "${tmpdir}/${NEW_FULL_ROOT_PART}" "${tmpdir}/${NEW_DELTA_ROOT_PART}"
log "Done"
+
+ log "Cleaning up"
+ rm -fr "${tmpdir}"
}
main "$@"