#!/bin/bash
# Copyright (c) 2012 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.
# Abort on error.
set -e
# Load common constants and variables.
. "$(dirname "$0")/common.sh"
usage() {
echo "Usage $PROG image [config]"
}
main() {
# We want to catch all the discrepancies, not just the first one.
# So, any time we find one, we set testfail=1 and continue.
# When finished we will use testfail to determine our exit value.
local testfail=0
if [ $# -ne 1 ] && [ $# -ne 2 ]; then
usage
exit 1
fi
local image="$1"
# Default config location: same name/directory as this script,
# with a .config file extension, ie ensure_no_nonrelease_files.config.
local configfile="$(dirname "$0")/${0/%.sh/.config}"
# Or, maybe a config was provided on the command line.
if [ $# -eq 2 ]; then
configfile="$2"
fi
# Either way, load test-expectations data from config.
. "$configfile" || return 1
local rootfs=$(make_temp_dir)
mount_image_partition_ro "$image" 3 "$rootfs"
for file in ${RELEASE_FILE_BLACKLIST[@]}; do
if [ -e "$rootfs/$file" ]; then
echo "FAIL: $file exists in this image!"
ls -al "$rootfs/$file"
testfail=1
fi
done
# Verify that session_manager isn't configured to pass additional
# environment variables or command-line arguments to Chrome.
local config_path="$rootfs/etc/chrome_dev.conf"
local matches=$(grep -s "^[^#]" "${config_path}")
if [ -n "$matches" ]; then
echo "FAIL: Found commands in $config_path:"
echo "$matches"
testfail=1
fi
exit $testfail
}
main "$@"