| #!/bin/bash | 
 | # | 
 | # Copyright (c) 2013 The Chromium OS Authors. All rights reserved. | 
 | # Use of this source code is governed by a BSD-style license that can be | 
 | # found in the LICENSE file. | 
 | # | 
 | # Script to run a test under qemu | 
 | # | 
 | # Usage: | 
 | #    test_using_qemu.sh (command line to run) | 
 | # | 
 | # Required environment variables: | 
 | #    BUILD_RUN - path to build directory inside chroot | 
 | #    HOME - home directory inside chroot | 
 | #    QEMU_RUN - path to QEMU binary inside chroot | 
 | #    SYSROOT - path to root for target platform, outside chroot | 
 |  | 
 | set -e | 
 |  | 
 | # Set up mounts | 
 | sudo mkdir -p "${SYSROOT}/proc" "${SYSROOT}/dev" | 
 | sudo mount --bind /proc "${SYSROOT}/proc" | 
 | sudo mount --bind /dev "${SYSROOT}/dev" | 
 |  | 
 | # Don't exit on error, so we can capture the error code | 
 | set +e | 
 | sudo chroot ${SYSROOT} ${QEMU_RUN} \ | 
 |     -E LD_LIBRARY_PATH=/lib64:/lib:/usr/lib64:/usr/lib \ | 
 |     -E HOME=${HOME} \ | 
 |     -E BUILD=${BUILD_RUN} \ | 
 |     -- $* | 
 | exit_code=$? | 
 | set -e | 
 |  | 
 | # Clean up mounts | 
 | sudo umount -l "${SYSROOT}/proc" | 
 | sudo umount -l "${SYSROOT}/dev" | 
 |  | 
 | # Pass through exit code from command | 
 | exit $exit_code |