Re: [webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-14 Thread Jochen Eisinger
I created a page with instructions how to use content_shell here:
https://sites.google.com/a/chromium.org/dev/developers/testing/webkit-layout-tests/content-shell

At the bottom, I summarized next steps, esp. how we can reuse chromium's
test controller for the content shell

best
-jochen

On Mon, Jun 11, 2012 at 1:53 AM, Darin Fisher da...@chromium.org wrote:



 On Fri, Jun 8, 2012 at 12:51 PM, Jochen Eisinger joc...@chromium.orgwrote:



 On Fri, Jun 8, 2012 at 9:41 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Fri, Jun 8, 2012 at 12:18 PM, Jochen Eisinger joc...@chromium.orgwrote:

 I've implemented initial support for running layout tests using
 chromium's content_shell instead of test_shell as the current DRT
 implementation does. It's still a very experimental, but might already be
 interesting for some of you to try.


 This is great! Thanks a lot on working this.

 1. Make sure your WebKit is at least at r119852 (see
 http://trac.webkit.org/wiki/Chromium for prerequisites)
 2. Apply the attachment from
 https://bugs.webkit.org/show_bug.cgi?id=87045
 3. In Source/WebKit/chromium run gclient sync
 4. build webkit as usual

 E.g. for a debug build on Linux, this should give you
 out/Debug/content_shell

 You can now run layout tests like this:

 new-run-webkit-tests --chromium --debug --driver-name=content_shell
 --additional-drt-flag=--dump-render-tree LayoutTests/storage/indexeddb/*

 You'll notice that not all tests are passing yet, mainly because not
 all (or actually, almost none of the) layoutTestController features are
 implemented yet.


  Where is layoutTestController implemented? We definitely need to move
 the implementation of layoutTestController, eventSender, etc... into WebKit
 repository because we often rename functions, etc... in WebKit. It's
 unacceptable to require having to modify Chromium code in order to do this
 refactoring in the future.


 It's currently here:
 http://code.google.com/searchframe#OAMlx_jo-ck/src/content/shell/layout_test_controller.jsexact_package=chromium

 Per my other thread about sharing IDLs between DumpRenderTree and
 WebKitTestRunner, I would like to see us sharing IDL with WebKitTestRunner
 instead of adding yet another binding code.

 Another missing feature is producing pixel results. However, I'm
 currently concentrating on text results, as I think the biggest benefit is
 the ability to run storage tests on the real storage implementation.


 That sounds great to me but we definitely need to support pixel results
 eventually. I'm more than happy to help you on that but that requires the
 codebase to be moved into WebKit repository.


 Here's the basic problem: content_shell depends on content, so moving
 this on the webkit repository would mean that webkit depended on content.

 Another solution would be to formalize the test shell API our current
 layout test controller in webkit uses (Tools/DumpRenderTree/chromium), and
 add a method to chromium's webkit support library that returns a webview
 that supports all the hooks required. The webview could then either be
 implemented by test_shell or by content_shell


 ^^^ This second solution seems like it will work well.  It will enable the
 guts of layoutTestController to remain in the WebKit repository.  This is
 just a variation of exactly what we do today.  You only need to move
 creation of WebView to Chromium so that we can eliminate WebViewHost.cpp
 (and other simple application shell bits).

 -Darin



 best
 -jochen

 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-10 Thread Darin Fisher
On Fri, Jun 8, 2012 at 12:51 PM, Jochen Eisinger joc...@chromium.orgwrote:



 On Fri, Jun 8, 2012 at 9:41 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Fri, Jun 8, 2012 at 12:18 PM, Jochen Eisinger joc...@chromium.orgwrote:

 I've implemented initial support for running layout tests using
 chromium's content_shell instead of test_shell as the current DRT
 implementation does. It's still a very experimental, but might already be
 interesting for some of you to try.


 This is great! Thanks a lot on working this.

 1. Make sure your WebKit is at least at r119852 (see
 http://trac.webkit.org/wiki/Chromium for prerequisites)
 2. Apply the attachment from
 https://bugs.webkit.org/show_bug.cgi?id=87045
 3. In Source/WebKit/chromium run gclient sync
 4. build webkit as usual

 E.g. for a debug build on Linux, this should give you
 out/Debug/content_shell

 You can now run layout tests like this:

 new-run-webkit-tests --chromium --debug --driver-name=content_shell
 --additional-drt-flag=--dump-render-tree LayoutTests/storage/indexeddb/*

 You'll notice that not all tests are passing yet, mainly because not all
 (or actually, almost none of the) layoutTestController features are
 implemented yet.


  Where is layoutTestController implemented? We definitely need to move
 the implementation of layoutTestController, eventSender, etc... into WebKit
 repository because we often rename functions, etc... in WebKit. It's
 unacceptable to require having to modify Chromium code in order to do this
 refactoring in the future.


 It's currently here:
 http://code.google.com/searchframe#OAMlx_jo-ck/src/content/shell/layout_test_controller.jsexact_package=chromium

 Per my other thread about sharing IDLs between DumpRenderTree and
 WebKitTestRunner, I would like to see us sharing IDL with WebKitTestRunner
 instead of adding yet another binding code.

 Another missing feature is producing pixel results. However, I'm
 currently concentrating on text results, as I think the biggest benefit is
 the ability to run storage tests on the real storage implementation.


 That sounds great to me but we definitely need to support pixel results
 eventually. I'm more than happy to help you on that but that requires the
 codebase to be moved into WebKit repository.


 Here's the basic problem: content_shell depends on content, so moving this
 on the webkit repository would mean that webkit depended on content.

 Another solution would be to formalize the test shell API our current
 layout test controller in webkit uses (Tools/DumpRenderTree/chromium), and
 add a method to chromium's webkit support library that returns a webview
 that supports all the hooks required. The webview could then either be
 implemented by test_shell or by content_shell


^^^ This second solution seems like it will work well.  It will enable the
guts of layoutTestController to remain in the WebKit repository.  This is
just a variation of exactly what we do today.  You only need to move
creation of WebView to Chromium so that we can eliminate WebViewHost.cpp
(and other simple application shell bits).

-Darin



 best
 -jochen

 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


[webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-08 Thread Jochen Eisinger
Hey,

I've implemented initial support for running layout tests using chromium's
content_shell instead of test_shell as the current DRT implementation does.
It's still a very experimental, but might already be interesting for some
of you to try.

The main advantage is that content_shell includes chromium's full storage
implementation, so layout tests for indexed db are running against the
multi-processed IDB implementation instead of the simple stub used for DRT.

Here's how to build webkit with content_shell:

1. Make sure your WebKit is at least at r119852 (see
http://trac.webkit.org/wiki/Chromium for prerequisites)
2. Apply the attachment from https://bugs.webkit.org/show_bug.cgi?id=87045
3. In Source/WebKit/chromium run gclient sync
4. build webkit as usual

E.g. for a debug build on Linux, this should give you
out/Debug/content_shell

You can now run layout tests like this:

new-run-webkit-tests --chromium --debug --driver-name=content_shell
--additional-drt-flag=--dump-render-tree LayoutTests/storage/indexeddb/*

You'll notice that not all tests are passing yet, mainly because not all
(or actually, almost none of the) layoutTestController features are
implemented yet.

Another missing feature is producing pixel results. However, I'm currently
concentrating on text results, as I think the biggest benefit is the
ability to run storage tests on the real storage implementation.

Let me know if you have any feedback, comments, or questions. If somebody
is implemented in helping adding features (e.g. to get your favorite part
of the layout tests passing), I'm happy to point you at the code locations!

best
-jochen
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-08 Thread Ryosuke Niwa
On Fri, Jun 8, 2012 at 12:18 PM, Jochen Eisinger joc...@chromium.orgwrote:

 I've implemented initial support for running layout tests using chromium's
 content_shell instead of test_shell as the current DRT implementation does.
 It's still a very experimental, but might already be interesting for some
 of you to try.


This is great! Thanks a lot on working this.

1. Make sure your WebKit is at least at r119852 (see
 http://trac.webkit.org/wiki/Chromium for prerequisites)
 2. Apply the attachment from https://bugs.webkit.org/show_bug.cgi?id=87045
 3. In Source/WebKit/chromium run gclient sync
 4. build webkit as usual

 E.g. for a debug build on Linux, this should give you
 out/Debug/content_shell

 You can now run layout tests like this:

 new-run-webkit-tests --chromium --debug --driver-name=content_shell
 --additional-drt-flag=--dump-render-tree LayoutTests/storage/indexeddb/*

 You'll notice that not all tests are passing yet, mainly because not all
 (or actually, almost none of the) layoutTestController features are
 implemented yet.


Where is layoutTestController implemented? We definitely need to move the
implementation of layoutTestController, eventSender, etc... into WebKit
repository because we often rename functions, etc... in WebKit. It's
unacceptable to require having to modify Chromium code in order to do this
refactoring in the future.

Per my other thread about sharing IDLs between DumpRenderTree and
WebKitTestRunner, I would like to see us sharing IDL with WebKitTestRunner
instead of adding yet another binding code.

Another missing feature is producing pixel results. However, I'm currently
 concentrating on text results, as I think the biggest benefit is the
 ability to run storage tests on the real storage implementation.


That sounds great to me but we definitely need to support pixel results
eventually. I'm more than happy to help you on that but that requires the
codebase to be moved into WebKit repository.

- Ryosuke
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-08 Thread Jochen Eisinger
On Fri, Jun 8, 2012 at 9:41 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Fri, Jun 8, 2012 at 12:18 PM, Jochen Eisinger joc...@chromium.orgwrote:

 I've implemented initial support for running layout tests using
 chromium's content_shell instead of test_shell as the current DRT
 implementation does. It's still a very experimental, but might already be
 interesting for some of you to try.


 This is great! Thanks a lot on working this.

 1. Make sure your WebKit is at least at r119852 (see
 http://trac.webkit.org/wiki/Chromium for prerequisites)
 2. Apply the attachment from
 https://bugs.webkit.org/show_bug.cgi?id=87045
 3. In Source/WebKit/chromium run gclient sync
 4. build webkit as usual

 E.g. for a debug build on Linux, this should give you
 out/Debug/content_shell

 You can now run layout tests like this:

 new-run-webkit-tests --chromium --debug --driver-name=content_shell
 --additional-drt-flag=--dump-render-tree LayoutTests/storage/indexeddb/*

 You'll notice that not all tests are passing yet, mainly because not all
 (or actually, almost none of the) layoutTestController features are
 implemented yet.


  Where is layoutTestController implemented? We definitely need to move the
 implementation of layoutTestController, eventSender, etc... into WebKit
 repository because we often rename functions, etc... in WebKit. It's
 unacceptable to require having to modify Chromium code in order to do this
 refactoring in the future.


It's currently here:
http://code.google.com/searchframe#OAMlx_jo-ck/src/content/shell/layout_test_controller.jsexact_package=chromium

Per my other thread about sharing IDLs between DumpRenderTree and
 WebKitTestRunner, I would like to see us sharing IDL with WebKitTestRunner
 instead of adding yet another binding code.

 Another missing feature is producing pixel results. However, I'm currently
 concentrating on text results, as I think the biggest benefit is the
 ability to run storage tests on the real storage implementation.


 That sounds great to me but we definitely need to support pixel results
 eventually. I'm more than happy to help you on that but that requires the
 codebase to be moved into WebKit repository.


Here's the basic problem: content_shell depends on content, so moving this
on the webkit repository would mean that webkit depended on content.

Another solution would be to formalize the test shell API our current
layout test controller in webkit uses (Tools/DumpRenderTree/chromium), and
add a method to chromium's webkit support library that returns a webview
that supports all the hooks required. The webview could then either be
implemented by test_shell or by content_shell

best
-jochen
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-08 Thread Ryosuke Niwa
On Fri, Jun 8, 2012 at 12:51 PM, Jochen Eisinger joc...@chromium.orgwrote:

 On Fri, Jun 8, 2012 at 9:41 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Per my other thread about sharing IDLs between DumpRenderTree and
 WebKitTestRunner, I would like to see us sharing IDL with WebKitTestRunner
 instead of adding yet another binding code.

 Another missing feature is producing pixel results. However, I'm
 currently concentrating on text results, as I think the biggest benefit is
 the ability to run storage tests on the real storage implementation.


 That sounds great to me but we definitely need to support pixel results
 eventually. I'm more than happy to help you on that but that requires the
 codebase to be moved into WebKit repository.


 Here's the basic problem: content_shell depends on content, so moving this
 on the webkit repository would mean that webkit depended on content.

 Another solution would be to formalize the test shell API our current
 layout test controller in webkit uses (Tools/DumpRenderTree/chromium), and
 add a method to chromium's webkit support library that returns a webview
 that supports all the hooks required. The webview could then either be
 implemented by test_shell or by content_shell


I don't know any architectural details of content_shell so it's hard for me
to comment on this matter, but I don't see a problem in
WebKitChromiumTestRunner (hypothetical name to be consistent with
WebKitTestRunner) depending on content_shell given that WebKitTestRunner
also depends on WebKit2 API.

- Ryosuke
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-08 Thread Jochen Eisinger
On Fri, Jun 8, 2012 at 9:55 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Fri, Jun 8, 2012 at 12:51 PM, Jochen Eisinger joc...@chromium.orgwrote:

  On Fri, Jun 8, 2012 at 9:41 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Per my other thread about sharing IDLs between DumpRenderTree and
 WebKitTestRunner, I would like to see us sharing IDL with WebKitTestRunner
 instead of adding yet another binding code.

 Another missing feature is producing pixel results. However, I'm
 currently concentrating on text results, as I think the biggest benefit is
 the ability to run storage tests on the real storage implementation.


 That sounds great to me but we definitely need to support pixel results
 eventually. I'm more than happy to help you on that but that requires the
 codebase to be moved into WebKit repository.


 Here's the basic problem: content_shell depends on content, so moving
 this on the webkit repository would mean that webkit depended on content.

 Another solution would be to formalize the test shell API our current
 layout test controller in webkit uses (Tools/DumpRenderTree/chromium), and
 add a method to chromium's webkit support library that returns a webview
 that supports all the hooks required. The webview could then either be
 implemented by test_shell or by content_shell


 I don't know any architectural details of content_shell so it's hard for
 me to comment on this matter, but I don't see a problem in
 WebKitChromiumTestRunner (hypothetical name to be consistent with
 WebKitTestRunner) depending on content_shell given that WebKitTestRunner
 also depends on WebKit2 API.


Today, when somebody adds e.g. a new callback to LayoutTestController, they
can just patch DumpRenderTree. If our test runner lived (in large parts) in
chromium's repository, such a change would require a patch to chromium.
This would either put an additional burden on all WebKit developers, or our
test runner constantly gets out of sync.



 - Ryosuke


___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev


Re: [webkit-dev] Running layout tests for the chromium port, using the multi-processing architecture and fully sandboxed

2012-06-08 Thread Ryosuke Niwa
On Fri, Jun 8, 2012 at 1:09 PM, Jochen Eisinger joc...@chromium.org wrote:

 On Fri, Jun 8, 2012 at 9:55 PM, Ryosuke Niwa rn...@webkit.org wrote:

 On Fri, Jun 8, 2012 at 12:51 PM, Jochen Eisinger joc...@chromium.orgwrote:

  On Fri, Jun 8, 2012 at 9:41 PM, Ryosuke Niwa rn...@webkit.org wrote:

 Per my other thread about sharing IDLs between DumpRenderTree and
 WebKitTestRunner, I would like to see us sharing IDL with WebKitTestRunner
 instead of adding yet another binding code.

 Another missing feature is producing pixel results. However, I'm
 currently concentrating on text results, as I think the biggest benefit is
 the ability to run storage tests on the real storage implementation.


 That sounds great to me but we definitely need to support pixel results
 eventually. I'm more than happy to help you on that but that requires the
 codebase to be moved into WebKit repository.


 Here's the basic problem: content_shell depends on content, so moving
 this on the webkit repository would mean that webkit depended on content.

 Another solution would be to formalize the test shell API our current
 layout test controller in webkit uses (Tools/DumpRenderTree/chromium), and
 add a method to chromium's webkit support library that returns a webview
 that supports all the hooks required. The webview could then either be
 implemented by test_shell or by content_shell


 I don't know any architectural details of content_shell so it's hard for
 me to comment on this matter, but I don't see a problem in
 WebKitChromiumTestRunner (hypothetical name to be consistent with
 WebKitTestRunner) depending on content_shell given that WebKitTestRunner
 also depends on WebKit2 API.


 Today, when somebody adds e.g. a new callback to LayoutTestController,
 they can just patch DumpRenderTree. If our test runner lived (in large
 parts) in chromium's repository, such a change would require a patch to
 chromium. This would either put an additional burden on all WebKit
 developers, or our test runner constantly gets out of sync.


Yes, that's why I'm suggesting that this new test runner needs to be in the
WebKit repository. It's not acceptable to require WebKit contributors to
modify code in the Chromium repository in order to refactor or add or
remove features to the test runner.

- Ryosuke
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev