tree 3ff292bbf14452d4f1bb69c7b4708ccd829a7beb
parent c17800404ba0ab8a57b41478177363e208917e6b
author youenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> 1557853398 +0000
committer youenn@apple.com <youenn@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc> 1557853398 +0000

Add support for webkit-test-runner options to WPT importer
https://bugs.webkit.org/show_bug.cgi?id=197826

Reviewed by Alex Christensen.

In case of overwriting an existing test, check if the existing test
contains a <!-- webkit-test-runner --> comment and insert it back if
needed in the new test.

For exporter, forbid creating a WPT PR if there are changes containing
the webkit-test-runner string.

* Scripts/webkitpy/w3c/test_converter.py:
(convert_for_webkit):
(_W3CTestConverter.__init__):
(_W3CTestConverter.add_webkit_test_runner_options_if_needed):
(_W3CTestConverter.handle_starttag):
(_W3CTestConverter.handle_comment):
(_W3CTestConverter.handle_decl):
(_W3CTestConverter.handle_pi):
* Scripts/webkitpy/w3c/test_exporter.py:
(WebPlatformTestExporter.write_git_patch_file):
(WebPlatformTestExporter.make_pull_request):
* Scripts/webkitpy/w3c/test_importer.py:
(TestImporter.webkit_test_runner_options):
(TestImporter):
(TestImporter.add_webkit_test_runner_options_to_content):
(TestImporter.copy_html_file):
(TestImporter.write_html_template):
(TestImporter.write_html_files_for_templated_js_tests):
(TestImporter.import_tests):
* Scripts/webkitpy/w3c/test_importer_unittest.py:
(test_manual_slow_test):
(test_webkit_test_runner_options):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@245287 268f45cc-cd09-0410-ab3c-d52691b4dbfc
