75 Commits

Author SHA1 Message Date
kjellander@webrtc.org
e794c36637 Fix parallel test execution for tools, testsupport and metrics tests.
BUG=2600
TESTED=Passing tests using:
python third_party/gtest-parallel/gtest-parallel -w 10 -r 20 out/Release/test_support_unittests
python third_party/gtest-parallel/gtest-parallel -w 10 -r 20 out/Release/tools_unittests
python third_party/gtest-parallel/gtest-parallel -w 10 -r 20 out/Release/video_engine_tests

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31479004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7322 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-29 11:47:28 +00:00
houssainy@google.com
24f62e1a28 Adding getStats function to the exposed PeerConnection in RtcBot
Exposed Peerconnection object has new function "getStats". This function
returns the stats as array of reports, and each report is RTCStatReport
with additional attributes names and stats.

names: array of all the stat names in current report.
Stats: dictionary and the key is the stat name, and value is the value
of this stat.

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/23779004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7319 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-29 09:36:28 +00:00
houssainy@google.com
35850ff71f Adding test file path as argument of the rtcBot run command's arguments.
The new command to run rtcBot is:-
node test.js <bot_type> <test_file_path>

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31419004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7263 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 15:24:56 +00:00
houssainy@google.com
07ca949346 Adding webrtc_video_streaming test
This test is streaming video and audio between two bots using webrtc js api.

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/28469004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7261 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-22 13:52:39 +00:00
houssainy@google.com
e0761d06b0 Fix printing of error stack in rtcbot when a test fails via test.fail().
R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/28449004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7134 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-10 14:35:35 +00:00
houssainy@google.com
04b853b56a Bot Browser files moved to /bot/browser/
because android files will be a different and will need to add more files for Android.

There was a CL to move the browser files form bot/browser/ to /bot/ as i thought it will be the same files used for Android.

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/23529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7119 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-09 14:50:09 +00:00
houssainy@google.com
9600519147 Adding the ability to test on Chrome for Android.
use "android-chrome" as type in rtcbot running command.
Example: node test.js android-chrome

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/20329004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7102 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-08 13:01:40 +00:00
houssainy@google.com
c77e4d6aef - Adding AndroidDeviceManager to botManager.js to help in selecting devices, in case running test on Android devices.
- Select BotType using nodeJs terminal command.

- ping_pong.js test added.

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/19159004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7099 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-08 10:36:11 +00:00
houssainy@google.com
38ef664418 Moving the api.js and bot.js to /rtcbot/bot/ to be shared between
/borwser and /android

R=andresp@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/25369004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7062 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 13:44:47 +00:00
kjellander@webrtc.org
3c0aae17f0 Change gflags and gmock includes to be full paths.
This will fix PRESUBMIT warnings developers will get due to
r7014 and r7020.

Also some minor style cleanup in:
webrtc/modules/audio_coding/main/test/RTPFile.cc
webrtc/modules/audio_coding/neteq/test/RTPjitter.cc

BUG=
R=henrik.lundin@webrtc.org, niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/23429004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7058 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-04 09:55:40 +00:00
kjellander@webrtc.org
0372b93118 Partial revert of r7014 (Android APK refactor)
This reverts selected parts of r7014 to enable
rolling WebRTC in Chromium DEPS.

This works around the problem with GYP includes
being processed in the first pass (i.e. variables
cannot be used for paths). Using a dependency with
a path using a variable that is conditioned for
build_with_chromium being 0 or 1 solves the Chromium
build.

These changes will be restored once I've finished
a major GYP refactoring that will break out all
test related code (at least the parts that includes
the Android APK targets) into a separate chain
of GYP targets that are not processed when generating
projects for Chromium (which is why r7014 is breaking
the Chromium build).

BUG=3741
TESTED=Passing compilation of standalone using:
GYP_DEFINES="OS=android component=static_library fastbuild=1 target_arch=arm" webrtc/build/gyp_webrtc
ninja -C out/Debug
Then verified the *_apk  targets are generated and compiled.

