run-bindings-tests should test global scope constructor generation
authoraestes@apple.com <aestes@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 May 2019 21:33:01 +0000 (21:33 +0000)
committeraestes@apple.com <aestes@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 May 2019 21:33:01 +0000 (21:33 +0000)
commitbfc8c1813bbd11ebe615fee78b5828d965e486bc
treeb05388473ad9151d613db83bef7a5e778302f6e5
parente481e7d9c2e8a70c523817f5d045a3e6e75f1b1e
run-bindings-tests should test global scope constructor generation
https://bugs.webkit.org/show_bug.cgi?id=197669

Reviewed by Alex Christensen.

Source/WebCore:

For interfaces that are exposed on a global object, preprocess-idls.pl generates a partial
interface for the global object defining attributes for the interfaces' constructors. Most
interfaces don't specify a global object, so preprocess-idls.pl defaults to DOMWindow.
Since there is no DOMWindow.idl test case, we never generate the code for exposed interface
constructors when running bindings tests. This means that we can't test changes to how these
constructors are generated.

To fix this, teach preprocess-idls.pl to treat 'TestGlobalObject' as the default global
object when running bindings tests. This means that all exposed interface test cases will
generate their constructors as part of JSTestGlobalObject (unless otherwise specified
by the 'Exposed' extended attribute).

* bindings/scripts/preprocess-idls.pl:
Added --testGlobalContextName and --testGlobalScopeConstructorsFile arguments for use by
run-bindings-tests.

* bindings/scripts/test/JS/JSTestGlobalObject.cpp:
Updated expected results.

Tools:

* Scripts/webkitpy/bindings/main.py:
Updated to specify --testGlobalContextName and --testGlobalScopeConstructorsFile when
invoking preprocess-idls.pl.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245036 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/bindings/scripts/preprocess-idls.pl
Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp
Tools/ChangeLog
Tools/Scripts/webkitpy/bindings/main.py