[webkit-dev] mod_pywebsocket for testing Web Socket implementation

Yuzo Fujishima yuzo at google.com
Mon Sep 7 22:12:05 PDT 2009


On Tue, Sep 8, 2009 at 2:00 PM, Mark Rowe<mrowe at apple.com> wrote:

> On 2009-09-07, at 21:30, Yuzo Fujishima wrote:

>> Hi, Mark,

>> Thank you for the response.

>> I've switched to mod_python-based approach because:
>> - It should be closer to what real web sites would do.
>>  (See a comment by ap@: https://bugs.webkit.org/show_bug.cgi?id=27490#c3)

>> - I thought extending httpd is preferred to adding a new thing.
>>  (See a comment by eric@:
>> https://bugs.webkit.org/show_bug.cgi?id=27491#c7)
>>  Maybe I misunderstood the intention.

> Eric's comment seems to be about code duplication in run-webkit-tests more
> than anything.

Yes, I actually agree now. :)

>> - I don't have to worry about SSL (mod_ssl would do it)

>> And, I thought there is a way to install extension modules to the
>> development httpd.
>> Would installing mod_python and mod_pywebsocket be very difficult?

> Our goal is to have regression tests that work out of the box on as many
> platform as is possible.  On Windows this means that the required software
> be available from Cygwin.  On Mac OS X this means that required software
> is
> included with the operating system.  I'm not aware of any existing
> regression tests that require extra software to be installed on all
> platforms before they can be run.

It should probably because Web Socket is the only feature so far that
requires new behavior on the server side.

>> Then perhaps I need to write an adapter to call mod_pywebsocket from
>> a standalone Python web server such as SimpleHTTPServer-derived one.
>> (SSL could be an issue here. Python 2.3 doesn't have a module for SSL and
>> we need
>> to use a third party module such as pyOpenSSL. How easy it is to add
>> a third party Python module to WebKit development environment?)

> Python starting with v2.6 has reasonable built-in support for SSL servers.
>  This is the version that ships with Mac OS X 10.6.  Mac OS X 10.5 ships
> with Python 2.5 (predating this built-in support) but includes pyOpenSSL.
>  Mac OS X 10.4 ships with Python 2.3 and does not include pyOpenSSL.  From
> what I can see, Cygwin currently has Python 2.5 and does not appear to
> support pyOpenSSL.

> It seems that only a small portion of the WebSockets tests would need to
> deal with SSL, while the majority of the tests would work fine on any
> platform supporting Python 2.3.  For the SSL tests it would be reasonable
> to
> have tests that worked out of the box on only some platforms, especially
> when those platforms are used by the majority of WebKit developers (Mac
> OS X
>> = 10.5 and Linux).  Doing this seems like a simpler approach than
>> requiring
> two third-party Apache modules be built + configured on all platforms in
> order to run even the basic tests.

It sounds like a good news to me that we can give up SSL tests on some


> - Mark

>> On Tue, Sep 8, 2009 at 11:21 AM, Mark Rowe<mrowe at apple.com> wrote:

>>> On 2009-09-07, at 18:28, Yuzo Fujishima wrote:

>>>> Hi, webkit-dev,

>>>> I'd like to propose to use mod_pywebsocket
>>>> http://code.google.com/p/pywebsocket/
>>>> to test WebKit's implementation of Web Socket.

>>>> To do that, we need to install mod_python and mod_pywebsocket to
>>>> the Apache HTTP server used for testing WebKit. (I assume mod_ssl is
>>>> already there.)

>>>> I think I can modify .conf files under LayoutTests/http/conf but need
>>>> instruction
>>>> as to how to ensure that each test server has mod_python and
>>>> mod_pywebsocket
>>>> installed. Can anyone help? Any pointers or examples?

>>> The WebKit regression tests use the system version of Apache on each
>>> platform that they run on.  mod_python and mod_pywebsocket are not
>>> Apache
>>> modules that are included out of the box on most platforms, which makes
>>> them
>>> difficult to use in our regression tests.  I recall work was done on a
>>> server implementation for WebSocket regression testing that was written
>>> purely in Python.  What happened to that?  Why was that simple approach
>>> dropped in favor of an approach that requires multiple third-party
>>> Apache
>>> modules to be built and installed?

>>> - Mark

More information about the webkit-dev mailing list