mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1132771 - Add a test for reading all moz.build files in filesystem traversal mode; r=glandium
moz.build files should execute in filesystem traversal mode. Add a test that verifies this is true. This test performs a brute force filesystem scan to find relevant moz.build files. This can be a little slow. That's unfortunate. But it's a price we need to pay in order to ensure metadata extraction mode continues to work.
This commit is contained in:
parent
afb1683c31
commit
d6895efa64
@ -30,6 +30,7 @@ if CONFIG['MOZ_SHARED_ICU']:
|
||||
DEFINES['MOZ_SHARED_ICU'] = True
|
||||
|
||||
PYTHON_UNIT_TESTS += [
|
||||
'tests/test_mozbuild_reading.py',
|
||||
'tests/unit-expandlibs.py',
|
||||
'tests/unit-mozunit.py',
|
||||
'tests/unit-nsinstall.py',
|
||||
|
44
config/tests/test_mozbuild_reading.py
Normal file
44
config/tests/test_mozbuild_reading.py
Normal file
@ -0,0 +1,44 @@
|
||||
# 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/.
|
||||
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from mozunit import main
|
||||
|
||||
from mozbuild.base import MozbuildObject
|
||||
from mozbuild.frontend.reader import BuildReader
|
||||
|
||||
|
||||
class TestMozbuildReading(unittest.TestCase):
|
||||
# This hack is needed to appease running in automation.
|
||||
def setUp(self):
|
||||
self._old_env = dict(os.environ)
|
||||
os.environ.pop('MOZCONFIG', None)
|
||||
os.environ.pop('MOZ_OBJDIR', None)
|
||||
|
||||
def tearDown(self):
|
||||
os.environ.clear()
|
||||
os.environ.update(self._old_env)
|
||||
|
||||
def test_filesystem_traversal_reading(self):
|
||||
"""Reading moz.build according to filesystem traversal works.
|
||||
|
||||
We attempt to read every known moz.build file via filesystem traversal.
|
||||
|
||||
If this test fails, it means that metadata extraction will fail.
|
||||
"""
|
||||
mb = MozbuildObject.from_environment(detect_virtualenv_mozinfo=False)
|
||||
config = mb.config_environment
|
||||
reader = BuildReader(config)
|
||||
all_paths = set(reader.all_mozbuild_paths())
|
||||
paths, contexts = reader.read_relevant_mozbuilds(all_paths)
|
||||
self.assertEqual(set(paths), all_paths)
|
||||
self.assertGreaterEqual(len(contexts), len(paths))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue
Block a user