QA/Automation/Projects/WebRTC: Difference between revisions

 
(12 intermediate revisions by 2 users not shown)
Line 12: Line 12:
  |- valign="top"
  |- valign="top"
  | '''Leads:'''
  | '''Leads:'''
  | [mailto:hskupin@mozilla.com Henrik Skupin], [mailto:dhunt@mozilla.com Dave Hunt], [mailto:rwood@mozilla.com Rob Wood]
  | [mailto:nils@mozilla.com Nils Ohlmeier]
  |- valign="top"
  |- valign="top"
  | '''Contributors:'''
  | '''Contributors:'''
Line 18: Line 18:
  |- valign="top"
  |- valign="top"
  | '''Repository:'''  
  | '''Repository:'''  
  | http://hg.mozilla.org/projects/alder/file/default/dom/media/tests/
  | http://hg.mozilla.org/mozilla-central/file/default/dom/media/tests
  |- valign="top"
  |- valign="top"
  | '''Tracking Bug:'''
  | '''Tracking Bug:'''
Line 25: Line 25:
  | '''Etherpad:'''
  | '''Etherpad:'''
  | http://etherpad.mozilla.com:9000/automation-webrtc
  | http://etherpad.mozilla.com:9000/automation-webrtc
|}
==Sub Projects==
{| class="fullwidth-table" |
| style="background:#EFEFEF; width: 25%" | Sub Project
| style="background:#EFEFEF; width: 15%" | Status
| style="background:#EFEFEF; width: 40%" | Description
|- valign="top"
| [[Auto-tools/Automation_Development/Projects/WebRTC/Smoketests|Smoketests]]
| Active
| Suite of Smoketests for initial launch of WebRTC
|}
|}


==Details==
==Details==
The code of WebRTC is in an early state and therefore not part of the main development tree of Firefox called mozilla-central yet. To test the feature and to contribute to the test creation process you will have to build your own version of Firefox from the [http://hg.mozilla.org/projects/alder|alder project branch]. In the following you can find all the information you need to get started.
The code of WebRTC is still in an early state as the standards around WebRTC are not finalized yet. The WebRTC code and its tests are part of the official Firefox build since version 22. So all the relevant code can be found in mozilla-central. If you want to develop test cases for WebRTC please follow these steps:
 
===Build Firefox===
1. To build your own version of Firefox, setup the build system by following the steps outlined on the '[https://developer.mozilla.org/en-US/docs/Simple_Firefox_build|Simple Firefox build]' page on MDN.


2. Setup [https://developer.mozilla.org/en-US/docs/Mozilla_Source_Code_(Mercurial) Mercurial] and clone the <em>alder</em> branch - <strong>NOT mozilla-central</strong>:
===Build Firefox and WebRTC Tests===
1. To build your own version of Firefox, setup the build system by following the steps outlined on the MDN page '[https://developer.mozilla.org/en-US/docs/Simple_Firefox_build Simple Firefox build]'.


    $ cd %workspace%
2. Execute the WebRTC mochitests (after buiding locally):
     $ hg clone http://hg.mozilla.org/projects/alder/
     $ ./mach mochitest-plain dom/media/test/mochitest/
    $ cd alder


3. Create a ./mozconfig file in the root folder of the local checkout and fill in the content depending on your platform:
==Test Network Setups==
To verify that our WebRTC can handle all possible network setups we should have at least all the different network setups described on the [[https://wiki.mozilla.org/WebRTC/Test_Networks WebRTC Test Networks]]


Linux:
==Bug Report Recording Tools==
    ac_add_options --enable-debug
If you experience quality issues with the audio playback or video rendering in Firefox please create a ticket in [https://bugzilla.mozilla.org/ Bugzilla] for it. To avoid lengthy verbals description of the symptoms you experienced it would be really helpful if you could record the problem with one of the tools below and add a link to your Bugzilla ticket for the developer to download and listen or watch your recording.
    ac_add_options --enable-trace-malloc
    ac_add_options --enable-signmar
    ENABLE_MARIONETTE=1
   
    # Avoid dependency on libstdc++ 4.5
    ac_add_options --enable-stdcxx-compat
   
    # Needed to enable breakpad in application.ini
    export MOZILLA_OFFICIAL=1
   
    # Enable parallel compiling
    mk_add_options MOZ_MAKE_FLAGS="-j4"
   
    #Use ccache - TODO make sure this is where your ccache got installed
    ac_add_options --with-ccache=/usr/bin/ccache
   
    # Treat warnings as errors in directories with FAIL_ON_WARNINGS.
    ac_add_options --enable-warnings-as-errors


Mac:
===Linux===
    ac_add_options --enable-debug
We recommend [http://recordmydesktop.sourceforge.net/ recordMyDesktop] which is an free, open source tool to record your desktop content and also allows to make audio recordings. It is available for all major Linux distributions or can be compiled from source code.
    ac_add_options --enable-trace-malloc
    ac_add_options --enable-accessibility
    ac_add_options --enable-signmar
    ENABLE_MARIONETTE=1
   
    # Enable parallel compiling - TODO: make sure your mac has enough cores
    # to handle this!
    mk_add_options MOZ_MAKE_FLAGS="-j12"
   
    # Needed to enable breakpad in application.ini
    export MOZILLA_OFFICIAL=1
   
    ac_add_options --with-macbundlename-prefix=Firefox
   
    # Package js shell.
    export MOZ_PACKAGE_JSSHELL=1


Windows:
===Mac OS X===
    ac_add_options --enable-debug
You can simply record your desktop with the QuickTime Player, which should be pre-installed on any recent Mac OS X.
    ac_add_options --enable-trace-malloc
* Start the QuickTime Player
    ac_add_options --enable-signmar
* Open "File" menu
    ENABLE_MARIONETTE=1
* Click "New Screen Recording"
   
* Press the red button in the new window
    # Needed to enable breakpad in application.ini
    export MOZILLA_OFFICIAL=1
   
    if test -n "${_PYMAKE}"; then
      mk_add_options MOZ_MAKE_FLAGS=-j4
    else
      mk_add_options MOZ_MAKE_FLAGS=-j1
    fi
   
    # TODO: you may need to find out what these extra mozconfigs from
    # <src>/build/win32 are doing and add those directly to this file and
    # remove this if statement. I have to do that sometimes on windows.
    if test "$PROCESSOR_ARCHITECTURE" = "AMD64" -o "$PROCESSOR_ARCHITEW6432" = "AMD64"; then
      . $topsrcdir/build/win32/mozconfig.vs2010-win64
    else
      . $topsrcdir/build/win32/mozconfig.vs2010
    fi
   
    # Package js shell.
    export MOZ_PACKAGE_JSSHELL=1


4. Build Firefox
For audio recordings we recommend to install [https://code.google.com/p/soundflower/ Soundflower] that is an open source tool which presents itself as an audio device and allows to redirect the audio to another application. In combination with the above mentioned QuickTime Player it allows to create audio recordings.
    $ make -f client.mk


===Run Tests===
===Windows===
There are no automated tests available yet which can be run by the Mochitest framework. But you can run the tests manually. Just start Firefox and open <em>%workspace%/alder/dom/media/tests</em>.
Microsoft offers a ScreenRecorder for Windows 7 on TechNet with instructions how to use it: http://technet.microsoft.com/en-us/magazine/2009.03.utilityspotlight2.aspx
Confirmed users
147

edits