#!/bin/sh
#
# Common - Elements shared by all regression tests for fped
#
# Written 2010, 2011 by Werner Almesberger
# Copyright 2010, 2011 Werner Almesberger
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#


fped()
{
    echo -n "$1: " 1>&2
    shift
    cat >_in
    $VALGRIND ${FPED:-../fped} -T _in "$@" >_out 2>&1 || {
	echo FAILED "($SCRIPT)" 1>&2
	cat _out
	rm -f _in _out
	exit 1
    }
    rm -f _in
}


fped_dump()
{
	fped "$@" -T -T
}


fped_fail()
{
    echo -n "$1: " 1>&2
    shift
    cat >_in
    $VALGRIND ${FPED:-../fped} -T _in "$@" >_out 2>&1 && {
	echo FAILED "($SCRIPT)" 1>&2
	cat _out
	rm -f _in _out
	exit 1
    }
    rm -f _in
}


expect()
{
    diff -u - "$@" _out >_diff || {
	echo FAILED "($SCRIPT)" 1>&2
	cat _diff 1>&2
	rm -f _out _diff
	exit 1
    }
    echo PASSED 1>&2
    rm -f _out _diff
    passed=`expr ${passed:-0} + 1`
}


expect_grep()
{
	grep "$1" <_out >_tmp || exit 1
	mv _tmp _out
	shift
	expect "$@"
}


expect_sed()
{
	sed "$1" <_out >_tmp || exit 1
	mv _tmp _out
	shift
	expect "$@"
}


if [ ! -z "$CWD_PREFIX" -a ! -z "$FPED" -a "$FPED" = "${FPED#/}" ]; then
    FPED="$CWD_PREFIX/$FPED"
fi
