Go to file
phoglund@webrtc.org 006521d5bd Makes libjingle_peerconnection_android_unittest run on networkless devices.
PeerConnectionTest.java currently works, but only on a device with
network interfaces up. This is not a problem for desktop, but it is a
problem when running on Android devices since the devices in the lab
generally don't have network (due to the chaotic radio environment in
the device labs, devices are simply kept in flight mode).

The test does work if one modifies this line in the file
webrtc/base/network.cc:

bool ignored = ((cursor->ifa_flags & IFF_LOOPBACK) ||
                IsIgnoredNetwork(*network));

If we remove the IFF_LOOPBACK clause, the test starts working on
an Android device in flight mode. This is nice - we're running the
call and packets interact with the OS network stack, which is good
for this end-to-end test. We can't just remove the clause though since
having loopback is undesirable for everyone except the test (right)?
so we need to make this behavior configurable.

This CL takes a stab at a complete solution where we pass a boolean
all the way through the Java PeerConnectionFactory down to the
BasicNetworkManager. This comes as a heavy price in interface
changes though. It's pretty out of proportion, but fundamentally we
need some way of telling the network manager that it is on Android
and in test mode. Passing the boolean all the way through is one way.

Another way might be to put the loopback filter behind an ifdef and
link a custom libjingle_peerconnection.so with the test. That is hacky
but doesn't pollute the interfaces. Not sure how to solve that in GYP
but it could mean some duplication between the production and
test .so files.

It would have been perfect to use flags here, but then we need to
hook up gflags parsing to some main() somewhere to make sure the
flag gets parsed, and make sure to pass that flag in our tests.
I'm not sure how that can be done.

Making the loopback filtering conditional is exactly how we solved the
equivalent problem in content_browsertests in Chrome, and it worked
great.

That's all I could think of.

BUG=4181
R=perkj@webrtc.org, pthatcher@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#8344}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8344 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-12 09:24:25 +00:00
chromium Roll chromium_revision 9070a80..cd35af6 (313233:314322) 2015-02-03 15:24:22 +00:00
data audio_processing: Added a new AEC delay metric value that gives the amount of poor delays 2015-02-03 06:07:21 +00:00
resources resources/audio_processing: Removed unused test files 2014-12-15 15:57:11 +00:00
talk Makes libjingle_peerconnection_android_unittest run on networkless devices. 2015-02-12 09:24:25 +00:00
third_party Roll gtest-parallel. 2015-02-05 12:37:42 +00:00
tools Roll chromium_revision 9070a80..cd35af6 (313233:314322) 2015-02-03 15:24:22 +00:00
webrtc Makes libjingle_peerconnection_android_unittest run on networkless devices. 2015-02-12 09:24:25 +00:00
.clang-format Style-option file for clang-format. 2013-11-25 15:30:37 +00:00
.gitignore Make Git ignore in resources more fine-grained 2015-02-11 09:59:19 +00:00
all.gyp Revert r7886:7887. 2014-12-15 07:03:04 +00:00
android-webrtc.mk Changed a flag in ARM build for platform build. 2012-09-08 00:32:59 +00:00
AUTHORS Re-land: Add API to get negotiated SSL ciphers 2015-02-11 22:35:30 +00:00
BUILD.gn Initial GN work for WebRTC 2014-06-17 08:54:03 +00:00
check_root_dir.py Remove root_dir variable from DEPS + enforce rename. 2014-10-09 09:11:27 +00:00
codereview.settings Adding TRYSERVER_PROJECT to codereview.settings. 2015-01-19 13:51:59 +00:00
COPYING Libjingle in webrtc needs updated AUTHORS, COPYING, LICENSE_THIRD_PARTY AND README. 2013-07-16 18:04:56 +00:00
DEPS Roll chromium_revision 598c3e9..601e6f3 2015-02-10 07:34:41 +00:00
drover.properties Add a drover.properties file for reference. 2013-05-30 18:15:54 +00:00
libvpx.mk Change android makefile to reflect recent file structure change 2011-07-13 17:49:49 +00:00
LICENSE Updated license path in LICENSE and LICENSE_THIRD_PARTY. 2012-11-22 12:06:21 +00:00
license_template.txt Update template to follow chromium copyright style 2013-04-24 01:01:28 +00:00
LICENSE_THIRD_PARTY Libjingle in webrtc needs updated AUTHORS, COPYING, LICENSE_THIRD_PARTY AND README. 2013-07-16 18:04:56 +00:00
OWNERS Add kjellander as PRESUBMIT.py OWNER 2014-11-04 17:06:31 +00:00
PATENTS Add references to src/ copies for LICENSE etc. 2011-10-26 01:05:07 +00:00
PRESUBMIT.py Re-land "Remove <(webrtc_root) from source file entries." 2015-01-29 14:30:41 +00:00
setup_links.py Roll chromium_revision 9070a80..cd35af6 (313233:314322) 2015-02-03 15:24:22 +00:00
sync_chromium.py Roll chromium_revision 9070a80..cd35af6 (313233:314322) 2015-02-03 15:24:22 +00:00
WATCHLISTS Removing giles@mozilla.com from WebRTC watchlist. 2014-12-22 12:49:14 +00:00