#!/bin/bash

unset I_WANT_A_BROKEN_PS
unset PS_PERSONALITY
unset CMD_ENV
unset PS_FORMAT

export LANG=C
export LC_ALL=C
export TZ=GMT

TESTNAME=$1

# enlarge as needed in setup to avoid COMMAND becoming COMMA, etc.
export COLUMNS=111

: ${LD_LIBRARY_PATH:=../proc}
: ${TESTME:=../ps/ps}
export LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH  # if ever a darwin port



. $TESTNAME/setup
$TESTME $ARGS > stdout 2> stderr
RESULT=$?
if [ x$KILLFN == x1 ] ; then
  killfn
fi



if [ x$RESULT != x$GOOD ] ; then
  echo FAIL $TESTNAME err-$RESULT
  exit 1
fi

rm -f stderr.test ; touch stderr.test
if [ -f stderr ] ; then
  head -3 < stderr > stderr.test
fi
rm -f stderr.good ; touch stderr.good
if [ -f $TESTNAME/stderr ] ; then
  head -3 < $TESTNAME/stderr > stderr.good
fi
diff -Naurd stderr.test stderr.good >> /dev/null
if [ x$? != x0 ] ; then
  echo FAIL $TESTNAME wrong-stderr
  exit 1
fi

if [ -f $TESTNAME/header ] ; then
  (printf ' ' ; head -1 stdout) | tr -s ' ' > header
  diff -Naurd header $TESTNAME/header >> /dev/null
  if [ x$? != x0 ] ; then
    echo FAIL $TESTNAME wrong-header
    exit 1
  fi
fi

if [ x$EVALFN == x1 ] ; then
  evalfn
  if [ x$? != x0 ] ; then
    echo FAIL $TESTNAME eval-fn
    exit 1
  fi
fi

echo pass $TESTNAME a-ok
exit 0
