| #!/bin/bash |
| |
| # Copyright (c) 2010 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. |
| |
| # Load common constants. This should be the first executable line. |
| # The path to common.sh should be relative to your script's location. |
| . "$(dirname "$0")/common.sh" |
| |
| # Flags |
| DEFINE_string target "x86" \ |
| "The target architecture to test. One of { x86, arm }." |
| DEFINE_string root "" \ |
| "The root file system to check." |
| |
| # Parse command line |
| FLAGS "$@" || exit 1 |
| eval set -- "${FLAGS_ARGV}" |
| |
| # Die on any errors |
| set -e |
| |
| # Check all parts of a pipe |
| set -o pipefail |
| |
| ROOT="$FLAGS_root" |
| if [[ -z "$ROOT" ]]; then |
| echo "Error: --root is required." |
| exit 1 |
| fi |
| if [[ ! -d "$ROOT" ]]; then |
| echo "Error: Root FS does not exist ($ROOT)" |
| exit 1 |
| fi |
| |
| EXITCODE=0 |
| |
| BINARIES="$ROOT/usr/bin/Xorg |
| $ROOT/usr/bin/chromeos-wm |
| $ROOT/boot/vmlinuz |
| $ROOT/sbin/session_manager |
| $ROOT/bin/sed" |
| |
| if [[ $FLAGS_target != arm ]]; then |
| # chrome isn't present on arm |
| BINARIES="$BINARIES |
| $ROOT/opt/google/chrome/chrome" |
| fi |
| |
| for i in $BINARIES; do |
| if ! [[ -f $i ]]; then |
| echo test_image: Cannot find $i |
| EXITCODE=1 |
| fi |
| done |
| |
| LIBS="`sudo find $ROOT -type f -name '*.so*'`" |
| |
| # Check that all .so files, plus the binaries, have the appropriate dependencies |
| if ! "${SCRIPTS_DIR}/check_deps" "$ROOT" $BINARIES $LIBS; then |
| echo test_image: Failed dependency check |
| EXITCODE=1 |
| fi |
| |
| exit $EXITCODE |