#! /usr/bin/env bash
#
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.

set -e # exit on error

TMPDIR=${TMPDIR:-/tmp}
tmpfile=$(mktemp "$TMPDIR/via.XXXXXX")
if [ ! -z "$srcdir"]; then
    srcdir=$(cd $srcdir && pwd)
else
    srcdir=$(pwd)
fi

# test command line option
echo "Testing the command line option:"
for f in $srcdir/tests/*; do
    name=$(basename "$f")
    echo "testing $name"
    ./traffic_via.pl -s "$name" > "$tmpfile" 2>&1 || true
    diff -u "$tmpfile" "$srcdir/tests/$name"
done

# test stdin
echo -e "\nTesting stdin:"
for f in $srcdir/tests/\[*; do
    name=$(basename "$f")
    echo "testing $name"
    echo "$name" | ./traffic_via.pl > "$tmpfile" 2>&1 || true
    diff -u "$tmpfile" "$srcdir/tests/$name"
done

rm -f $tmpfile
