#!/bin/bash
# Run a psutils test

set -e

test_file=$1
name=${1%.sh}
basename=$(basename $name)

# Test files are checked in to avoid problems with changes in a2ps
# Uncomment the last line of the function to regenerate the files
function generate_input() {
    local paper=$1
    local pages=$2
    shift 2
    #"$srcdir/mktestfile" "$paper" "$pages" "$basename" > "tests/$basename-input.ps"
}

function do_test() {
    eval "$@" "$srcdir/$basename-input.ps" > "tests/$basename-output.ps"
}

function custom_input_test() {
    do_test "$@"
    diff -u --ignore-matching-lines="^\(% \)\?%%CreationDate" "$srcdir/$basename-expected.ps" "tests/$basename-output.ps"
}

# Arguments are command to run
function test() {
    generate_input "$1" "$2"
    shift 2
    custom_input_test "$@"
}

function no_output_test() {
    generate_input "$1" "$2"
    shift 2
    do_test "$@"
}

source $test_file
