mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 979454 - manifest parser needs to support skip-if in the [default] section and || that with the skip-if from the [test] section. r=ted
This commit is contained in:
parent
a46890e4bd
commit
d122936043
@ -390,7 +390,10 @@ def read_ini(fp, variables=None, default='DEFAULT',
|
||||
# interpret the variables
|
||||
def interpret_variables(global_dict, local_dict):
|
||||
variables = global_dict.copy()
|
||||
if 'skip-if' in local_dict and 'skip-if' in variables:
|
||||
local_dict['skip-if'] = "(%s) || (%s)" % (variables['skip-if'].split('#')[0], local_dict['skip-if'].split('#')[0])
|
||||
variables.update(local_dict)
|
||||
|
||||
return variables
|
||||
|
||||
sections = [(i, interpret_variables(variables, j)) for i, j in sections]
|
||||
|
22
testing/mozbase/manifestdestiny/tests/default-skipif.ini
Normal file
22
testing/mozbase/manifestdestiny/tests/default-skipif.ini
Normal file
@ -0,0 +1,22 @@
|
||||
[DEFAULT]
|
||||
skip-if = os == 'win' && debug # a pesky comment
|
||||
|
||||
|
||||
[test1]
|
||||
skip-if = debug
|
||||
|
||||
[test2]
|
||||
skip-if = os == 'linux'
|
||||
|
||||
[test3]
|
||||
skip-if = os == 'win'
|
||||
|
||||
[test4]
|
||||
skip-if = os == 'win' && debug
|
||||
|
||||
[test5]
|
||||
foo = bar
|
||||
|
||||
[test6]
|
||||
skip-if = debug # a second pesky comment
|
||||
|
36
testing/mozbase/manifestdestiny/tests/test_default_skipif.py
Executable file
36
testing/mozbase/manifestdestiny/tests/test_default_skipif.py
Executable file
@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||||
# You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
import os
|
||||
import unittest
|
||||
from manifestparser import ManifestParser
|
||||
|
||||
here = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
class TestDefaultSkipif(unittest.TestCase):
|
||||
"""test applying a skip-if condition in [DEFAULT] and || with the value for the test"""
|
||||
|
||||
|
||||
def test_defaults(self):
|
||||
|
||||
default = os.path.join(here, 'default-skipif.ini')
|
||||
parser = ManifestParser(manifests=(default,))
|
||||
for test in parser.tests:
|
||||
if test['name'] == 'test1':
|
||||
self.assertEqual(test['skip-if'], "(os == 'win' && debug ) || (debug)")
|
||||
elif test['name'] == 'test2':
|
||||
self.assertEqual(test['skip-if'], "(os == 'win' && debug ) || (os == 'linux')")
|
||||
elif test['name'] == 'test3':
|
||||
self.assertEqual(test['skip-if'], "(os == 'win' && debug ) || (os == 'win')")
|
||||
elif test['name'] == 'test4':
|
||||
self.assertEqual(test['skip-if'], "(os == 'win' && debug ) || (os == 'win' && debug)")
|
||||
elif test['name'] == 'test5':
|
||||
self.assertEqual(test['skip-if'], "os == 'win' && debug # a pesky comment")
|
||||
elif test['name'] == 'test6':
|
||||
self.assertEqual(test['skip-if'], "(os == 'win' && debug ) || (debug )")
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
Reference in New Issue
Block a user