| #!/bin/bash -eux |
| # Copyright 2014 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. |
| |
| me=${0##*/} |
| TMP="$me.tmp" |
| |
| # Work in scratch directory |
| cd "$OUTDIR" |
| |
| # No args returns nonzero exit code |
| "$FUTILITY" && false |
| |
| # It's weird but okay if the command is a full path. |
| "$FUTILITY" /fake/path/to/help > "$TMP" |
| grep Usage "$TMP" |
| |
| # Make sure logging does something. |
| LOG="/tmp/futility.log" |
| [ -f ${LOG} ] && mv ${LOG} ${LOG}.backup |
| touch ${LOG} |
| "$FUTILITY" help |
| grep "$FUTILITY" ${LOG} |
| rm -f ${LOG} |
| [ -f ${LOG}.backup ] && mv ${LOG}.backup ${LOG} |
| |
| # Make sure deprecated functions fail via symlink |
| DEPRECATED="dev_sign_file" |
| |
| for i in $DEPRECATED; do |
| ln -sf "$FUTILITY" $i |
| if ./$i 2>${TMP}.outmsg ; then false; fi |
| grep deprecated ${TMP}.outmsg |
| # They may still fail when invoked through futility |
| # but with a different error message. |
| "$FUTILITY" $i 1>${TMP}.outmsg2 2>&1 || true |
| if grep deprecated ${TMP}.outmsg2; then false; fi |
| rm -f $i |
| done |
| |
| # cleanup |
| rm -f ${TMP}* |
| exit 0 |