#!/bin/bash

# automatic testing of some of the plugins using gstreamer-launch

MEDIA=/home/thomas/media
GSTL=gstreamer-launch

run_file_test()
# run a pipe between filesrc and fakesink to test a set of plugins
# first argument is the test name
# second argument is the filename to work on
# third argument is the part between filesrc and fakesink
{
  NAME=$1
  FILE=$2
  PIPE=$3
  
  echo -n "Testing $NAME ... "
  COMMAND="$GSTL filesrc location=$MEDIA/$FILE ! $PIPE ! fakesink silent=true"
  $COMMAND > /dev/null 2> /dev/null
  if test $?; then PASSED="yes"; else PASSED="no"; fi
  if test "x$PASSED"="xyes"; then echo "passed."; else echo "failed"; fi 
}

run_file_test "mad" "south.mp3" "mad"
run_file_test "mad/lame" "south.mp3" "mad ! lame"
run_file_test "mad/lame/mad" "south.mp3" "mad ! lame ! mad"
run_file_test "vorbisdec" "Brown\ Sugar128.ogg" "vorbisdec"
run_file_test "vorbisdec/vorbisenc" "Brown\ Sugar128.ogg" "vorbisdec ! vorbisenc"