Changeset 106412 in webkit


Ignore:
Timestamp:
Jan 31, 2012 4:32:57 PM (12 years ago)
Author:
ojan@chromium.org
Message:

run-webkit-tests calls out to webkit-build-directory twice
https://bugs.webkit.org/show_bug.cgi?id=77248

Reviewed by Dirk Pranke.

  • Scripts/webkit-build-directory:

If called with no arguments, print out both the top-level directory and the
configuration directory

  • Scripts/webkitpy/layout_tests/port/config.py:

(Config.build_directory):
When called with no arguments, get and cache both the top-level and configuration directories.

  • Scripts/webkitpy/layout_tests/port/config_standalone.py:

(main):

  • Scripts/webkitpy/layout_tests/port/config_unittest.py:

(ConfigTest.assert_configuration):
(ConfigTest.test_build_directory.mock_webkit_build_directory):
(ConfigTest.test_build_directory):
(ConfigTest.test_default_configurationnotfound):

  • Scripts/webkitpy/layout_tests/port/webkit.py:

(WebKitPort._build_path):
Cache the build directory in the options object so that other users
of the options object don't need to call out to webkit-build-directory.
Also, properly support the existing --build-directory argument.

Location:
trunk/Tools
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/ChangeLog

    r106409 r106412  
     12012-01-31  Ojan Vafai  <ojan@chromium.org>
     2
     3        run-webkit-tests calls out to webkit-build-directory twice
     4        https://bugs.webkit.org/show_bug.cgi?id=77248
     5
     6        Reviewed by Dirk Pranke.
     7
     8        * Scripts/webkit-build-directory:
     9        If called with no arguments, print out both the top-level directory and the
     10        configuration directory
     11
     12        * Scripts/webkitpy/layout_tests/port/config.py:
     13        (Config.build_directory):
     14        When called with no arguments, get and cache both the top-level and configuration directories.
     15
     16        * Scripts/webkitpy/layout_tests/port/config_standalone.py:
     17        (main):
     18        * Scripts/webkitpy/layout_tests/port/config_unittest.py:
     19        (ConfigTest.assert_configuration):
     20        (ConfigTest.test_build_directory.mock_webkit_build_directory):
     21        (ConfigTest.test_build_directory):
     22        (ConfigTest.test_default_configuration__notfound):
     23        * Scripts/webkitpy/layout_tests/port/webkit.py:
     24        (WebKitPort._build_path):
     25        Cache the build directory in the options object so that other users
     26        of the options object don't need to call out to webkit-build-directory.
     27        Also, properly support the existing --build-directory argument.
     28
    1292012-01-31  Ryosuke Niwa  <rniwa@webkit.org>
    230
  • trunk/Tools/Scripts/webkit-build-directory

    r106389 r106412  
    5858);
    5959
    60 if (!$getOptionsResult || $showHelp || (!$showConfigurationDirectory && !$showTopLevelDirectory)) {
     60if (!$getOptionsResult || $showHelp) {
    6161    print STDERR $usage;
    6262    exit 1;
    6363}
    6464
    65 if ($showTopLevelDirectory) {
     65if (!$showConfigurationDirectory && !$showTopLevelDirectory) {
     66    print baseProductDir() . "\n";
     67    print productDir() . "\n";
     68} elsif ($showTopLevelDirectory) {
    6669    print baseProductDir() . "\n";
    6770} else {
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/config.py

    r106389 r106412  
    7575        else:
    7676            configuration = ""
    77             flags = ["--top-level"]
     77            flags = []
    7878
    7979        if not self._build_directories.get(configuration):
    8080            args = ["perl", self.script_path("webkit-build-directory")] + flags
    81             self._build_directories[configuration] = (
    82                 self._executive.run_command(args, cwd=self.webkit_base_dir()).rstrip())
     81            output = self._executive.run_command(args, cwd=self.webkit_base_dir()).rstrip()
     82            parts = output.split("\n")
     83            self._build_directories[configuration] = parts[0]
     84
     85            if len(parts) == 2:
     86                default_configuration = parts[1][len(parts[0]):]
     87                if default_configuration.startswith("/"):
     88                    default_configuration = default_configuration[1:]
     89                self._build_directories[default_configuration] = parts[1]
    8390
    8491        return self._build_directories[configuration]
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/config_standalone.py

    r106389 r106412  
    5858
    5959    if len(argv) == 3 and argv[1] == '--mock':
    60         e = executive_mock.MockExecutive2(output='foo')
     60        e = executive_mock.MockExecutive2(output='foo\nfoo/%s' % argv[2])
    6161        fs = filesystem_mock.MockFileSystem({'foo/Configuration': argv[2]})
    6262    else:
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/config_unittest.py

    r106389 r106412  
    5252        # This tests that a configuration file containing
    5353        # _contents_ ends up being interpreted as _expected_.
    54         c = self.make_config('foo', {'foo/Configuration': contents})
     54        output = 'foo\nfoo/%s' % contents
     55        c = self.make_config(output, {'foo/Configuration': contents})
    5556        self.assertEqual(c.default_configuration(), expected)
    5657
     
    5960        def mock_webkit_build_directory(arg_list):
    6061            if arg_list == ['--top-level']:
    61                 return '/WebKitBuild'
     62                return '/WebKitBuild/'
    6263            elif arg_list == ['--configuration', '--debug']:
    6364                return '/WebKitBuild/Debug'
    6465            elif arg_list == ['--configuration', '--release']:
    6566                return '/WebKitBuild/Release'
     67            elif arg_list == []:
     68                return '/WebKitBuild/\n/WebKitBuild//Debug\n'
    6669            return 'Error'
    6770
     
    7275
    7376        c = self.make_config(run_command_fn=mock_run_command)
    74         self.assertTrue(c.build_directory(None).endswith('WebKitBuild'))
     77        self.assertEqual(c.build_directory(None), '/WebKitBuild/')
    7578
    7679        # Test again to check caching
    77         self.assertTrue(c.build_directory(None).endswith('WebKitBuild'))
     80        self.assertEqual(c.build_directory(None), '/WebKitBuild/')
    7881
    7982        # Test other values
     
    9699    def test_default_configuration__notfound(self):
    97100        # This tests what happens if the default configuration file doesn't exist.
    98         c = self.make_config(output='foo', files={'foo/Configuration': None})
     101        c = self.make_config(output='foo\nfoo/Release', files={'foo/Configuration': None})
    99102        self.assertEqual(c.default_configuration(), "Release")
    100103
  • trunk/Tools/Scripts/webkitpy/layout_tests/port/webkit.py

    r106389 r106412  
    378378    def _build_path(self, *comps):
    379379        # --root is used for running with a pre-built root (like from a nightly zip).
    380         build_directory = self.get_option('root')
     380        build_directory = self.get_option('root') or self.get_option('build_directory')
    381381        if not build_directory:
    382382            build_directory = self._config.build_directory(self.get_option('configuration'))
     383            # Set --build-directory here Since this modifies the options object used by the worker subprocesses,
     384            # it avoids the slow call out to build_directory in each subprocess.
     385            self.set_option_default('build_directory', build_directory)
    383386        return self._filesystem.join(build_directory, *comps)
    384387
Note: See TracChangeset for help on using the changeset viewer.