mirror of https://github.com/tc39/test262.git
32 lines
920 B
Python
32 lines
920 B
Python
from ..check import Check
|
|
|
|
class CheckFeatures(Check):
|
|
'''Ensure tests specify only `features` from a list of valid values.'''
|
|
ID = 'FEATURES'
|
|
|
|
def __init__(self, filename):
|
|
with open(filename, 'r') as f:
|
|
self.valid_features = self._parse(f.read())
|
|
|
|
@staticmethod
|
|
def _parse(content):
|
|
features = []
|
|
for line in content.split():
|
|
if not line or line.startswith('#'):
|
|
continue
|
|
features.append(line)
|
|
return features
|
|
|
|
def run(self, name, meta, source):
|
|
if not meta or 'features' not in meta:
|
|
return
|
|
|
|
features = meta['features']
|
|
|
|
if len(features) == 0:
|
|
return 'If present, the `features` tag must have at least one member'
|
|
|
|
for feature in features:
|
|
if feature not in self.valid_features:
|
|
return 'Unrecognized feature: "%s"' % feature
|