#!/bin/bash

# Copyright (c) 2011 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_ROOT=$(readlink -f $(dirname "$0")/..)
. "${SCRIPT_ROOT}/common.sh" || exit 1

# We're invoked only by build_image, which runs in the chroot
assert_inside_chroot

# 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}/build_library/check_deps" "$ROOT" $BINARIES $LIBS; then
  echo test_image: Failed dependency check
  EXITCODE=1
fi

exit $EXITCODE
