Bug 1712968 - ensure manifest parser filter: failures(), matches they keyword and the entire expression. r=ahal

Differential Revision: https://phabricator.services.mozilla.com/D116028
This commit is contained in:
Joel Maher 2021-05-26 21:08:36 +00:00
parent 3f752fc5a8
commit 9f010baa14
2 changed files with 30 additions and 3 deletions

View file

@ -460,7 +460,11 @@ class failures(InstanceFilter):
if key not in test:
continue
matched = [self.keyword in e for e in test[key].splitlines() if e]
matched = [
self.keyword in e and parse(e, **values)
for e in test[key].splitlines()
if e
]
if any(matched):
test["expected"] = "fail"
yield test

View file

@ -19,6 +19,7 @@ from manifestparser.filters import (
skip_if,
subsuite,
tags,
failures,
)
here = os.path.dirname(os.path.abspath(__file__))
@ -160,14 +161,17 @@ def create_tests():
def tests(create_tests):
return create_tests(
"test0",
("test1", {"skip-if": "foo == 'bar'"}),
("test1", {"skip-if": "foo == 'bar'\nintermittent&&!debug"}),
("test2", {"run-if": "foo == 'bar'"}),
("test3", {"fail-if": "foo == 'bar'"}),
("test4", {"disabled": "some reason"}),
("test5", {"subsuite": "baz"}),
("test6", {"subsuite": "baz,foo == 'bar'"}),
("test7", {"tags": "foo bar"}),
("test8", {"skip-if": "\nbaz\nfoo == 'bar'\nfoo == 'baz'"}),
(
"test8",
{"skip-if": "\nbaz\nfoo == 'bar'\nfoo == 'baz'\nintermittent && debug"},
),
)
@ -254,6 +258,25 @@ def test_tags(tests):
assert ref[7] in tests
def test_failures(tests):
ref = deepcopy(tests)
fail1 = failures("intermittent")
tests = list(fail1(tests, {"intermittent": True, "debug": True}))
assert len(tests) == 1
tests = deepcopy(ref)
tests = list(fail1(tests, {"intermittent": True}))
assert len(tests) == 1
tests = deepcopy(ref)
tests = list(fail1(tests, {}))
assert len(tests) == 0
tests = deepcopy(ref)
tests = list(fail1(tests, {"intermittent": False, "debug": True}))
assert len(tests) == 0
def test_pathprefix(create_tests):
tests = create_tests(
"test0",