Changeset 241221 in webkit


Ignore:
Timestamp:
Feb 8, 2019 4:28:19 PM (5 years ago)
Author:
aakash_jain@apple.com
Message:

[ews-build] Ensure that every builder in config.json has short name
https://bugs.webkit.org/show_bug.cgi?id=194461

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/ews-build/loadConfig.py:
  • BuildSlaveSupport/ews-build/loadConfig_unittest.py: Updated unit-tests.
Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/BuildSlaveSupport/ews-build/loadConfig.py

    r241218 r241221  
    103103        raise Exception('Builder "{}" does not have name defined.'.format(builder))
    104104
     105    if not builder.get('shortname'):
     106        raise Exception('Builder "{}" does not have short name defined. This name is needed for EWS status bubbles.'.format(builder.get('name')))
     107
    105108    if not buildbot_identifiers.ident_re.match(builder['name']):
    106109        raise Exception('Builder name {} is not a valid buildbot identifier.'.format(builder['name']))
  • trunk/Tools/BuildSlaveSupport/ews-build/loadConfig_unittest.py

    r240890 r241221  
    4040        config = json.load(open(os.path.join(cwd, 'config.json')))
    4141        valid_builder_keys = ['additionalArguments', 'architectures', 'builddir', 'configuration', 'description',
    42                               'defaultProperties', 'env', 'factory', 'locks', 'name', 'platform', 'properties', 'tags',
     42                              'defaultProperties', 'env', 'factory', 'locks', 'name', 'platform', 'properties', 'shortname', 'tags',
    4343                              'triggers', 'workernames', 'workerbuilddir']
    4444        for builder in config.get('builders', []):
     
    108108        self.assertEqual(context.exception.args, ('Builder "{\'platform\': \'mac-sierra\'}" does not have name defined.',))
    109109
     110    def test_builder_with_missing_shortname(self):
     111        with self.assertRaises(Exception) as context:
     112            loadConfig.checkValidBuilder({}, {'platform': 'mac-sierra', 'name': 'mac-wk2(test)'})
     113        self.assertEqual(context.exception.args, ('Builder "mac-wk2(test)" does not have short name defined. This name is needed for EWS status bubbles.',))
     114
    110115    def test_builder_with_invalid_identifier(self):
    111116        with self.assertRaises(Exception) as context:
    112             loadConfig.checkValidBuilder({}, {'name': 'mac-wk2(test)'})
     117            loadConfig.checkValidBuilder({}, {'name': 'mac-wk2(test)', 'shortname': 'mac-wk2'})
    113118        self.assertEqual(context.exception.args, ('Builder name mac-wk2(test) is not a valid buildbot identifier.',))
    114119
     
    116121        longName = 'a' * 71
    117122        with self.assertRaises(Exception) as context:
    118             loadConfig.checkValidBuilder({}, {'name': longName})
     123            loadConfig.checkValidBuilder({}, {'name': longName, 'shortname': 'a'})
    119124        self.assertEqual(context.exception.args, ('Builder name {} is longer than maximum allowed by Buildbot (70 characters).'.format(longName),))
    120125
    121126    def test_builder_with_invalid_configuration(self):
    122127        with self.assertRaises(Exception) as context:
    123             loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'configuration': 'asan'})
     128            loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'shortname': 'mac-wk2', 'configuration': 'asan'})
    124129        self.assertEqual(context.exception.args, ('Invalid configuration: asan for builder: mac-wk2',))
    125130
    126131    def test_builder_with_missing_factory(self):
    127132        with self.assertRaises(Exception) as context:
    128             loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'configuration': 'release'})
     133            loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'shortname': 'mac-wk2', 'configuration': 'release'})
    129134        self.assertEqual(context.exception.args, ('Builder mac-wk2 does not have factory defined.',))
    130135
    131136    def test_builder_with_missing_scheduler(self):
    132137        with self.assertRaises(Exception) as context:
    133             loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'configuration': 'release', 'factory': 'WK2Factory', 'platform': 'mac-sierra', 'triggers': ['api-tests-mac-ews']})
     138            loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'shortname': 'mac-wk2', 'configuration': 'release', 'factory': 'WK2Factory', 'platform': 'mac-sierra', 'triggers': ['api-tests-mac-ews']})
    134139        self.assertEqual(context.exception.args, ('Trigger: api-tests-mac-ews in builder mac-wk2 does not exist in list of Trigerrable schedulers.',))
    135140
    136141    def test_builder_with_missing_platform(self):
    137142        with self.assertRaises(Exception) as context:
    138             loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'configuration': 'release', 'factory': 'WK2Factory'})
     143            loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'shortname': 'mac-wk2', 'configuration': 'release', 'factory': 'WK2Factory'})
    139144        self.assertEqual(context.exception.args, ('Builder mac-wk2 does not have platform defined.',))
    140145
    141146    def test_valid_builder(self):
    142         loadConfig.checkValidBuilder({}, {'name': 'mac-wk2', 'configuration': 'release', 'factory': 'WK2Factory', 'platform': 'mac-sierra'})
     147        loadConfig.checkValidBuilder({}, {'name': 'macOS-High-Sierra-WK2-EWS', 'shortname': 'mac-wk2', 'configuration': 'release', 'factory': 'WK2Factory', 'platform': 'mac-sierra'})
    143148
    144149
    145150class TestcheckWorkersAndBuildersForConsistency(unittest.TestCase):
    146151    def __init__(self, *args, **kwargs):
    147         self.WK2Builder = {'name': 'mac-wk2', 'factory': 'WK2Factory', 'platform': 'mac-sierra', 'workernames': ['ews101', 'ews102']}
     152        self.WK2Builder = {'name': 'macOS-High-Sierra-WK2-EWS', 'shortname': 'mac-wk2', 'factory': 'WK2Factory', 'platform': 'mac-sierra', 'workernames': ['ews101', 'ews102']}
    148153        self.ews101 = {'name': 'ews101', 'platform': 'mac-sierra'}
    149154        self.ews102 = {'name': 'ews102', 'platform': 'ios-11'}
     
    153158        with self.assertRaises(Exception) as context:
    154159            loadConfig.checkWorkersAndBuildersForConsistency({}, [], [self.WK2Builder])
    155         self.assertEqual(context.exception.args, ('Builder mac-wk2 has worker ews101, which is not defined in workers list!',))
     160        self.assertEqual(context.exception.args, ('Builder macOS-High-Sierra-WK2-EWS has worker ews101, which is not defined in workers list!',))
    156161
    157162    def test_checkWorkersAndBuildersForConsistency1(self):
    158163        with self.assertRaises(Exception) as context:
    159164            loadConfig.checkWorkersAndBuildersForConsistency({}, [self.ews101, self.ews102], [self.WK2Builder])
    160         self.assertEqual(context.exception.args, ('Builder mac-wk2 is for platform mac-sierra, but has worker ews102 for platform ios-11!',))
     165        self.assertEqual(context.exception.args, ('Builder macOS-High-Sierra-WK2-EWS is for platform mac-sierra, but has worker ews102 for platform ios-11!',))
    161166
    162167    def test_success(self):
  • trunk/Tools/ChangeLog

    r241218 r241221  
     12019-02-08  Aakash Jain  <aakash_jain@apple.com>
     2
     3        [ews-build] Ensure that every builder in config.json has short name
     4        https://bugs.webkit.org/show_bug.cgi?id=194461
     5
     6        Reviewed by Lucas Forschler.
     7
     8        * BuildSlaveSupport/ews-build/loadConfig.py:
     9        * BuildSlaveSupport/ews-build/loadConfig_unittest.py: Updated unit-tests.
     10
    1112019-02-08  Aakash Jain  <aakash_jain@apple.com>
    212
Note: See TracChangeset for help on using the changeset viewer.