Also handles some new configs that are needed for lavapipe Test: Run build-<platform>-turnip.sh Bug: 357080225 Change-Id: I6270cabbc3916b3bb3d2167957ae561a4893e514
106 lines
3.2 KiB
Python
106 lines
3.2 KiB
Python
"""
|
|
Copyright © 2024 Google, Inc.
|
|
|
|
Permission is hereby granted, free of charge, to any person obtaining a
|
|
copy of this software and associated documentation files (the "Software"),
|
|
to deal in the Software without restriction, including without limitation
|
|
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
and/or sell copies of the Software, and to permit persons to whom the
|
|
Software is furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice (including the next
|
|
paragraph) shall be included in all copies or substantial portions of the
|
|
Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
"""
|
|
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
import meson_to_hermetic.meson_impl as impl
|
|
|
|
abs_toml_path = Path(__file__).parent.resolve() / 'test_toml_files'
|
|
|
|
|
|
class TestConfigParsing(unittest.TestCase):
|
|
"""
|
|
Contains methods that directly parse project config files
|
|
I.E. *.toml files
|
|
"""
|
|
|
|
def test_load_dependencies(self):
|
|
expected = {
|
|
'test_dep': {
|
|
'test_target': 1
|
|
},
|
|
'test_dep_two': {
|
|
'test_target': 1
|
|
},
|
|
}
|
|
path = str(abs_toml_path / 'load_dependencies.toml')
|
|
impl.load_dependencies(path)
|
|
self.assertEqual(impl.external_dep, expected)
|
|
|
|
def test_empty_dependencies(self):
|
|
expected = {}
|
|
path = str(abs_toml_path / 'empty_dependencies.toml')
|
|
impl.load_dependencies(path)
|
|
self.assertEqual(impl.external_dep, expected)
|
|
|
|
|
|
class TestMesonAPI(unittest.TestCase):
|
|
def test_dependency(self):
|
|
path = str(abs_toml_path / 'load_dependencies.toml')
|
|
# {
|
|
# 'test_dep': {
|
|
# 'test_target': 1
|
|
# },
|
|
# 'test_dep_two': {
|
|
# 'test_target': 1
|
|
# },
|
|
# }
|
|
impl.load_dependencies(path)
|
|
|
|
dep = impl.dependency('test_dep')
|
|
expected = impl.Dependency(
|
|
'test_dep',
|
|
targets=[
|
|
impl.DependencyTarget('test_target', impl.DependencyTargetType.SHARED_LIBRARY)
|
|
],
|
|
version='',
|
|
found=True,
|
|
)
|
|
|
|
self.assertEqual(
|
|
dep.name,
|
|
expected.name
|
|
)
|
|
self.assertEqual(
|
|
dep.found(),
|
|
expected.found()
|
|
)
|
|
self.assertEqual(
|
|
len(dep.targets),
|
|
len(expected.targets),
|
|
)
|
|
for index, target in enumerate(dep.targets):
|
|
expected_target = expected.targets[index]
|
|
self.assertEqual(
|
|
target.target_name,
|
|
expected_target.target_name,
|
|
)
|
|
self.assertEqual(
|
|
target.target_type,
|
|
expected_target.target_type,
|
|
)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|