ffserver-regression.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/sh
  2. target_samples=$3
  3. target_exec=$4
  4. target_path=$5
  5. #perl -e 'chomp($wd = `pwd`); print map { s!tests/data/!!; "<Stream $_>\nFile $wd/tests/data/$_\n</Stream>\n\n" } @ARGV' tests/data/a* >> tests/data/ffserver.conf
  6. #perl -e 'chomp($wd = `pwd`); print map { s!tests/data/!!; "<Stream $_.asf>\nFile $wd/tests/data/$_\n</Stream>\n\n" } @ARGV' tests/data/a* >> tests/data/ffserver.conf
  7. . $(dirname $0)/md5.sh
  8. FILES=$(sed -n 's/^[^#]*<Stream \(.*\)>.*/\1/p' $2 | grep -v html)
  9. rm -f tests/feed1.ffm
  10. $target_exec ${target_path}/ffserver${PROGSUF} -f "$2" &
  11. FFSERVER_PID=$!
  12. echo "Waiting for feeds to startup..."
  13. sleep 2
  14. (
  15. cd tests/data || exit $?
  16. rm -f ff-* ffserver.regression
  17. WGET_OPTIONS="--user-agent=NSPlayer -q --proxy=off -e verbose=off -e server_response=off -T3 --tries=1"
  18. for file in $FILES; do
  19. if [ $(expr $file : "a-*") != 0 ]; then
  20. wget $WGET_OPTIONS -O - http://localhost:9999/$file > ff-$file
  21. else
  22. wget $WGET_OPTIONS -O - http://localhost:9999/$file?date=19700101T000000Z | dd bs=1 count=100000 > ff-$file 2>/dev/null
  23. fi
  24. do_md5sum ff-$file >>ffserver.regression
  25. done
  26. wget $WGET_OPTIONS -O - 'http://localhost:9999/teststat.html?abc' > ff-stat 2>/dev/null
  27. do_md5sum ff-stat >>ffserver.regression
  28. )
  29. kill $FFSERVER_PID
  30. wait > /dev/null 2>&1
  31. rm -f tests/feed1.ffm
  32. if diff -u "$1" tests/data/ffserver.regression; then
  33. echo
  34. echo Server regression test succeeded.
  35. exit 0
  36. else
  37. echo
  38. echo Server regression test: Error.
  39. exit 1
  40. fi