Passing compilation from a Chromium checkout with third_party/webrtc
directory removed and a new empty third_party/webrtc mapped to the
standalone checkout using:
sudo mount --bind /path/to/trunk/webrtc third_party/webrtc
Then running build/gyp_chromium
I also verified WebRTC GYP targets exist and are able to compile.

R=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/20299004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7040 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-03 14:34:46 +00:00
andresp@webrtc.org
468516c959 RTCBot is a framework that allows to write tests where logic runs on a single
host that controls multiple endpoints ("bots"). Thus allowing to create more
complex scenarios that would otherwise require non-trival signalling between
multiple parties.

R=houssainy@google.com, phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/22239004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7021 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-02 10:52:54 +00:00
kjellander@webrtc.org
3bd4156d75 Android APK tests built from a normal WebRTC checkout.
Restructure how the Android APK tests are compiled now
that we have a Chromium checkout available (since r6938).

This removes the need of several hacks that were needed when
building these targets from inside a Chromium checkout.
By creating a symlink to Chromium's base we can compile the required
targets. This also removes the need of the previously precompiled
binaries we keep in /deps/tools/android at Google code.

All the user needs to do is to add the target_os = ["android"]
entry to his .gclient as described at
https://code.google.com/p/chromium/wiki/AndroidBuildInstructions

Before committing this CL, the Android APK buildbots will need
to be updated.
This also solves http://crbug.com/402594 since the apply_svn_patch.py
usage will be similar to the other standalone bots.
It also solves http://crbug.com/399297

BUG=chromium:399297, chromium:402594
TESTED=Locally compiled all APK targets by running:
GYP_DEFINES="OS=android include_tests=1 enable_tracing=1" gclient runhooks
ninja -C out/Release

checkdeps

R=henrike@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/22149004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7014 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-01 11:06:37 +00:00
kjellander@webrtc.org
a1bfc50a72 Pass GYP DEPTH variable to isolate.
Similar change to https://codereview.chromium.org/322403003/
This will make it possible to handle different
directory levels for special builds of WebRTC, without
breaking GYP when the .isolate files are processed and
their contents is verified.

Also update all our .isolate files to use the <(DEPTH)
variable.

BUG=343106
TEST=Successful compile+test on Linux using:
ninja -C out/Release
tools/swarming_client/isolate.py run -s out/Release/tools_unittests.isolated
Also trybots passing all tests.

R=pbos@webrtc.org
TBR=tina.legrand@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/13679004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6427 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-13 09:02:15 +00:00
kjellander@webrtc.org
7b82c18979 Add kjellander@webrtc.org as OWNER for *.isolate
This should make project-wide changes for isolate files
easier and make it more obvious who's a suitable reviewer
for them.

BUG=
R=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/19689004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6379 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-10 05:42:53 +00:00
henrike@webrtc.org
e6e139159f Android: cleanup gtest_target_type conditions.
Ever since crrev.com/133053 OS==android implies:
gtest_target_type=shared_library

Similar to Chromium's crrev.com/271222 where base.gyp's conditions are changed
(which the affected conditions in this cl comes from).

R=henrike@webrtc.org, wu@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/13539004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6332 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-04 20:46:50 +00:00
henrike@webrtc.org
88fbb2d86b Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
Same as https://webrtc-codereview.appspot.com/19519004. The issue in
http://chromegw.corp.google.com/i/internal.chromium.webrtc.fyi/builders/Linux...
is solved by this change
http://src.chromium.org/viewvc/chrome/trunk/src/third_party/libjingle/libjing...
(tested locally).

BUG=3380
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/17619005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6218 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 21:18:46 +00:00
mcasas@webrtc.org
2fa7f79094 Revert 6202 "Switch to using base/constructormagic.h and remove ..."
> Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
> 
> BUG=N/A
> R=andrew@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/19519004

TBR=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14579007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6210 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 11:07:29 +00:00
henrike@webrtc.org
125ffd709d Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
BUG=N/A
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/19519004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6202 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 15:20:44 +00:00
andresp@webrtc.org
a36ad6929d Add webrtc field trials API.
From now on it is expected that code linking system_wrappers.gyp:system_wrappers
provides an implementation for field_trial API or links with the default one in
system_wrappers.gyp:field_trial_default.

