Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(225)

Unified Diff: src/scripts/mod_image_for_test.sh

Issue 1780011: Skip dropping caches in each test and between iterations during factory tests. (Closed) Base URL: ssh://git@chromiumos-git/chromiumos
Patch Set: fix bug Created 10 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/scripts/mod_for_factory_scripts/400configAutotest ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/scripts/mod_image_for_test.sh
diff --git a/src/scripts/mod_image_for_test.sh b/src/scripts/mod_image_for_test.sh
index 0707d206aff98dc3c94d9fa653c6e836118c0f14..5bc1b2fbb0a05b700ba62db70d69f30bb3e6dbbf 100755
--- a/src/scripts/mod_image_for_test.sh
+++ b/src/scripts/mod_image_for_test.sh
@@ -46,37 +46,44 @@ if [ ! -f $FLAGS_image ] ; then
exit 1
fi
-# Make sure anything mounted in the rootfs is cleaned up ok on exit.
-cleanup_rootfs_mounts() {
+# Make sure anything mounted in the rootfs/stateful is cleaned up ok on exit.
+cleanup_mounts() {
# Occasionally there are some daemons left hanging around that have our
- # root image file system open. We do a best effort attempt to kill them.
- PIDS=`sudo lsof -t "${ROOT_FS_DIR}" | sort | uniq`
+ # root/stateful image file system open. We do a best effort attempt to kill
+ # them.
+ PIDS=`sudo lsof -t "$1" | sort | uniq`
for pid in ${PIDS}
do
local cmdline=`cat /proc/$pid/cmdline`
- echo "Killing process that has open file on our rootfs: $cmdline"
+ echo "Killing process that has open file on the mounted directory: $cmdline"
sudo kill $pid || /bin/true
done
}
-cleanup_rootfs_loop() {
- sudo umount "${LOOP_DEV}"
- sleep 1 # in case $LOOP_DEV is in use
- sudo losetup -d "${LOOP_DEV}"
+cleanup_loop() {
+ sudo umount "$1"
+ sleep 1 # in case the loop device is in use
+ sudo losetup -d "$1"
}
cleanup() {
# Disable die on error.
set +e
- cleanup_rootfs_mounts
- if [ -n "${LOOP_DEV}" ]
+ cleanup_mounts "${ROOT_FS_DIR}"
+ if [ -n "${ROOT_LOOP_DEV}" ]
then
- cleanup_rootfs_loop
+ cleanup_loop "${ROOT_LOOP_DEV}"
fi
-
rmdir "${ROOT_FS_DIR}"
+ cleanup_mounts "${STATEFUL_DIR}"
+ if [ -n "${STATEFUL_LOOP_DEV}" ]
+ then
+ cleanup_loop "${STATEFUL_LOOP_DEV}"
+ fi
+ rmdir "${STATEFUL_DIR}"
+
# Turn die on error back on.
set -e
}
@@ -100,19 +107,34 @@ set -e
ROOT_FS_DIR=$(dirname "${FLAGS_image}")/rootfs
mkdir -p "${ROOT_FS_DIR}"
+STATEFUL_DIR=$(dirname "${FLAGS_image}")/stateful_partition
+mkdir -p "${STATEFUL_DIR}"
+
trap cleanup EXIT
# Figure out how to loop mount the rootfs partition. It should be partition 3
# on the disk image.
offset=$(partoffset "${FLAGS_image}" 3)
-LOOP_DEV=$(sudo losetup -f)
-if [ -z "$LOOP_DEV" ]; then
+ROOT_LOOP_DEV=$(sudo losetup -f)
+if [ -z "$ROOT_LOOP_DEV" ]; then
+ echo "No free loop device"
+ exit 1
+fi
+sudo losetup -o $(( $offset * 512 )) "${ROOT_LOOP_DEV}" "${FLAGS_image}"
+sudo mount "${ROOT_LOOP_DEV}" "${ROOT_FS_DIR}"
+
+# The stateful partition should be partition 1 on the disk image.
+offset=$(partoffset "${FLAGS_image}" 1)
+
+STATEFUL_LOOP_DEV=$(sudo losetup -f)
+if [ -z "$STATEFUL_LOOP_DEV" ]; then
echo "No free loop device"
exit 1
fi
-sudo losetup -o $(( $offset * 512 )) "${LOOP_DEV}" "${FLAGS_image}"
-sudo mount "${LOOP_DEV}" "${ROOT_FS_DIR}"
+sudo losetup -o $(( $offset * 512 )) "${STATEFUL_LOOP_DEV}" "${FLAGS_image}"
+sudo mount "${STATEFUL_LOOP_DEV}" "${STATEFUL_DIR}"
+STATEFUL_DIR="${STATEFUL_DIR}"
MOD_TEST_ROOT="${GCLIENT_ROOT}/src/scripts/mod_for_test_scripts"
# Run test setup script to modify the image
@@ -123,7 +145,8 @@ if [ ${FLAGS_factory} -eq ${FLAGS_TRUE} ]; then
MOD_FACTORY_ROOT="${GCLIENT_ROOT}/src/scripts/mod_for_factory_scripts"
# Run factory setup script to modify the image
sudo GCLIENT_ROOT="${GCLIENT_ROOT}" ROOT_FS_DIR="${ROOT_FS_DIR}" \
- QUALDB="${FLAGS_qualdb}" "${MOD_FACTORY_ROOT}/factory_setup.sh"
+ STATEFUL_DIR="${STATEFUL_DIR}/dev_image" QUALDB="${FLAGS_qualdb}" \
+ "${MOD_FACTORY_ROOT}/factory_setup.sh"
fi
cleanup
« no previous file with comments | « src/scripts/mod_for_factory_scripts/400configAutotest ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698