Open Bug 572572 Opened 9 years ago Updated 11 months ago

Allow mochitest servers to use dynamic ports

Categories

(Testing :: Mochitest, defect)

defect
Not set

Tracking

(Not tracked)

People

(Reporter: jgriffin, Unassigned)

References

Details

Mochitest currently starts several servers that listen for traffic on hardcoded ports:

_DEFAULT_WEB_SERVER = "127.0.0.1"
_DEFAULT_HTTP_PORT = 8888
_DEFAULT_SSL_PORT = 4443
_DEFAULT_WEBSOCKET_PORT = 9999

Instead of using hardcoded ports, these servers should be able to dynamically select an unused port and report that port number back to the automation framework.
Blocks: 605176
Added this bug to the blocker list for Android Tegra unittest integration.

Tegra slaves run on a single server and, as such, we are unable to have remotereftests.py spawn a web server with a hardcoded port #

We also need to have a parameter added to allow the IP address to be passed in so remotereftests.py can construct the web server URL
Mike, we already have this ability in remotereftest.py

You can use --http-port and --ssl-port to specify these items.  For mochitest, we need to add the websocket port.  And you can also use the --remote-webserver parameter to specify the parameter of the webserver.  Of course, keep in mind for reftest, that you will have to use the remote-webserver IP address after the command line in the URL to the manfiest file, i.e.:

python remotereftest.py --app=org.mozilla.fennec --remote-webserver=10.250.5.148 --http-port=8001 --ssl-port=4441 --xre-path=../firefox http://10.250.5.148:8001/tests/layout/reftests/border-radius/reftest.list
(In reply to comment #2)
> Mike, we already have this ability in remotereftest.py
> 
> You can use --http-port and --ssl-port to specify these items.  For mochitest,
> we need to add the websocket port.  And you can also use the --remote-webserver
> parameter to specify the parameter of the webserver.  Of course, keep in mind
> for reftest, that you will have to use the remote-webserver IP address after
> the command line in the URL to the manfiest file, i.e.:
> 
> python remotereftest.py --app=org.mozilla.fennec
> --remote-webserver=10.250.5.148 --http-port=8001 --ssl-port=4441
> --xre-path=../firefox
> http://10.250.5.148:8001/tests/layout/reftests/border-radius/reftest.list

yea, joel mentioned it after I commented in the bug and, FYI, I don't think I put the http://10.250.5.148:8001 part for the last parameters, just the path
Bear: still a bug? or close?
still a bug - it will be closed when I land patches for reftests (which is what i'm working on this week)
Duplicate of this bug: 635357
(In reply to comment #2)
> Mike, we already have this ability in remotereftest.py

The original point of this bug was to make it so that the Mochitest servers would pick a random free port to use. It's not really hard to implement, just needs some fiddling. (Specifying any port sucks because of the possibility of it being in use.)
Specifying the port makes for easier use on SUT tests (afaict), where you need to tell both the device and the server which port to use.

So we may be overloading the bug by asking for the SUT fix here; should we split that out to a separate bug?  (Comment 2 makes it sound like we have a reftest-specific fix there and we need to add that functionality to other tests; please correct me if I'm reading that wrong.)
(In reply to comment #8)
> Specifying the port makes for easier use on SUT tests (afaict), where you need
> to tell both the device and the server which port to use.

runtestsremote.py handles both of these tasks, so it shouldn't be an issue?
correct.  There is more work todo when we get websocket tests running on remote, but http and ssl ports are configurable via the command line options --http-port and --ssl-port already.

This bug should be for automatically choosing the ports based on availability.
No longer blocking tests on tegras, removing dependency.
No longer blocks: 605176
Assignee: jgriffin → nobody
No assignee, updating the status.
Status: ASSIGNED → NEW
No assignee, updating the status.
No assignee, updating the status.
No assignee, updating the status.
You need to log in before you can comment on or make changes to this bug.