New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 623660 link

Starred by 6 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

Add unittests for TLS TURN

Project Member Reported by sergeyu@chromium.org, Jun 27 2016

Issue description

Bug 623463 broke TLS support in WebRTC and tests didn't catch this issue. Currently there are unittests for P2PSocketHostTcp that use TLS mode and such test would have caught that bug.
 
Cc: pthatcher@chromium.org deadbeef@chromium.org
Labels: MissingTests
[triage]: pthatcher, can you help with an owner?
Owner: phoglund@chromium.org
Status: Assigned (was: Untriaged)
This seems to need an integration test.
Labels: WebrtcTriaged
phoglund@, Is there any existing test which we can adapt for this test?
Cc: ehmaldonado@webrtc.org
If it's enough with two peerconnections talking to each other in a page, our content_browsertest https://cs.chromium.org/chromium/src/content/browser/media/webrtc/webrtc_browsertest.cc?q=webrtc_browser&sq=package:chromium&l=1 is appropriate, otherwise extend browser_test https://cs.chromium.org/chromium/src/chrome/browser/media/webrtc_browsertest.cc?q=webrtc_browsert&sq=package:chromium&l=1 which runs a call between two Chrome tabs.

None of our tests specify TURN servers though. You can't hit any real TURN servers since that would make the tests non-hermetic and flaky. Is there any easy way to bring up a TURN server on the machine running the test, and point the tests there? Or can you exercise this without going through a TURN server?
We have the WebRTC test TURN server which could be run locally, but it doesn't support TLS-over-TCP. This also means the WebRTC unit tests don't test TLS TURN.

I'd say we should add this support to the test TURN server and fix the WebRTC unit tests. Once that's done we can use the same TURN server for the Chrome integration tests. If you agree, you can assign the bug to me for the time being.
Labels: -WebrtcTriaged WebRTCTriaged
Owner: deadbeef@chromium.org
Sounds like an excellent plan. Assign the bug back to ehmaldonado@ after you add TLS support to the test server, however, and he'll take a look.

Edward, once Taylor (deadbeef) is done adding TLS support, you'll need to write a new browser test which launches the test TURN server locally. You can then pass in TURN servers in the peer connection constructor, I believe. We currently pass in null for all browser tests (see https://cs.chromium.org/chromium/src/content/test/data/media/peerconnection-call.html?q=peerconnection-ca&sq=package:chromium&dr&l=709), but you'll need to pass something like

{ "iceServers": [{ "url": "localhost:19302" }] }

, depending on which port the local turn server came up at.
Owner: ----
Status: Available (was: Assigned)
Removing owner and setting status to Available, since the issue isn't currently being worked on.

Sign in to add a comment