]> git.sesse.net Git - ffmpeg/blob - tests/server-regression.sh
* Actually make the sort function do some sorting (data needs to be on own lines)
[ffmpeg] / tests / server-regression.sh
1 #!/bin/bash
2
3 # Make sure that the data directory exists
4 mkdir -p data
5
6 cp test.conf data/test.conf
7 perl -e 'chomp($wd = `pwd`); print map { s!data/!!; "<Stream $_>\nFile $wd/data/$_\n</Stream>\n\n" } @ARGV' data/a* >> data/test.conf
8 perl -e 'chomp($wd = `pwd`); print map { s!data/!!; "<Stream $_.asf>\nFile $wd/data/$_\n</Stream>\n\n" } @ARGV' data/a* >> data/test.conf
9
10 FILES=`perl -n -e 'print \$1, "\n" if /<stream\\s+(\\S+)>/i' data/test.conf | sort`
11
12 rm -f /tmp/feed.ffm
13 ../ffserver -d -f data/test.conf 2> /dev/null &
14 FFSERVER_PID=$!
15 echo "Waiting for feeds to startup..."
16 sleep 2
17 (
18     cd data || exit $?
19     rm -f ff-*;
20     WGET_OPTIONS="--user-agent=NSPlayer -q --proxy=off -e verbose=off -e debug=off -e server_response=off"
21     for file in $FILES; do
22         if [ `expr match $file "a-*"` -ne 0 ]; then
23             wget $WGET_OPTIONS --output-document=- http://localhost:9999/$file > ff-$file &
24         else
25             wget $WGET_OPTIONS --output-document=- http://localhost:9999/$file?date=19700101T000000Z | head --bytes=100000 > ff-$file &
26         fi
27         MDFILES="$MDFILES ff-$file"
28     done    
29     wait
30     # the status page is always different
31     md5sum $MDFILES | grep -v html > ffserver.regression
32 )
33 kill $FFSERVER_PID
34 wait > /dev/null 2>&1
35 if diff -u data/ffserver.regression $1 ; then
36     echo 
37     echo Server regression test succeeded.
38     exit 0
39 else
40     echo 
41     echo Server regression test: Error.
42     exit 1
43 fi