| 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 5c9a5c550e632c626e44c859cd8eaaab297afdd9..c38fc92117342153e6e099b380fc304177b735ee 100755
|
| --- a/src/scripts/mod_image_for_test.sh
|
| +++ b/src/scripts/mod_image_for_test.sh
|
| @@ -10,6 +10,9 @@
|
| # The path to common.sh should be relative to your script's location.
|
| . "$(dirname "$0")/common.sh"
|
|
|
| +# Load functions and constants for chromeos-install
|
| +. "$(dirname "$0")/chromeos-common.sh"
|
| +
|
| get_default_board
|
|
|
| DEFINE_string board "$DEFAULT_BOARD" "Board for which the image was built"
|
| @@ -24,7 +27,7 @@ FLAGS "$@" || exit 1
|
| eval set -- "${FLAGS_ARGV}"
|
|
|
| # No board, no default and no image set then we can't find the image
|
| -if [ -z $FLAGS_IMAGE ] && [ -z $FLAGS_board ] ; then
|
| +if [ -z $FLAGS_image ] && [ -z $FLAGS_board ] ; then
|
| setup_board_warning
|
| echo "*** mod_image_for_test failed. No board set and no image set"
|
| exit 1
|
| @@ -33,7 +36,8 @@ fi
|
| # We have a board name but no image set. Use image at default location
|
| if [ -z $FLAGS_image ] ; then
|
| IMAGES_DIR="${DEFAULT_BUILD_ROOT}/images/${FLAGS_board}"
|
| - FLAGS_image="${IMAGES_DIR}/$(ls -t $IMAGES_DIR 2>&-| head -1)/rootfs.image"
|
| + FILENAME="chromiumos_test_image.bin"
|
| + FLAGS_image="${IMAGES_DIR}/$(ls -t $IMAGES_DIR 2>&-| head -1)/${FILENAME}"
|
| fi
|
|
|
| # Abort early if we can't find the image
|
| @@ -51,7 +55,7 @@ cleanup_rootfs_mounts() {
|
| do
|
| local cmdline=`cat /proc/$pid/cmdline`
|
| echo "Killing process that has open file on our rootfs: $cmdline"
|
| - ! sudo kill $pid # Preceded by ! to disable ERR trap.
|
| + sudo kill $pid || /bin/true
|
| done
|
| }
|
|
|
| @@ -76,15 +80,6 @@ cleanup() {
|
| }
|
|
|
| # main process begins here.
|
| -set -e
|
| -trap cleanup EXIT
|
| -
|
| -ROOT_FS_DIR="`dirname ${FLAGS_image}`/rootfs"
|
| -mkdir -p "${ROOT_FS_DIR}"
|
| -
|
| -LOOP_DEV=`sudo losetup -f`
|
| -sudo losetup "${LOOP_DEV}" "${FLAGS_image}"
|
| -sudo mount "${LOOP_DEV}" "${ROOT_FS_DIR}"
|
|
|
| # Make sure this is really what the user wants, before nuking the device
|
| if [ $FLAGS_yes -ne $FLAGS_TRUE ]; then
|
| @@ -98,9 +93,27 @@ else
|
| echo "Modifying image ${FLAGS_image} for test..."
|
| fi
|
|
|
| +set -e
|
| +trap cleanup EXIT
|
| +
|
| +ROOT_FS_DIR=$(dirname "${FLAGS_image}")/rootfs
|
| +mkdir -p "${ROOT_FS_DIR}"
|
| +
|
| +# 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
|
| + echo "No free loop device"
|
| + exit 1
|
| +fi
|
| +sudo losetup -o $(( $offset * 512 )) "${LOOP_DEV}" "${FLAGS_image}"
|
| +sudo mount "${LOOP_DEV}" "${ROOT_FS_DIR}"
|
| +
|
| MOD_SCRIPTS_ROOT="${GCLIENT_ROOT}/src/scripts/mod_for_test_scripts"
|
| # Run test setup script inside chroot jail to modify the image
|
| -sudo GCLIENT_ROOT=${GCLIENT_ROOT} ROOT_FS_DIR=${ROOT_FS_DIR} \
|
| +sudo GCLIENT_ROOT="${GCLIENT_ROOT}" ROOT_FS_DIR="${ROOT_FS_DIR}" \
|
| "${MOD_SCRIPTS_ROOT}/test_setup.sh"
|
|
|
| # Run manufacturing test setup
|
|
|