| #!/bin/bash |
| # |
| # Run a test with the WebRTC Chromium build. |
| # Should work on any machine with a camera. |
| # |
| # Method: |
| # - Start server |
| # - Start 2 browser tabs |
| # - Browser tab 1 captures camera |
| # - Both browsers sign in |
| # - Browser 1 calls browser 2 |
| # - Browser 2 displays camera feed from browser 1 |
| # |
| |
| # Feel free to tweak this locally if your chrome build is somewhere else. |
| # The default assumes that it is in a folder called chromium two levels |
| # up from the project root ('trunk'). |
| |
| set -e |
| |
| if [ ! -x run_sanity_check ]; then |
| echo "Error: This script must run from its own directory" |
| exit 1 |
| fi |
| |
| URLBASE=127.0.0.1:3000 |
| CALLER=$URLBASE/call_client.html |
| CALLEE=$URLBASE/call_responder.html |
| FLAGS="--enable-media-stream --enable-p2papi" |
| PROJECT_ROOT=../.. |
| CHROME_BINARY=$PROJECT_ROOT/../../chromium/src/out/Debug/chrome |
| |
| if which lighttpd; then |
| LOCAL_WEB_SERVER_BINARY=$(which lighttpd) |
| else |
| echo "Error: You must install lighttpd first (sudo apt-get install lighttpd)" |
| exit 1 |
| fi |
| |
| SERVER_BINARY=${PROJECT_ROOT}/out/Debug/peerconnection_server |
| if [ ! -e "$SERVER_BINARY" ]; then |
| echo "Error: You must build peerconnection_server first." |
| exit 1 |
| fi |
| |
| CHROME_BINARY=$PROJECT_ROOT/../../chromium/src/out/Debug/chrome |
| if [ ! -e "$CHROME_BINARY" ]; then |
| echo "Error: You must build chrome (could not open $CHROME_BINARY)." |
| exit 1 |
| fi |
| |
| # Launch the web server and make it serve the local www/html directory |
| ${LOCAL_WEB_SERVER_BINARY} -D -f lighttpd.conf & |
| LOCAL_WEB_SERVER=$! |
| |
| ${SERVER_BINARY} & |
| SERVER=$! |
| echo "Started server as $SERVER" |
| |
| # We can make 2 browsers |
| #${CHROME_BINARY} $CALLER $FLAGS --user-data-dir=temp/user1 & |
| #USER1=$! |
| #echo "Started first user as $USER1" |
| #${CHROME_BINARY} $CALLEE $FLAGS --user-data-dir=temp/user2 |
| |
| # But it also works with separate tabs in one browser. |
| ${CHROME_BINARY} $CALLER $CALLEE $FLAGS --user-data-dir=temp/user1 |
| |
| echo "Test finished, cleaning up" |
| |
| kill $SERVER || echo "No server" |
| kill $LOCAL_WEB_SERVER || echo "No local web server" |