Note: Since there is no use of webrtc::field_trial API inside webrtc this CL on
itself does not forces the clients to actually define it. It however lays the
API and updates the gyp rules to link with so that it is ready to use.

Tested: Introduced a use of field trial in system wrappers and make sure all
bots were building successfully.

BUG=crbug/367114
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14489004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6147 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-14 12:24:04 +00:00
andrew@webrtc.org
8f69330310 Replace scoped_array<T> with scoped_ptr<T[]>.
scoped_array is deprecated. This was done using a Chromium clang tool:
http://src.chromium.org/viewvc/chrome/trunk/src/tools/clang/rewrite_scoped_ar...

except for the few not-built-on-Linux files which were updated manually.

TESTED=trybots
BUG=2515
R=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/12429004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5985 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-25 23:10:28 +00:00
fischman@webrtc.org
2c89b5cb27 Make everyone an OWNER for .gyp/.gypi add/delete purposes, non-talk/ edition.
This CL brought to you by:
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do echo -e "\n# These are for the common case of adding or renaming files. If you're doing\n# structural changes, please get a review from a reviewer in this file.\nper-file *.gyp=*\nper-file *.gypi=*" >> $d/OWNERS; done
$ for d in $(for f in $(git ls-files '*gyp' '*gypi'); do dirname $f; done|sort|uniq|grep -v '^\.$'); do git add $d/OWNERS; done

(and then removed the talk/ impact)

R=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11969004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5903 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-14 20:08:03 +00:00
andresp@webrtc.org
e6013bb7be Fix loopback test for case where no constraint is given.
R=stefan@webrtc.org
TBR=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11619004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5881 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-10 14:21:45 +00:00
andresp@webrtc.org
0273fa98e0 Add ability to control peer connection constraints for the loopback test.
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11419005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5879 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-10 09:40:16 +00:00
andresp@webrtc.org
5a0218c794 Allow loopback tests to do TURN when served from webrtc.googlecode.com.
BUG=3037
R=fischman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/10809004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5801 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-27 19:24:45 +00:00
andresp@webrtc.org
44eb87e6dd Tool to establish a loopback call via apprtc turn server.
For now the test keeps track of video bandwidth estimation and plots it
using google visualization libraries after the test is concluded.
There is also scripts to run a test and record the tcpdump.

BUG=3037
R=hta@webrtc.org, phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/9729004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5707 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-17 14:23:22 +00:00
mcasas@webrtc.org
4375e1acbb Add support for YUV4MPEG file reading to tools files. (Minor fix).
git-svn-id: http://webrtc.googlecode.com/svn/trunk@5703 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-14 12:51:02 +00:00
mcasas@webrtc.org
6e2d012b58 Add support for YUV4MPEG file reading to tools files.
This CL adds support for reading .y4m files to the infra in
video_quality_analysis.cc, adding new functions 
ExtractFrameFromYuvFile() and ExtractFrameFromY4mFile(),
instad of the previous ExtractFrameFromI420(). The decision
as to which one to use is taken from the file extension,
if it is .y4m then is considered a YUV4MPEG file, otherwise
is taken as a raw .yuv file.

It also removes the pseudo duplicated function 
GetNextI420Frame(), that is used from psnr_ssim_analyzer.c,
and adds support for y4m files there.

Tested/validated via local compile-run.

YUV4MPEG is a trivial container with a file header
and a per-frame header, see [1]

[1]
http://wiki.multimedia.cx/index.php?title=YUV4MPEG2

BUG=https://code.google.com/p/chromium/issues/detail?id=343504



git-svn-id: http://webrtc.googlecode.com/svn/trunk@5702 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-14 12:45:45 +00:00
phoglund@webrtc.org
cf9d364063 Now printing less output from compare_videos.py.
Alternative solution to the one in
https://codereview.chromium.org/114003006/.

I considered adding a verbose flag, but it needs to be passed through
like 5 functions, so I didn't think it was worth it for a function of
such speculative use.

