Index: src/scripts/test_image |
diff --git a/src/scripts/test_image b/src/scripts/test_image |
new file mode 100755 |
index 0000000000000000000000000000000000000000..4e25f9b2505a016d369487ced7bf0027fc7b27c7 |
--- /dev/null |
+++ b/src/scripts/test_image |
@@ -0,0 +1,66 @@ |
+#!/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 ! [[ -x $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 |