1. 23 Jan, 2014 1 commit
    • mrobinson@webkit.org's avatar
      [GTK] [CMake] run-webkit-tests should support the CMake build · eb42533b
      mrobinson@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=126503
      
      Reviewed by Daniel Bates.
      
      Update run-launcher and gtk.py to work properly when dealing with the CMake port.
      run-webkit-tests does not need the --gtkcmake flag, but run-launcher does.
      
      * Scripts/run-launcher: Work properly with the gtkcmake flag.
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort._is_cmake_build): Added this helper which looks for the CMakeCache
      file to detect a CMake build.
      (GtkPort._built_executables_path): Added this helper to locate the built executable path.
      (GtkPort._built_libraries_path): Added this helper to locate the built library path.
      (GtkPort._port_flag_for_scripts): Use --gtkcmake when appropriate.
      (GtkPort.setup_environ_for_server): The way CMake builds libraries differs from GTK+.
      (GtkPort._path_to_driver): Use the new helper.
      (GtkPort._path_to_image_diff): Use the new Helper.
      (GtkPort._path_to_webcore_library): Use the new helper.
      (GtkPort.build_webkit_command): Use --gtkcmake when appropriate.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@162585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      eb42533b
  2. 14 Jan, 2014 1 commit
    • brian.holt@samsung.com's avatar
      [GTK] Parse Valgrind xml leak files · a2488976
      brian.holt@samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119446
      
      Reviewed by Alejandro G. Castro.
      
      Parse the xml files generated by Valgrind to yield useful
      information about the memory leaks.
      
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.__init__):
      (GtkPort.setup_test_run): Clear the previous output files before new
      run.
      (GtkPort.print_leaks_summary):
      
      * Scripts/webkitpy/port/leakdetector_valgrind.py: Added.
      Parse the xml files generated by Valgrind and summarise leaks
      into an easily understandable list.
      (get_text_of):
      (get_CDATA_of):
      (gather_frames):
      (ValgrindError):
      (ValgrindError.__init__):
      (ValgrindError.__str__):
      (ValgrindError.unique_string):
      (ValgrindError.error_hash):
      (ValgrindError.__hash__):
      (ValgrindError.__eq__):
      (LeakDetectorValgrind):
      (LeakDetectorValgrind.__init__):
      (LeakDetectorValgrind._parse_leaks_output):
      (LeakDetectorValgrind.leaks_files_in_results_directory):
      (LeakDetectorValgrind.clean_leaks_files_from_results_directory):
      (LeakDetectorValgrind.parse_and_print_leaks_detail):
      
      * Scripts/webkitpy/port/leakdetector_valgrind_unittest.py: Added.
      (make_mock_valgrind_output):
      (make_mock_incomplete_valgrind_output):
      (make_mock_valgrind_results):
      (make_mock_valgrind_results_incomplete):
      (make_mock_valgrind_results_empty):
      (make_mock_valgrind_results_misformatted):
      (mock_run_cppfilt_command):
      (LeakDetectorValgrindTest):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_pass):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_incomplete):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_empty):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_misformatted):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_pass):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_incomplete):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_empty):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_misformatted):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161956 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      a2488976
  3. 08 Jan, 2014 4 commits
    • zandobersek@gmail.com's avatar
      Unreviewed, rolling out r161512. · 2ed3ced4
      zandobersek@gmail.com authored
      http://trac.webkit.org/changeset/161512
      https://bugs.webkit.org/show_bug.cgi?id=126655
      
      Broke webkitpy tests (Requested by ap on #webkit).
      
      Patch by Commit Queue <commit-queue@webkit.org> on 2014-01-08
      
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.__init__):
      (GtkPort.setup_test_run):
      (GtkPort._port_specific_expectations_files):
      * Scripts/webkitpy/port/leakdetector_valgrind.py: Removed.
      * Scripts/webkitpy/port/leakdetector_valgrind_unittest.py: Removed.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161520 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      2ed3ced4
    • zandobersek@gmail.com's avatar
      Unreviewed, rolling out r161517. · 69de48e6
      zandobersek@gmail.com authored
      http://trac.webkit.org/changeset/161517
      https://bugs.webkit.org/show_bug.cgi?id=126659
      
      The fix didn't completely remove the problem and is now
      standing in the way of the rollout of the offending patch
      (Requested by zdobersek on #webkit).
      
      Patch by Commit Queue <commit-queue@webkit.org> on 2014-01-08
      
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.__init__):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161519 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      69de48e6
    • zandobersek@gmail.com's avatar
      Unreviewed. Attempting to fix webkitpy tests after r161512. · 55a22ffc
      zandobersek@gmail.com authored
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.__init__): Construct LeakDetectorValgrin only if leak detection is enabled.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161517 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      55a22ffc
    • brian.holt@samsung.com's avatar
      [GTK] Parse Valgrind xml leak files · 41cddb27
      brian.holt@samsung.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119446
      
      Reviewed by Alejandro G. Castro.
      
      Parse the xml files generated by Valgrind to yield useful
      information about the memory leaks.
      
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.__init__):
      (GtkPort.setup_test_run): Clear the previous output files before new
      run.
      (GtkPort.print_leaks_summary):
      
      * Scripts/webkitpy/port/leakdetector_valgrind.py: Added.
      Parse the xml files generated by Valgrind and summarise leaks
      into an easily understandable list.
      (get_text_of):
      (get_CDATA_of):
      (gather_frames):
      (ValgrindError):
      (ValgrindError.__init__):
      (ValgrindError.__str__):
      (ValgrindError.unique_string):
      (ValgrindError.error_hash):
      (ValgrindError.__hash__):
      (ValgrindError.__eq__):
      (LeakDetectorValgrind):
      (LeakDetectorValgrind.__init__):
      (LeakDetectorValgrind._parse_leaks_output):
      (LeakDetectorValgrind.leaks_files_in_results_directory):
      (LeakDetectorValgrind.clean_leaks_files_from_results_directory):
      (LeakDetectorValgrind.parse_and_print_leaks_detail):
      
      * Scripts/webkitpy/port/leakdetector_valgrind_unittest.py: Added.
      (make_mock_valgrind_output):
      (make_mock_incomplete_valgrind_output):
      (make_mock_valgrind_results):
      (make_mock_valgrind_results_incomplete):
      (make_mock_valgrind_results_empty):
      (make_mock_valgrind_results_misformatted):
      (LeakDetectorValgrindTest):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_pass):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_incomplete):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_empty):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_misformatted):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_pass):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_incomplete):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_empty):
      (LeakDetectorValgrindTest.test_parse_and_print_leaks_detail_misformatted):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@161512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      41cddb27
  4. 11 Dec, 2013 1 commit
  5. 13 Sep, 2013 1 commit
    • kov@webkit.org's avatar
      [GTK] Move to the new web inspector · 86b826a5
      kov@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=120647
      
      Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2013-09-13
      Reviewed by Carlos Garcia Campos.
      
      .:
      
      * GNUmakefile.am: include the new WebInspectorUI GNUmakefile.am.
      
      Source/WebCore:
      
      No tests for the new inspector UI as of yet.
      
      * GNUmakefile.am: no longer install the deprecated inspector UI files.
      * WebCore.exp.in: add SchemeRegistry symbol that is now used.
      
      Source/WebInspectorUI:
      
      * GNUmakefile.am: Added. Generate the GResource source and link it into libWebCore.
      
      Source/WebKit/gtk:
      
      * WebCoreSupport/InspectorClientGtk.cpp:
      (WebKit::InspectorClient::openInspectorFrontend): update paths to the internal resource ones.
      (WebKit::InspectorClient::inspectorFilesPath): ditto.
      * tests/testwebinspector.c:
      (consoleMessageCallback): the new inspector currently emits an error when loading, so add it to
      the list of messages which are not considered failures.
      * webkit/webkitglobals.cpp:
      (webkitInit): register resource as a local scheme; currently used by the inspector.
      
      Source/WebKit2:
      
      * GNUmakefile.am: bundle the remote inspector page list HTML into libwebkit2gtk as a GResource.
      * UIProcess/API/gtk/tests/GNUmakefile.am: no need to set WEBKIT_INSPECTOR_PATH anymore.
      * UIProcess/API/gtk/tests/InspectorTestServer.cpp:
      (main): ditto.
      * UIProcess/API/gtk/tests/TestInspector.cpp:
      (beforeAll): ditto.
      * UIProcess/API/gtk/tests/TestInspectorServer.cpp:
      (testInspectorServerPageList): update paths to the internal resource ones.
      * UIProcess/InspectorServer/WebInspectorServer.h:
      * UIProcess/InspectorServer/gtk/WebInspectorServerGtk.cpp:
      (WebKit::WebInspectorServer::platformResourceForPath): ditto.
      (WebKit::WebInspectorServer::buildPageList): ditto.
      * UIProcess/WebInspectorProxy.cpp:
      (WebKit::isMainInspectorPage): factor out checking for the inspector main resource, to make
      the code more readable.
      (WebKit::decidePolicyForNavigationAction): use SchemeRegistry to figure out whether the
      request is for a local resource instead of KURL::isLocalFile() to allow using schemes
      other than file:// for the inspector resources.
      * UIProcess/gtk/WebInspectorProxyGtk.cpp:
      (WebKit::WebInspectorProxy::inspectorPageURL): use the new internal resource URL; since it's now
      static we no longer need to generate and store the string.
      (WebKit::WebInspectorProxy::inspectorBaseURL): ditto.
      * WebProcess/WebPage/gtk/WebInspectorGtk.cpp:
      (WebKit::WebInspector::localizedStringsURL): use the new internal resource URL.
      * UIProcess/gtk/WebContextGtk.cpp:
      (WebKit::WebContext::platformInitializeWebProcess): register resource as a local scheme.
      
      Tools:
      
      * GtkLauncher/main.c:
      (main): no longer set WEBKIT_INSPECTOR_PATH.
      * MiniBrowser/gtk/main.c:
      (main): ditto.
      * Scripts/old-run-webkit-tests:
      (openDumpTool): ditto.
      * Scripts/run-gtk-tests: ditto.
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.setup_environ_for_server): ditto.
      
      LayoutTests:
      
      * platform/gtk/TestExpectations: the new inspector UI does not support the current
      inspector testing harness so keep it skipped, a new one will eventually be landed.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155714 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      86b826a5
  6. 12 Sep, 2013 1 commit
    • ossy@webkit.org's avatar
      Auto GDB backtrace generation for EFL/GTK/Qt bots. · 306dc8b2
      ossy@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=119338
      
      Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-09-12
      Reviewed by Csaba Osztrogonác.
      
      * Scripts/webkitpy/port/efl.py:
      (EflPort.check_sys_deps):
      (EflPort):
      (EflPort._get_crash_log):
      * Scripts/webkitpy/port/efl_unittest.py:
      (EflPortTest.test_show_results_html_file):
      (EflPortTest):
      (EflPortTest.test_get_crash_log):
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort._get_crash_log):
      * Scripts/webkitpy/port/gtk_unittest.py:
      (GtkPortTest.test_get_crash_log):
      * Scripts/webkitpy/port/linux_get_crash_log.py: Added.
      (GDBCrashLogGenerator):
      (GDBCrashLogGenerator.__init__):
      (GDBCrashLogGenerator._get_gdb_output):
      (GDBCrashLogGenerator.generate_crash_log):
      (GDBCrashLogGenerator.generate_crash_log.match_filename):
      * Scripts/webkitpy/port/linux_get_crash_log_unittest.py: Added.
      (GDBCrashLogGeneratorTest):
      (GDBCrashLogGeneratorTest.test_generate_crash_log):
      (_mock_gdb_output):
      * Scripts/webkitpy/port/qt.py:
      (QtPort.default_child_processes):
      (QtPort):
      (QtPort._get_crash_log):
      * Scripts/webkitpy/port/qt_unittest.py:
      (QtPortTest.test_check_sys_deps):
      (QtPortTest):
      (QtPortTest.test_get_crash_log):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155614 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      306dc8b2
  7. 11 Sep, 2013 1 commit
    • mario@webkit.org's avatar
      [GTK] Remove Gail dependency from build system for GTK3 · 888b8c1d
      mario@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=119673
      
      Reviewed by Gustavo Noronha Silva.
      
      .:
      
      * Source/autotools/FindDependencies.m4: Don't look for GAIL at all.
      * Source/autotools/Versions.m4: Removed any reference to GAIL.
      * Source/cmake/FindGAIL3.cmake: Removed.
      * Source/cmake/OptionsGTK.cmake: Don't look for the GAIL package.
      
      Source/WebCore:
      
      * GNUmakefile.am: Removed GAIL_CFLAGS.
      * PlatformGTK.cmake: Removed GAIL3_INCLUDE_DIRS and GAIL3_LIBRARIES.
      
      Source/WebKit/gtk:
      
      * GNUmakefile.am: Removed GAIL_CFLAGS and GAIL_LIBS.
      
      Source/WebKit2:
      
      * GNUmakefile.am: Removed GAIL_LIBS.
      
      Tools:
      
      * EWSTools/ubuntu-ews-packages: Removed libgail-dev package.
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.setup_environ_for_server): Do not load the 'gail' module anymore.
      * TestWebKitAPI/GNUmakefile.am: Removed GAIL_LIBS.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155534 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      888b8c1d
  8. 09 Sep, 2013 1 commit
    • zandobersek@gmail.com's avatar
      [webkitpy] Remove the DeprecatedPort class · b4aa1cf2
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=121030
      
      Reviewed by Ryosuke Niwa.
      
      Remove the remaining uses of DeprecatedPort, folding its functionality into the Port class.
      
      The various methods returning commands are moved from the DeprecatedPort class into the Port class,
      with the Port subclasses overriding specific methods as required.
      
      * Scripts/webkitpy/common/config/ports.py: Removed.
      * Scripts/webkitpy/common/config/ports_mock.py: Removed.
      * Scripts/webkitpy/common/config/ports_unittest.py: Removed.
      * Scripts/webkitpy/port/base.py:
      (Port.tooling_flag): This method returns the command line argument that corresponds to the type of the port.
      It's formatted as '--port=port_name', where port_name is the port's name that's additionally appended the '-wk2'
      string if the port instance represents the WK2 variation of the port.
      (Port.script_shell_command): Moved here from the DeprecatedPort interface.
      (Port.make_args): Ditto.
      (Port.update_webkit_command): Ditto.
      (Port.check_webkit_style_command): Ditto.
      (Port.prepare_changelog_command): Ditto.
      (Port.build_webkit_command): Ditto.
      (Port.run_javascriptcore_tests_command): Ditto.
      (Port.run_webkit_unit_tests_command): Ditto.
      (Port.run_webkit_tests_command): Ditto.
      (Port.run_python_unittests_command): Ditto.
      (Port.run_perl_unittests_command): Ditto.
      (Port.run_bindings_tests_command): Ditto.
      * Scripts/webkitpy/port/base_unittest.py:
      (PortTest.test_build_webkit_command): Add a test for the Port.build_webkit_command() method that tests correct
      return value with different build types passed to the method.
      * Scripts/webkitpy/port/efl.py:
      (EflPort.build_webkit_command): Override the Port.build_webkit_command() method, appending the necessary options
      to the command line.
      * Scripts/webkitpy/port/efl_unittest.py:
      (EflPortTest.test_commands): A thorough test of return values for all the new methods, for both the WK1 and WK2
      variations of the EflPort class.
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.build_webkit_command): Override the Port.build_webkit_command() method, appending the necessary options
      to the command line.
      (GtkPort.run_webkit_tests_command): Ditto for Port.run_webkit_tests_command().
      * Scripts/webkitpy/port/gtk_unittest.py:
      (GtkPortTest.test_commands): A thorough test of return values for all the new methods, for both the WK1
      and WK2 variations of the GtkPort class.
      * Scripts/webkitpy/port/mac_unittest.py:
      (MacTest.test_commands): A thorough test of return values for all the new methods, for both the WK1 and WK2
      variations of the MacPort class.
      * Scripts/webkitpy/port/qt.py:
      (QtPort.build_webkit_command): Override the Port.build_webkit_command() method, appending the necessary options
      to the command line.
      (QtPort.run_webkit_tests_command): Ditto for Port.run_webkit_tests_command().
      * Scripts/webkitpy/port/qt_unittest.py:
      (QtPortTest.test_commands): A thorough test of return values for all the new methods, for both the WK1 and WK2
      variations of the QtPort class.
      * Scripts/webkitpy/port/test.py:
      (TestPort.make_args): Return a mock value that's intended for testing.
      (TestPort.check_webkit_style_command): Return the script's name prepended with 'mock-'.
      (TestPort.update_webkit_command): Ditto.
      (TestPort.build_webkit_command): Ditto.
      (TestPort.prepare_changelog_command): Ditto.
      (TestPort.run_python_unittests_command): Ditto.
      (TestPort.run_perl_unittests_command): Ditto.
      (TestPort.run_javascriptcore_tests_command): Ditto.
      (TestPort.run_webkit_unit_tests_command): Ditto.
      (TestPort.run_webkit_tests_command): Ditto.
      (TestPort.run_bindings_tests_command): Ditto.
      * Scripts/webkitpy/tool/bot/flakytestreporter.py:
      (FlakyTestReporter.__init__): WebKitPatch.port() should be called now.
      * Scripts/webkitpy/tool/bot/irc_command.py:
      (Rollout._update_working_copy): Ditto.
      * Scripts/webkitpy/tool/commands/download_unittest.py:
      (DownloadCommandsTest.test_land_cowhand): Fix a typo, javacriptcore -> javascriptcore.
      * Scripts/webkitpy/tool/commands/earlywarningsystem.py:
      (AbstractEarlyWarningSystem.run_command): Use the tooling flag as provided by the Port interface.
      * Scripts/webkitpy/tool/commands/queues.py:
      (PatchProcessingQueue.begin_work_queue): Remove the use of the DeprecatedPort. Create the port that will be used
      by the PatchProcessingQueue through the tool's port factory, and also pass it to the tool, keeping the nasty
      abstraction violation.
      (CommitQueue.run_command): Use the tooling flag as provided by the Port interface.
      * Scripts/webkitpy/tool/main.py:
      (WebKitPatch.__init__): self._deprecated_port -> self._port.
      (WebKitPatch.port): Replaces the WebKitPatch.deprecated_port() method, returns self._port.
      (WebKitPatch.handle_global_options): Create the Port object through the PortFactory.
      * Scripts/webkitpy/tool/mocktool.py:
      (MockTool.__init__): self._deprecated_port -> self._port. The TestPort object also has its name method overridden
      to return 'MockPort', as many output comparisons rely on the MockPort name. These should all be replaced later, in
      a separate patch.
      (MockTool.port): Mimicks WebKitPatch.port().
      * Scripts/webkitpy/tool/steps/build.py:
      (Build.build): WebKitPatch.port() should be called now.
      * Scripts/webkitpy/tool/steps/checkstyle.py:
      (CheckStyle.run): Ditto.
      * Scripts/webkitpy/tool/steps/commit.py:
      (Commit._check_test_expectations): Ditto.
      * Scripts/webkitpy/tool/steps/preparechangelog.py:
      (PrepareChangeLog.run): Ditto.
      * Scripts/webkitpy/tool/steps/preparechangelogforrevert.py:
      (PrepareChangeLogForRevert.run): Ditto.
      * Scripts/webkitpy/tool/steps/runtests.py:
      (RunTests.run): Ditto.
      * Scripts/webkitpy/tool/steps/runtests_unittest.py:
      (RunTestsTest.test_webkit_run_unit_tests): The unnecessary methods should now be overridden on MockTool._port.
      * Scripts/webkitpy/tool/steps/steps_unittest.py:
      (StepsTest.test_runtests_args): Remove the MockTool._deprecated_port override, but don't replace it. Rather than
      that the expected test output is adjusted to contain the mock-* command names.
      * Scripts/webkitpy/tool/steps/update.py:
      (Update._update_command): WebKitPatch.port() should be called now.
      * Scripts/webkitpy/tool/steps/update_unittest.py:
      (UpdateTest.test_update_command_non_interactive): Override the MockTool._port for testing purposes with the port
      that corresponds to the removed DeprecatedPort subclasses.
      (UpdateTest.test_update_command_interactive): Ditto.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@155373 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b4aa1cf2
  9. 21 Aug, 2013 1 commit
  10. 05 Aug, 2013 1 commit
  11. 29 Jul, 2013 1 commit
    • zandobersek@gmail.com's avatar
      [GTK] Add WestonDriver, use it when appropriate · 25145536
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=119100
      
      Reviewed by Dirk Pranke.
      
      Introduce the WestonDriver, a Driver-implementing class that sets up an instance of Weston, the Wayland compositor,
      and sets up an environment that enables the test runner to run inside it.
      
      The design very much mimics the XvfbDriver class. It is currently used by the GTK port when the WAYLAND_DISPLAY
      environment variable is set, that is when NRWT is being run under a Wayland display.
      
      * Scripts/webkitpy/port/base.py:
      (Port.to.setup_environ_for_server): Also copy the XDG_RUNTIME_DIR env from the original environment for Linux-using ports.
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort):
      (GtkPort._driver_class): Make the method memoized - the display type is not going to change during the testing, so we
      should only check once for the presence of the WAYLAND_DISPLAY env and determine the proper driver class to use based on that.
      (GtkPort.check_sys_deps): Call the static check_driver method on the class as returned by the _driver_class method
      instead of hard-coding the XvfbDriver class in the check.
      * Scripts/webkitpy/port/westondriver.py: Added.
      (WestonDriver):
      (WestonDriver.check_driver): Similarly to XvfbDriver, this checks for existance of the weston executable.
      (WestonDriver.__init__): Again, like in XvfbDriver, we use a small delay between launching the Weston display and launching the driver.
      (WestonDriver._start): Sets up the driver-specific temporary directory, launches the Weston display, sets up the environment for the
      driver and then launches the driver in said environment, using the driver's Weston display.
      (WestonDriver.stop): Cleans up the Weston instance and the temporary directory.
      (WestonDriver._ensure_driver_tmpdir_subdirectory): A helper function that creates a subdirectory in the driver's temporary directory
      and returns the absolute path to it.
      * Scripts/webkitpy/port/xvfbdriver.py:
      (XvfbDriver.check_driver): Renamed from check_xvfb.
      (XvfbDriver._start): Access the FileSystem object through the Port's Host object, instead of the Port's private member.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@153439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      25145536
  12. 01 Jul, 2013 1 commit
    • commit-queue@webkit.org's avatar
      [EFL][GTK] Migrate from WEBKITOUTPUTDIR to WEBKIT_OUTPUTDIR · 50c9da25
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=117249
      
      Patch by Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> on 2013-07-01
      Reviewed by Brent Fulgham.
      
      Finish converting all use cases of WEBKITOUTPUTDIR to
      WEBKIT_OUTPUTDIR, which seems to be preferred these days.
      
      * DumpRenderTree/efl/FontManagement.cpp:
      (getCustomBuildDir):
      (getPlatformFontsPath):
      * DumpRenderTree/gtk/DumpRenderTree.cpp:
      (getOutputDir):
      * Scripts/webkitdirs.pm:
      (determineBaseProductDir):
      (usesPerConfigurationBuildDirectory):
      * Scripts/webkitpy/port/base.py:
      (Port.to.setup_environ_for_server):
      * Scripts/webkitpy/port/driver.py:
      (Driver._setup_environ_for_driver):
      * Scripts/webkitpy/port/gtk.py:
      (GtkPort.setup_environ_for_server):
      * WebKitTestRunner/InjectedBundle/gtk/ActivateFontsGtk.cpp:
      (WTR::getOutputDir):
      * jhbuild/jhbuildutils.py:
      (get_dependencies_path):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@152226 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      50c9da25
  13. 16 Apr, 2013 1 commit
    • rniwa@webkit.org's avatar
      Move webkitpy.layout_tests.port to webkitpy.port · b856b35d
      rniwa@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=114668
      
      Reviewed by Maciej Stachowiak.
      
      Moved. Port objects knows a lot more than just layout_tests. They doesn't belong down in layout_tests.
      
      * Scripts/webkitpy/common/host.py:
      * Scripts/webkitpy/common/host_mock.py:
      * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
      * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
      * Scripts/webkitpy/layout_tests/controllers/test_result_writer_unittest.py:
      * Scripts/webkitpy/layout_tests/layout_package/json_results_generator_unittest.py:
      * Scripts/webkitpy/layout_tests/lint_test_expectations.py:
      * Scripts/webkitpy/layout_tests/port: Removed.
      * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
      * Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
      * Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:
      * Scripts/webkitpy/layout_tests/servers/http_server_base_unittest.py:
      * Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:
      * Scripts/webkitpy/layout_tests/views/printing_unittest.py:
      * Scripts/webkitpy/performance_tests/perftest.py:
      * Scripts/webkitpy/performance_tests/perftest_unittest.py:
      * Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
      * Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:
      * Scripts/webkitpy/port: Copied from Tools/Scripts/webkitpy/layout_tests/port.
      * Scripts/webkitpy/port/apple.py:
      * Scripts/webkitpy/port/base.py:
      * Scripts/webkitpy/port/base_unittest.py:
      * Scripts/webkitpy/port/config_unittest.py:
      (ConfigTest.test_default_configuration__standalone):
      * Scripts/webkitpy/port/driver_unittest.py:
      * Scripts/webkitpy/port/efl.py:
      * Scripts/webkitpy/port/efl_unittest.py:
      * Scripts/webkitpy/port/factory.py:
      * Scripts/webkitpy/port/factory_unittest.py:
      * Scripts/webkitpy/port/gtk.py:
      * Scripts/webkitpy/port/gtk_unittest.py:
      * Scripts/webkitpy/port/image_diff.py:
      * Scripts/webkitpy/port/image_diff_unittest.py:
      * Scripts/webkitpy/port/leakdetector_unittest.py:
      * Scripts/webkitpy/port/mac.py:
      * Scripts/webkitpy/port/mac_unittest.py:
      * Scripts/webkitpy/port/mock_drt.py:
      * Scripts/webkitpy/port/mock_drt_unittest.py:
      * Scripts/webkitpy/port/port_testcase.py:
      * Scripts/webkitpy/port/qt.py:
      * Scripts/webkitpy/port/qt_unittest.py:
      * Scripts/webkitpy/port/server_process_unittest.py:
      * Scripts/webkitpy/port/test.py:
      * Scripts/webkitpy/port/win.py:
      * Scripts/webkitpy/port/win_unittest.py:
      * Scripts/webkitpy/port/xvfbdriver.py:
      * Scripts/webkitpy/port/xvfbdriver_unittest.py:
      * Scripts/webkitpy/tool/bot/botinfo_unittest.py:
      * Scripts/webkitpy/tool/commands/gardenomatic.py:
      * Scripts/webkitpy/tool/commands/perfalizer_unittest.py:
      * Scripts/webkitpy/tool/commands/queries.py:
      * Scripts/webkitpy/tool/commands/queries_unittest.py:
      * Scripts/webkitpy/tool/commands/rebaseline.py:
      * Scripts/webkitpy/tool/servers/gardeningserver.py:
      * Scripts/webkitpy/tool/servers/gardeningserver_unittest.py:
      * Scripts/webkitpy/tool/servers/rebaselineserver.py:
      * Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@148502 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b856b35d
  14. 27 Mar, 2013 1 commit
  15. 18 Mar, 2013 1 commit
    • zandobersek@gmail.com's avatar
      [NRWT][GTK] Add gtk-wk1 directory to the list of baseline search paths when using DumpRenderTree · f8335149
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=112619
      
      Reviewed by Dirk Pranke.
      
      When using DumpRenderTree on the Gtk port, NRWT should look for baselines first in the LayoutTests/platform/gtk-wk1
      directory and then fall back to the generic LayoutTests/platform/gtk directory.
      
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.default_baseline_search_path): Implement the method on the GtkPort class, mapping every search path to the
      Port._webkit_baseline_path method.
      * Scripts/webkitpy/layout_tests/port/gtk_unittest.py:
      (GtkPortTest.test_default_baseline_search_path): Add a test for the changes that are being introduced.
      (GtkPortTest.test_port_specific_expectations_files): Wrap a couple of long lines.
      * Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
      (TestRebaselineTest.test_baseline_directory): Enhance one and add an additional test case for baseline directories
      that are expected based on the builder name.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@146124 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      f8335149
  16. 15 Feb, 2013 1 commit
    • commit-queue@webkit.org's avatar
      new-run-webkit-tests needs a shared TestExpectations between all WebKit ports · b885a8d3
      commit-queue@webkit.org authored
      https://bugs.webkit.org/show_bug.cgi?id=37565
      
      Introduce generic TestExpectations file that applies as a fallback for all ports, the location of which
      is LayoutTests/TestExpectations.
      
      Patch by Glenn Adams <glenn@skynav.com> on 2013-02-14
      Reviewed by Dirk Pranke.
      
      Tools:
      
      * Scripts/webkitpy/layout_tests/lint_test_expectations_unittest.py:
      (FakePort.path_to_generic_test_expectations_file):
      * Scripts/webkitpy/layout_tests/models/test_expectations.py:
      (TestExpectations.__init__):
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port.path_to_generic_test_expectations_file):
      (Port):
      (Port._port_specific_expectations_files):
      (Port.expectations_files):
      * Scripts/webkitpy/layout_tests/port/chromium.py:
      (ChromiumPort._port_specific_expectations_files):
      * Scripts/webkitpy/layout_tests/port/chromium_android.py:
      (ChromiumAndroidPort._port_specific_expectations_files):
      * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py:
      (ChromiumPortTestCase.test_expectations_files):
      * Scripts/webkitpy/layout_tests/port/efl.py:
      (EflPort._port_specific_expectations_files):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort._port_specific_expectations_files):
      * Scripts/webkitpy/layout_tests/port/gtk_unittest.py:
      (GtkPortTest.test_expectations_files):
      * Scripts/webkitpy/layout_tests/port/mac.py:
      (MacPort._port_specific_expectations_files):
      * Scripts/webkitpy/layout_tests/port/port_testcase.py:
      (PortTestCase.test_expectations_ordering):
      (test_expectations_files):
      * Scripts/webkitpy/layout_tests/port/qt.py:
      (QtPort._port_specific_expectations_files):
      * Scripts/webkitpy/layout_tests/port/qt_unittest.py:
      (QtPortTest.test_expectations_files):
      * Scripts/webkitpy/layout_tests/port/win_unittest.py:
      (WinPortTest.test_expectations_files):
      * Scripts/webkitpy/tool/commands/queries_unittest.py:
      (PrintExpectationsTest.test_paths):
      * Scripts/webkitpy/tool/commands/rebaseline.py:
      (RebaselineTest._update_expectations_file):
      
      LayoutTests:
      
      * TestExpectations: Added.
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@142941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      b885a8d3
  17. 17 Jan, 2013 1 commit
  18. 15 Jan, 2013 2 commits
  19. 08 Jan, 2013 3 commits
    • zandobersek@gmail.com's avatar
      [webkitpy] Call setup_test_run method of the parent Port interface when method... · cc16b027
      zandobersek@gmail.com authored
      [webkitpy] Call setup_test_run method of the parent Port interface when method is called on subclasses
      https://bugs.webkit.org/show_bug.cgi?id=106364
      
      Reviewed by Eric Seidel.
      
      When the setup_test_run method is called on the subclasses of the base Port
      interface, the parent method should also be called via super(), despite the
      parent method not doing anything at the moment.
      
      The according calls to super() are required in the ChromiumPort, EflPort
      and GtkPort implementations.
      
      * Scripts/webkitpy/layout_tests/port/chromium.py:
      (ChromiumPort.setup_test_run):
      * Scripts/webkitpy/layout_tests/port/efl.py:
      (EflPort.setup_test_run):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.setup_test_run):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139102 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      cc16b027
    • zandobersek@gmail.com's avatar
      [EFL][GTK] Make the PulseAudioSanitizer an object on the EflPort, GtkPort · 3f80e602
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=106354
      
      Reviewed by Eric Seidel.
      
      Put the PulseAudioSanitizer object on the EflPort and GtkPort interfaces
      instead of those two inheriting from it. Also add a mock object of the
      sanitizer that's used in unit tests.
      
      * Scripts/webkitpy/layout_tests/port/efl.py:
      (EflPort):
      (EflPort.__init__):
      (EflPort.setup_test_run):
      (EflPort.clean_up_test_run):
      * Scripts/webkitpy/layout_tests/port/efl_unittest.py: Also correct the
      importing order.
      (EflPortTest.make_port): Put a mock PulseAudioSanitizer on the instance.
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort):
      (GtkPort.__init__):
      (GtkPort.setup_test_run):
      (GtkPort.clean_up_test_run):
      * Scripts/webkitpy/layout_tests/port/gtk_unittest.py: Also correct the
      importing order.
      (GtkPortTest.make_port): Put a mock PulseAudioSanitizer on the instance.
      * Scripts/webkitpy/layout_tests/port/pulseaudio_sanitizer.py:
      (PulseAudioSanitizer.unload_pulseaudio_module): Stylize the method as public.
      (PulseAudioSanitizer.restore_pulseaudio_module): Ditto.
      * Scripts/webkitpy/layout_tests/port/pulseaudio_sanitizer_mock.py: Added.
      (PulseAudioSanitizerMock): A simple mock interface for PulseAudioSanitizer.
      (PulseAudioSanitizerMock.unload_pulseaudio_module):
      (PulseAudioSanitizerMock.restore_pulseaudio_module):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139095 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      3f80e602
    • zandobersek@gmail.com's avatar
      [GTK] Lower the default timeout value for WebKitTestRunner · e8de697f
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=106353
      
      Reviewed by Dirk Pranke.
      
      The default timeout value for WebKitTestRunner should be lowered.
      The current value (80 seconds) is irrational and just leads to producing
      text failures for layout tests that genuinely time out. This just leads
      to more deviation from the GTK WK1 port in terms of test expectations.
      
      The value used is the same as when running the DumpRenderTree, that's
      6 seconds in release builds and 12 seconds in debug builds.
      
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      * Scripts/webkitpy/layout_tests/port/gtk_unittest.py:
      (GtkPortTest.test_default_timeout_ms):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@139088 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      e8de697f
  20. 21 Dec, 2012 1 commit
    • zandobersek@gmail.com's avatar
      [GTK] Add WebKit1-specific TestExpectations file · 8cc99773
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=97562
      
      Reviewed by Dirk Pranke.
      
      Tools: 
      
      Implement the expectations_files method inside the GtkPort class that
      returns the list of the TestExpectations files the current test configuration
      requires. The method is implemented in a similar way as on the EFL port.
      A unit test is also added.
      
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort._search_paths):
      (GtkPort):
      (GtkPort.expectations_files):
      * Scripts/webkitpy/layout_tests/port/gtk_unittest.py:
      (GtkPortTest.test_expectations_files):
      
      LayoutTests: 
      
      Add properly formatted but currently empty TestExpectations file
      for GTK WebKit1-specific test expectations.
      
      * platform/gtk-wk1/TestExpectations: Added.
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@138382 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      8cc99773
  21. 15 Nov, 2012 1 commit
    • dpranke@chromium.org's avatar
      webkitpy: consolidate webkit-base-finding code · 05cb4ef0
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=102007
      
      Reviewed by Eric Seidel.
      
      This patch creates a new "WebKitFinder" class that other
      modules can use to find the top of the WebKit tree and
      commonly used subdirectories. This logic was in the
      webkitpy.layout_test.port classes but wasn't specific to those
      classes and now can be used by other modules without needing a port
      (e.g., by the check-webkit-style python linter).
      
      This code is somewhat redundant with the code for find_checkout_root()
      in the scm modules, but it does not rely on the presence of a version
      control system to work. This is a requirement for some uses of the
      tree (e.g., Chromium tester checkouts).
      
      This patch removes most of the logic from the layout_tests.port.config
      module and makes that as private as possible. Now we just need to move
      the default_configuration and flag_from_configuration logic into
      DeprecatedPort (or someplace else appropriate) and we can finish
      getting rid of the Config class (but that is a separate patch).
      
      * Scripts/webkitpy/common/webkit_finder.py: Added.
      (WebKitFinder):
      (WebKitFinder.__init__):
      (WebKitFinder.webkit_base):
      (WebKitFinder.path_from_webkit_base):
      (WebKitFinder.path_to_script):
      (WebKitFinder.layout_tests_dir):
      (WebKitFinder.perf_tests_dir):
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port.__init__):
      (Port):
      (Port.webkit_base):
      (Port.path_from_webkit_base):
      (Port.path_to_script):
      (Port.layout_tests_dir):
      (Port.perf_tests_dir):
      (Port.set_option_default):
      (Port._run_script):
      * Scripts/webkitpy/layout_tests/port/base_unittest.py:
      (PortTest.test_diff_text):
      * Scripts/webkitpy/layout_tests/port/chromium_linux.py:
      (ChromiumLinuxPort._determine_driver_path_statically):
      * Scripts/webkitpy/layout_tests/port/chromium_unittest.py:
      * Scripts/webkitpy/layout_tests/port/config.py:
      (Config.__init__):
      (Config.build_directory):
      (Config.default_configuration):
      (Config._read_configuration):
      * Scripts/webkitpy/layout_tests/port/config_mock.py: Removed.
      * Scripts/webkitpy/layout_tests/port/config_unittest.py:
      (ConfigTest.test_default_configuration__standalone):
      (ConfigTest.test_default_configuration__scripterror):
      * Scripts/webkitpy/layout_tests/port/driver_unittest.py:
      (DriverTest.make_port):
      (DriverTest.test_no_timeout):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.setup_environ_for_server):
      * Scripts/webkitpy/layout_tests/port/mac.py:
      (MacPort.show_results_html_file):
      * Scripts/webkitpy/layout_tests/port/port_testcase.py:
      (TestWebKitPort.__init__):
      (PortTestCase.make_port):
      * Scripts/webkitpy/layout_tests/port/win_unittest.py:
      (WinPortTest.test_expectations_files):
      * Scripts/webkitpy/layout_tests/port/xvfbdriver_unittest.py:
      (XvfbDriverTest.make_driver):
      (XvfbDriverTest.test_stop):
      * Scripts/webkitpy/style/checkers/python.py:
      (Pylinter.__init__):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@134701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      05cb4ef0
  22. 24 Oct, 2012 1 commit
    • dpranke@chromium.org's avatar
      webkitpy: clean up references to Skipped files · c2dbf004
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=100045
      
      Reviewed by Ojan Vafai.
      
      Since they are no longer used or needed ...
      
      * Scripts/webkitpy/layout_tests/port/apple.py:
      (ApplePort._generate_all_test_configurations):
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port.skipped_layout_tests):
      (Port.expectations_files):
      (Port._wk2_port_name):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort):
      * Scripts/webkitpy/layout_tests/port/mac_unittest.py:
      (MacTest.test_default_timeout_ms):
      * Scripts/webkitpy/layout_tests/port/port_testcase.py:
      (test_expectations_files):
      (test_expectations_files.platform_dirs):
      * Scripts/webkitpy/layout_tests/port/qt.py:
      (QtPort.__init__):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@132410 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      c2dbf004
  23. 08 Oct, 2012 1 commit
  24. 01 Oct, 2012 2 commits
  25. 18 Sep, 2012 1 commit
  26. 14 Sep, 2012 1 commit
    • zandobersek@gmail.com's avatar
      [GTK] Clear application cache between tests in DumpRenderTree · 83d39b12
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=96543
      
      Reviewed by Philippe Normand.
      
      Source/WebKit/gtk: 
      
      Add a method to the DumpRenderTreeSupportGtk class that upon calling
      clears the application cache and vacuums the database file.
      
      * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
      (DumpRenderTreeSupportGtk::clearApplicationCache):
      * WebCoreSupport/DumpRenderTreeSupportGtk.h:
      (DumpRenderTreeSupportGtk):
      
      Tools: 
      
      Call the new DumpRenderTreeSupportGtk method to clear application cache
      after each test in DumpRenderTree.
      
      Set the XDG_CACHE_HOME environment variable when running DumpRenderTree
      as well. It's now being set in XvfbDriver._start so that each driver is assigned
      a cache directory that's constructed out of the driver's name and its worker
      number. These directories are located in the layout tests results directory.
      At least on the builders this ensures a driver-specific empty cache directory
      with each test run.
      
      * DumpRenderTree/gtk/DumpRenderTree.cpp:
      (runTest):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.setup_environ_for_server):
      * Scripts/webkitpy/layout_tests/port/xvfbdriver.py:
      (XvfbDriver._start):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128596 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      83d39b12
  27. 13 Sep, 2012 3 commits
    • zandobersek@gmail.com's avatar
      Unreviewed, rolling out r128453. · 09da4cf4
      zandobersek@gmail.com authored
      http://trac.webkit.org/changeset/128453
      https://bugs.webkit.org/show_bug.cgi?id=96681
      
      Having tests use the same appcache directory leads to timeouts
      (Requested by zdobersek on #webkit).
      
      Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-09-13
      
      Source/WebKit/gtk: 
      
      * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
      (DumpRenderTreeSupportGtk::clearMemoryCache):
      * WebCoreSupport/DumpRenderTreeSupportGtk.h:
      (DumpRenderTreeSupportGtk):
      
      Tools: 
      
      * DumpRenderTree/gtk/DumpRenderTree.cpp:
      (runTest):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.setup_environ_for_server):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128490 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      09da4cf4
    • zandobersek@gmail.com's avatar
      [GTK] Clear application cache between tests in DumpRenderTree · 662eee29
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=96543
      
      Reviewed by Philippe Normand.
      
      Source/WebKit/gtk: 
      
      Add a method to the DumpRenderTreeSupportGtk class that upon calling
      clears the application cache and vacuums the database file.
      
      * WebCoreSupport/DumpRenderTreeSupportGtk.cpp:
      (DumpRenderTreeSupportGtk::clearApplicationCache):
      * WebCoreSupport/DumpRenderTreeSupportGtk.h:
      (DumpRenderTreeSupportGtk):
      
      Tools: 
      
      Call the new DumpRenderTreeSupportGtk method to clear application cache
      after each test.
      
      Set the XDG_CACHE_HOME environment variable when running DumpRenderTree
      as well. Currently it points to a subdirectory in the layout tests results
      directory. At least on the builders this ensures an empty cache directory
      with each test run.
      
      * DumpRenderTree/gtk/DumpRenderTree.cpp:
      (runTest):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.setup_environ_for_server):
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128453 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      662eee29
    • zandobersek@gmail.com's avatar
      [GTK][NRWT] Lower timeout value to 6 seconds (12 for debug configuration) · 935800a9
      zandobersek@gmail.com authored
      https://bugs.webkit.org/show_bug.cgi?id=96506
      
      Reviewed by Dirk Pranke.
      
      Tools: 
      
      Lower the timeout value to 6 seconds for release configuration and 12 seconds
      for debug configuration. These are the same values the Chromium port uses.
      
      Currently the value is lowered only for the DumpRenderTree, WebKitTestRunner (and
      the layout tests under WebKit2 generally) requires more attention and gardening
      than what the current effort produces.
      
      The unit test is updated as well to test these changes.
      
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.default_timeout_ms):
      * Scripts/webkitpy/layout_tests/port/gtk_unittest.py:
      (GtkPortTest.test_default_timeout_ms):
      (GtkPortTest.assertLinesEqual):
      
      LayoutTests: 
      
      Create a new section for slow tests. Tests listed here pass (or at least
      work as expected or reliably) but require more than 6 or 12 seconds to run.
      
      More tests are added into the timeout section. These are primarily tests
      that used to take half a minute to run just to be interrupted by the watchdog
      in DumpRenderTree and were then reported as text mismatch failures. Now they
      will be timing out which is (arguably) a more proper way for them to fail.
      
      * platform/gtk/TestExpectations:
      
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128414 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      935800a9
  28. 08 Aug, 2012 1 commit
    • dpranke@chromium.org's avatar
      nrwt: --no-build isn't working · 97df8cf1
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=93415
      
      Reviewed by Ryosuke Niwa.
      
      Turns out our optimization to avoid calling
      webkit-build-directory N times for each worker broke --no-build.
      
      Fixing, and adding a test.
      
      Also, the gtk port wasn't using the default check_build() logic,
      but I don't know why not. Removing their custom hook and will
      verify that this is okay in the review ...
      
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port.__init__):
      (Port.check_build):
      (Port._build_path):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort._path_to_image_diff):
      * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py:
      (MockDRTPortTest.test_check_build):
      * Scripts/webkitpy/layout_tests/port/port_testcase.py:
      (test_path_to_apache_config_file):
      (test_check_build):
      (test_check_build.build_driver_called):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@124957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      97df8cf1
  29. 27 Jul, 2012 3 commits
    • dpranke@chromium.org's avatar
      nrwt: remove 'webkit.py' and the 'WebKitPort' · 774c655c
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=92450
      
      Reviewed by Ryosuke Niwa.
      
      This patch finishes the work of merging WebKitPort into Port.
      Now Port is way too big :).
      
      This is all cutting and pasting; no new functionality and
      no changes in the tests.
      
      * Scripts/webkitpy/layout_tests/port/apple.py:
      (ApplePort):
      (ApplePort.__init__):
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port.skipped_layout_tests):
      (Port):
      (Port._port_flag_for_scripts):
      (Port._arguments_for_configuration):
      (Port._run_script):
      (Port._build_driver):
      (Port._build_driver_flags):
      (Port._tests_for_other_platforms):
      (Port._runtime_feature_list):
      (Port.nm_command):
      (Port._modules_to_search_for_symbols):
      (Port._symbols_string):
      (Port._missing_feature_to_skipped_tests):
      (Port._missing_symbol_to_skipped_tests):
      (Port._has_test_in_directories):
      (Port._skipped_tests_for_unsupported_features):
      (Port._wk2_port_name):
      (Port._skipped_file_search_paths):
      * Scripts/webkitpy/layout_tests/port/chromium.py:
      (ChromiumPort):
      * Scripts/webkitpy/layout_tests/port/chromium_android.py:
      * Scripts/webkitpy/layout_tests/port/chromium_port_testcase.py:
      (ChromiumPortTestCase.test_check_build):
      * Scripts/webkitpy/layout_tests/port/driver_unittest.py:
      * Scripts/webkitpy/layout_tests/port/efl.py:
      (EflPort):
      (EflPort.__init__):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort):
      (GtkPort.setup_environ_for_server):
      * Scripts/webkitpy/layout_tests/port/port_testcase.py:
      (TestWebKitPort):
      (TestWebKitPort.__init__):
      (TestWebKitPort.all_test_configurations):
      (TestWebKitPort._symbols_string):
      (TestWebKitPort._tests_for_other_platforms):
      (TestWebKitPort._tests_for_disabled_features):
      (PortTestCase):
      (PortTestCase.test_diff_image):
      (PortTestCase.test_path_to_test_expectations_file):
      (PortTestCase.test_skipped_directories_for_symbols):
      (test_skipped_directories_for_features):
      (test_skipped_directories_for_features_no_matching_tests_in_test_list):
      (test_skipped_tests_for_unsupported_features_empty_test_list):
      (test_skipped_layout_tests):
      (test_skipped_file_search_paths):
      (test_root_option):
      (test_test_expectations):
      (test_build_driver):
      (_assert_config_file_for_platform):
      (test_linux_distro_detection):
      (test_apache_config_file_name_for_platform):
      (test_path_to_apache_config_file):
      * Scripts/webkitpy/layout_tests/port/qt.py:
      (QtPort):
      (QtPort.__init__):
      (QtPort.setup_environ_for_server):
      * Scripts/webkitpy/layout_tests/port/webkit.py: Removed.
      * Scripts/webkitpy/layout_tests/port/webkit_unittest.py: Removed.
      * Scripts/webkitpy/tool/servers/rebaselineserver.py:
      (get_test_baselines.AllPlatformsPort):
      (get_test_baselines.AllPlatformsPort.__init__):
      * Scripts/webkitpy/tool/servers/rebaselineserver_unittest.py:
      (get_test_config.TestMacPort):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123916 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      774c655c
    • dpranke@chromium.org's avatar
      nrwt: print filtered stderr after a crash correctly · 9e518efe
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=92428
      
      Reviewed by Adam Barth.
      
      Some ports will run the stderr output from DRT/WTR through a
      filter after a crash in order to print a more useful stack
      trace; while that gets written to the crash log correctly, we
      don't log it to the debug output properly. This change fixes
      that and makes it clearer that we're logging stderr, not the
      crash log.
      
      * Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
      (SingleTestRunner._handle_error):
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port._get_crash_log):
      * Scripts/webkitpy/layout_tests/port/chromium.py:
      (ChromiumPort._get_crash_log):
      * Scripts/webkitpy/layout_tests/port/chromium_android_unittest.py:
      (ChromiumAndroidPortTest.test_get_crash_log):
      * Scripts/webkitpy/layout_tests/port/driver.py:
      (Driver.run_test):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      * Scripts/webkitpy/layout_tests/port/gtk_unittest.py:
      * Scripts/webkitpy/layout_tests/port/mac.py:
      (MacPort._get_crash_log):
      * Scripts/webkitpy/layout_tests/port/port_testcase.py:
      (PortTestCase.test_get_crash_log):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123895 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      9e518efe
    • dpranke@chromium.org's avatar
      nrwt: move image diffing code to a separate module · 0d0816da
      dpranke@chromium.org authored
      https://bugs.webkit.org/show_bug.cgi?id=92447
      
      Reviewed by Ryosuke Niwa.
      
      This patch moves the code to talk to ImageDiff into its own
      module, and adds more tests for it. In addition, the patch
      modifies diff_image() so that we don't automatically stop
      ImageDiff after a single invocation, and thus subsequent
      diffs may be slightly faster. (Note that the chromium ports
      don't use any of this code; that is not changed by this patch).
      
      The main motivation for this change is to move more "generic"
      code out of the port/* classes, and in particular to move more
      code out of webkit.py so that we can eventually eliminate it by
      merging it into base.py.
      
      This patch also splits MockServerProcess out from driver_unittest.py
      so that it can be re-used.
      
      * Scripts/webkitpy/layout_tests/port/base.py:
      (Port.__init__):
      (Port.diff_image):
      (Port.clean_up_test_run):
      * Scripts/webkitpy/layout_tests/port/driver.py:
      (Driver.__init__):
      (Driver._start):
      * Scripts/webkitpy/layout_tests/port/driver_unittest.py:
      (DriverTest.test_stop_cleans_up_properly):
      (DriverTest.test_two_starts_cleans_up_properly):
      (DriverTest.test_start_actually_starts):
      * Scripts/webkitpy/layout_tests/port/efl.py:
      (EflPort.clean_up_test_run):
      * Scripts/webkitpy/layout_tests/port/gtk.py:
      (GtkPort.clean_up_test_run):
      * Scripts/webkitpy/layout_tests/port/image_diff.py: Added.
      (ImageDiffer):
      (ImageDiffer.__init__):
      (ImageDiffer.diff_image):
      (ImageDiffer._start):
      (ImageDiffer._read):
      (ImageDiffer.stop):
      * Scripts/webkitpy/layout_tests/port/image_diff_unittest.py: Added.
      (for):
      (FakePort):
      (FakePort.__init__):
      (FakePort._path_to_image_diff):
      (FakePort.setup_environ_for_server):
      (TestImageDiffer):
      (TestImageDiffer.test_diff_image):
      * Scripts/webkitpy/layout_tests/port/mock_drt_unittest.py:
      (MockDRTPortTest.test_diff_image):
      * Scripts/webkitpy/layout_tests/port/port_testcase.py:
      (PortTestCase.test_diff_image__missing_both):
      (PortTestCase.test_diff_image):
      (PortTestCase.test_diff_image.make_proc):
      * Scripts/webkitpy/layout_tests/port/server_process.py:
      (ServerProcess._start):
      * Scripts/webkitpy/layout_tests/port/server_process_mock.py: Added.
      (MockServerProcess):
      (MockServerProcess.__init__):
      (MockServerProcess.write):
      (MockServerProcess.has_crashed):
      (MockServerProcess.read_stdout_line):
      (MockServerProcess.read_stdout):
      (MockServerProcess.pop_all_buffered_stderr):
      (MockServerProcess.read_either_stdout_or_stderr_line):
      (MockServerProcess.start):
      (MockServerProcess.stop):
      (MockServerProcess.kill):
      * Scripts/webkitpy/layout_tests/port/webkit.py:
      (WebKitPort._build_driver_flags):
      (WebKitPort._symbols_string):
      
      git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123893 268f45cc-cd09-0410-ab3c-d52691b4dbfc
      0d0816da