BUG=chromium:327990
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/6679004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5347 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-01-07 17:59:30 +00:00
kjellander@webrtc.org
f9bdbe3619 Roll chromium_revision 232627:238260
This brings us the updated swarming_client
that has moved out from Chromium into a standalone
project.
Because of this, all .isolate files needed to be
updated as well, similar to the changes in
https://codereview.chromium.org/29993003

TEST=trybots passing
BUG=none
R=andrew@webrtc.org, perkj@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4859004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5260 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-11 13:37:12 +00:00
phoglund@webrtc.org
3260f109e3 Made video quality toolchain more configurable.
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/4139007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5171 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-25 14:10:20 +00:00
kjellander@webrtc.org
4c828e145e Remove update_resources.py as it's no longer used.
After http://review.webrtc.org/2095004/ has been landed
for normal WebRTC builds, and https://codereview.chromium.org/62273004/
and https://codereview.chromium.org/60513012/ for our Android
APK builds with a Chromium checkout, we should be fine to remove
this script.

I have verified that the runhooks step on the Android testers
is using the download_from_google_storage.py script to pull
the resources from Google Storage.

BUG=webrtc:2294
TEST=a few trybots passing compile step.
R=phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3579004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5099 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-08 09:08:36 +00:00
kjellander@webrtc.org
e2df8b7f01 Make video quality analysis unittests print to log instead of stdout.
I think it's best to avoid printing these perf numbers since
when we turn on perf measurements for Android, it will be for
all tests as far as I understand it works today.

TEST=trybots passing tools_unittests
BUG=none
R=phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/3109005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5072 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-03 18:34:51 +00:00
sprang@webrtc.org
fe5d36b6fe Move RtcpStatistics to webrtc/common_types.h, to be used by vie as well.
We will do some refactoring of video engine and would like to use the
same rtcp stats struct there. Both video and audio seem to use 8bit
fraction lost, so that is changed in the struct as well.

BUG=
R=henrik.lundin@webrtc.org, kjellander@webrtc.org, mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2959004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5039 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-28 09:21:07 +00:00
kjellander@webrtc.org
eb61a851d5 Move audio_e2e_harness into include_tests==1 condition.
To avoid compile errors when WebRTC is built as a part of
Chromium.

TEST=ran gclient runhooks locally.
BUG=none
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2609004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5003 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-21 08:40:56 +00:00
kjellander@webrtc.org
88a310886e Add audio_e2e_test target to tools.gyp
The moving this GYP target out of webrtc.gyp in
https://code.google.com/p/webrtc/source/detail?r=4949
this should have been added into tools.gyp.

TEST=trybots passing
BUG=none
TBR=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2539004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5002 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-19 18:10:04 +00:00
kjellander@webrtc.org
5b3b6b1784 Reorganize GYP targets to make webrtc.gyp more usable.
When WebRTC is built as a part of Chromium, some of
the stuff in webrtc.gyp will not be found. This CL
fixes this.

TEST=trybots passing. I also did some manual builds for Android with the android_builder_webrtc target in build/all_android.gyp of a Chromium checkout.
BUG=chromium:304143
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2353004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4949 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-10 08:48:16 +00:00
kjellander@webrtc.org
3f9288f987 Add APK and isolate target for video_engine_tests
Add .isolate file and _run target for video_engine_tests.

