QA/Automation/Projects/WebRTC: Difference between revisions

From MozillaWiki
< QA‎ | Automation‎ | Projects
Jump to navigation Jump to search
No edit summary
 
(13 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===
===Build Firefox and WebRTC Tests===
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.
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]'.


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>:
2. Execute the WebRTC mochitests (after buiding locally):
    $ ./mach mochitest-plain dom/media/test/mochitest/


    $ cd %workspace%
==Test Network Setups==
    $ hg clone http://hg.mozilla.org/projects/alder/
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]]
    $ cd alder


3. Create a ./mozconfig file in the root folder of the local checkout and fill in the content depending on your platform:
==Bug Report Recording Tools==
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.


Linux:
===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-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:
===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-accessibility
* Open "File" menu
    ac_add_options --enable-signmar
* Click "New Screen Recording"
    ENABLE_MARIONETTE=1
* Press the red button in the new window
   
    # 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:
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.
    ac_add_options --enable-debug
    ac_add_options --enable-trace-malloc
    ac_add_options --enable-signmar
    ENABLE_MARIONETTE=1
   
    # 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
===Windows===
    $ make -f client.mk
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

Latest revision as of 05:44, 7 May 2014

Overview

"WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. The WebRTC components have been optimized to best serve this purpose."

To ensure that the code quality of WebRTC in Firefox is in an overall good shape, automated tests have to be written. Those tests will be executed by the Mochitest framework on a per check-in basis.

Name: WebRTC tests
Leads: Nils Ohlmeier
Contributors: n/a
Repository: http://hg.mozilla.org/mozilla-central/file/default/dom/media/tests
Tracking Bug: bug 749522
Etherpad: http://etherpad.mozilla.com:9000/automation-webrtc

Details

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 and WebRTC Tests

1. To build your own version of Firefox, setup the build system by following the steps outlined on the MDN page 'Simple Firefox build'.

2. Execute the WebRTC mochitests (after buiding locally):

   $ ./mach mochitest-plain dom/media/test/mochitest/

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 [WebRTC Test Networks]

Bug Report Recording Tools

If you experience quality issues with the audio playback or video rendering in Firefox please create a ticket in 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.

Linux

We recommend 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.

Mac OS X

You can simply record your desktop with the QuickTime Player, which should be pre-installed on any recent Mac OS X.

  • Start the QuickTime Player
  • Open "File" menu
  • Click "New Screen Recording"
  • Press the red button in the new window

For audio recordings we recommend to install 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.

Windows

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