зеркало из https://github.com/mozilla/gecko-dev.git
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. --HG-- extra : rebase_source : 1b8a7110505a9b196b9b349103b581d2aeb8ddbe
This commit is contained in:
Родитель
7561839aea
Коммит
e1e291e35c
|
@ -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',
|
||||
|
|
|
@ -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()
|
Загрузка…
Ссылка в новой задаче