Move tools/swarm_client to be untracked in all .isolate file,
so refactorings in swarm_client doesn't require us updating
all our .isolate files (similar to the changes for the
Chromium tests done in:
https://src.chromium.org/viewvc/chrome?view=rev&revision=218844)

Update modules_unittests.isolate with new NetEq4 reference files
needed.

TEST=trybots passing
I also setup a Chromium workspace where I patched third_party/webrtc
with the changes in this CL, followed by compiling with the settings
described in
https://code.google.com/p/webrtc/issues/detail?id=1882#c11
I then verified that the video_engine_tests_apk dir was created
in the output folder.
BUG=1916,2462
R=andrew@webrtc.org, henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2344007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4925 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-04 18:20:38 +00:00
kjellander@webrtc.org
2a97317953 Fix include of isolate.gypi
Recent changes in GYP seem to have broken our previous
"hack" for getting the GYP rule for .isolate files
imported from the Chromium build/isolate.gypi.

The best solution for now is to remove the hack
and check in a copy of Chromium's src/build/isolate.gypi
in WebRTC's build/ dir instead. A similar approach is
used for our build/protoc.gypi file.

TEST=On Linux, I successfully ran:
gclient runhooks
ninja -C out/Release
and verified a bunch of .isolated files were created in
out/Release (which didn't happen before this patch).

I also renamed the build/isolate.gypi from Chromium to
ensure that our own is used and not that one (in case any
paths would be incorrect).

I also ran build/gyp_chromium in a Chromium checkout
with WebRTC in third_party/webrtc having this patch applied
to ensure GYP processing was still working.

Finally, I verified that the same project generation and
compilation from a Chromium checkout worked the way we build
our Android native tests, using:
. build/android/envsetup.sh
GYP_DEFINES="$GYP_DEFINES include_tests=1 enable_tracing=1" gclient runhooks
ninja -C out/Release android_builder_webrtc

BUG=1916
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2338004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4907 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 19:31:16 +00:00
kjellander@webrtc.org
c0b4c4a3c4 Workaround issue with stdin on Windows.
On Windows, sometimes the compare_videos.py script fails because
the inherited stdin handle from the parent process fails.
It seems we can work around this by passing null to stdin to
the subprocesses, since we're not using it anyway.

The errors looked like this:
Traceback (most recent call last):
  File "C:\b\build\slave\Win7_Tester\build\src\third_party/webrtc/tools/compare_videos.py", line 116, in <module>
    sys.exit(main())
  File "C:\b\build\slave\Win7_Tester\build\src\third_party/webrtc/tools/compare_videos.py", line 91, in main
    barcode_decoder = subprocess.Popen(cmd, stdout=sys.stdout, stderr=sys.stderr)
  File "C:\b\depot_tools\python_bin\lib\subprocess.py", line 588, in __init__
    errread, errwrite) = self._get_handles(stdin, stdout, stderr)
  File "C:\b\depot_tools\python_bin\lib\subprocess.py", line 686, in _get_handles
    p2cread = GetStdHandle(STD_INPUT_HANDLE)
WindowsError: [Error 6] The handle is invalid

Example from http://build.chromium.org/p/chromium.webrtc/builders/Win7%20Tester/builds/4498/steps/webrtc_manual_browser_tests_test/logs/stdio

BUG=302915
TEST=successful runs on Windows and Linux.
R=phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2334005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4902 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-02 15:04:45 +00:00
turaj@webrtc.org
a6101d76f4 Update sampling rate and number of channels of NetEq4 if decoder is changed.
We encounter a sample-underrun if NetEq is initialized with a sampling rate fs =16000 and receive Opus packets with frame-size less than 5 ms. The reason is as follows.

Let say NetEq buffer has 4 packets of Opus each of size 2.5ms this means that internally timestamp of packets incremented by 80 (internally Opus treated as 32 kHz codec). Given the initial sampling rate of NetEq, at the first time that it wants to fetch packets, it targets to fetch 160 samples. Therefore, it will only extracts 2 packets. Decoding these packets give us exactly 160 samples (5 ms at 32 kHz), however, upon decoding the first packet the internal sampling rate will be updated to 32 kHz. So it is expected that sync buffer to deliver 320 samples while it does only have 160 samples (or maybe few more as it starts with some zeros). And we encounter and under-run.

Even if we ignore the under-run  "assert(sync_buffer_->FutureLength() >= expand_->overlap_length())" (neteq_impl.cc::811) is trigered. I'm not sure what happens if we remove this assert perhaps NetEq will work fine in subsequent calls. However the first under-run is blocking ACM2 test to pass.

Here I have a solution to update sample rate as soon as a packet is inserted, if required. It not a very efficient approach as we do the same reset in NetEqImpl::Decode().

It is a bit tricky to reproduce this because the TOT ACM tests do not run ACM2. In https://webrtc-codereview.appspot.com/2192005/ I have a patch to run both ACMs. To reproduce the problem, one can patch that CL and run

$ out/Debug/modules_tests --gtest_filter=AudioCodingModuleTest.TestOpus

Note that we would not encounter any problem if NetEq4 is initiated with 32000 Hz sampling rate. You can test this by setting |kNeteqInitSampleRateHz| to 32000 in webrtc/modules/audio_coding/main/acm2/acm_receiver.cc

BUG=
R=andrew@webrtc.org, henrik.lundin@webrtc.org, kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2306004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4896 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-01 22:01:09 +00:00
pbos@webrtc.org
f26e8f6f57 Remove include_dirs from tools.
BUG=1662
TEST=compile on trybots
R=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2306005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4859 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-26 14:04:27 +00:00
pbos@webrtc.org
319c98d663 Fix format string in video_quality_analysis.cc.
Fixes compilation errors on Android and Linux32 targets.

TBR=kjellander@webrtc.org
BUG=

Review URL: https://webrtc-codereview.appspot.com/2196005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4717 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-10 15:23:50 +00:00
kjellander@webrtc.org
f880f863dd Convert printing in video quality tests to Chromium's perf format.
Add support for --label flag to the frame_analyzer, that
decides what label shall be used for the perf output.

BUG=none
TEST=
Make sure to have zxing and ffmpeg in the PATH.
Create a captured video (from running vie_auto_test custom call)
webrtc/tools/compare_videos.py --ref_video=reference_video.yuv --test_video=captured_output.yuv --frame_analyzer=out/Release/frame_analyzer --label=TEST_VGA
And then inspecting the output that is prefixed with RESULT.

R=phoglund@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2190005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4714 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-10 12:10:01 +00:00
kjellander@webrtc.org
e141373b8a Add isolate configuration for Android for all tests.
In https://code.google.com/p/webrtc/source/detail?r=4407
henrike@ added the path to the WebRTC resources and
data directories for Android that are required in order to
use isolate for test execution on Android.

This CL adds similar entries to the rest of the .isolate
files added in
https://code.google.com/p/webrtc/source/detail?r=4590.

It also removes three accidentally added .isolate files that originated
from old test names:
* audio_device_test_api
* video_capture_module_test
* video_render_module_test

BUG=1882,1916
TEST=trybots passing.
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2107004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4627 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-27 12:10:09 +00:00
kjellander@webrtc.org
3365422c41 Isolate GYP target and .isolate files for tests
This is a re-land attempt of http://review.webrtc.org/1673004/
It now includes a build/isolate.gypi in WebRTC that includes the same
file as the one that would be included when WebRTC is used in a Chromium
checkout. It is needed since it is not possible to use variables in GYP's
includes sections.

Implemented according to the instructions at
http://www.chromium.org/developers/testing/isolated-testing

Workflow has been like this:
1. create _run GYP target
2. create a stripped down .isolate file
3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
4. runhooks
5. compile
6. test if the test would run (i.e. find it's dependencies) without
   actually executing it:
   tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
7. If failing, run the fix_test_cases.py script like this:
   tools/swarm_client/googletest/fix_test_cases.py --isolated out/Release/testname.isolated

All tests that run on the bots for WebRTC has got _run target
and .isolate file created.

"Normal tests" that run fine on any machine:
* audio_decoder_unittests
* common_audio_unittests
* common_video_unittests
* metrics_unittests
* modules_tests
* modules_unittests
* neteq_unittests
* system_wrappers_unittests
* test_support_unittests
* tools_unittests
* video_engine_core_unittests
* voice_engine_unittests

Tests that requires bare-metal and audio/video devices:
* audio_device_tests
* video_capture_tests

I also added the isolate boilerplate code for the following
tests that are not yet pure gtest binaries (which means they
cannot run isolated yet):
* video_render_tests
* vie_auto_test
* voe_auto_test

TEST=running isolate.py as described above. WebRTC trybots passing. Created a Chromium checkout with third_party/webrtc ToT and this patch applied, passing the runhooks step.
BUG=1916
R=henrike@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2056004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4590 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-22 07:57:00 +00:00
kjellander@webrtc.org
4298f73031 Revert 4547 "Isolate GYP target and .isolate files for tests"
As this breaks the FYI bots in 
http://build.chromium.org/p/chromium.webrtc.fyi/waterfall
due to different path to isolate.gypi (which cannot easily
be resolved due to limitations in GYP)

> Isolate GYP target and .isolate files for tests
> 
> Implemented according to the instructions at
> http://www.chromium.org/developers/testing/isolated-testing
> 
> Workflow has been like this:
> 1. create _run GYP target
> 2. create a stripped down .isolate file
> 3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
> 4. runhooks
> 5. compile
> 6. test if the test would run (i.e. find it's dependencies) without
>    actually executing it:
>    tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
> 7. If failing, run the fix_test_cases.py script like this:
>    tools/swarm_client/fix_test_cases.py --isolated out/Release/testname.isolated
> 
> All tests that run on the bots for WebRTC has got _run target
> and .isolate file created.
> 
> "Normal tests" that run fine on any machine:
> * audio_decoder_unittests
> * common_audio_unittests
> * common_video_unittests
> * metrics_unittests
> * modules_integrationtests
> * modules_unittests
> * neteq_unittests
> * system_wrappers_unittests
> * test_support_unittests
> * tools_unittests
> * video_engine_core_unittests
> * voice_engine_unittests
> 
> Tests that requires bare-metal and audio/video devices:
> * audio_device_integrationtests
> * video_capture_integrationtests
> 
> I also added the isolate boilerplate code for the following
> tests that are not yet pure gtest binaries (which means they
> cannot run isolated yet):
> * video_render_integrationtests
> * vie_auto_test
> * voe_auto_test
> 
> TEST=running isolate.py as described above.
> BUG=1916
> R=tommi@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/1673004

TBR=kjellander@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2040004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4548 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 11:29:58 +00:00
kjellander@webrtc.org
d7a4d235d2 Isolate GYP target and .isolate files for tests
Implemented according to the instructions at
http://www.chromium.org/developers/testing/isolated-testing

Workflow has been like this:
1. create _run GYP target
2. create a stripped down .isolate file
3. export GYP_DEFINES="$GYP_DEFINES test_isolation_mode=check"
4. runhooks
5. compile
6. test if the test would run (i.e. find it's dependencies) without
   actually executing it:
   tools/swarm_client/isolate.py run --isolated out/Release/testname.isolated
7. If failing, run the fix_test_cases.py script like this:
   tools/swarm_client/fix_test_cases.py --isolated out/Release/testname.isolated

All tests that run on the bots for WebRTC has got _run target
and .isolate file created.

"Normal tests" that run fine on any machine:
* audio_decoder_unittests
* common_audio_unittests
* common_video_unittests
* metrics_unittests
* modules_integrationtests
* modules_unittests
* neteq_unittests
* system_wrappers_unittests
* test_support_unittests
* tools_unittests
* video_engine_core_unittests
* voice_engine_unittests

Tests that requires bare-metal and audio/video devices:
* audio_device_integrationtests
* video_capture_integrationtests

I also added the isolate boilerplate code for the following
tests that are not yet pure gtest binaries (which means they
cannot run isolated yet):
* video_render_integrationtests
* vie_auto_test
* voe_auto_test

TEST=running isolate.py as described above.
BUG=1916
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1673004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4547 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-15 10:02:06 +00:00
pbos@webrtc.org
12dc1a38ca Switch C++-style C headers with their C equivalents.
The C++ headers define the C functions within the std:: namespace, but
we mainly don't use the std:: namespace for C functions. Therefore we
should include the C headers.

BUG=1833
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1917004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4486 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-05 16:22:53 +00:00
henrike@webrtc.org
89c674053e Adds all unittests to android NDK-APK framework.
BUG=N/A
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1872004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4474 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-02 16:53:47 +00:00