aboutsummaryrefslogtreecommitdiff
path: root/cwp/cr-os/fetch_gn_descs_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'cwp/cr-os/fetch_gn_descs_test.py')
-rwxr-xr-xcwp/cr-os/fetch_gn_descs_test.py198
1 files changed, 106 insertions, 92 deletions
diff --git a/cwp/cr-os/fetch_gn_descs_test.py b/cwp/cr-os/fetch_gn_descs_test.py
index b6fc0eeb..8a88fe3e 100755
--- a/cwp/cr-os/fetch_gn_descs_test.py
+++ b/cwp/cr-os/fetch_gn_descs_test.py
@@ -1,12 +1,11 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
-# Copyright 2020 The Chromium OS Authors. All rights reserved.
+# Copyright 2020 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Tests for fetch_gn_descs.py."""
-from __future__ import print_function
import io
import unittest
@@ -17,93 +16,108 @@ import fetch_gn_descs
class Test(unittest.TestCase):
- """Tests for fetch_gn_descs."""
-
- def test_fix_result_removes_uninteresting_items(self):
- items = {
- '//uninteresting:a': {},
- '//uninteresting:b': {
- 'sources': ['whee'],
- },
- '//uninteresting:c': {
- 'configs': ['whee'],
- },
- '//uninteresting:d': {
- 'sources': [],
- 'configs': [],
- },
- '//interesting:a': {
- 'sources': ['a'],
- 'configs': ['b'],
- },
- '//interesting:b': {
- 'sources': ['d'],
- 'configs': ['c'],
- },
- }
-
- expected_items = {
- '//interesting:a': items['//interesting:a'],
- '//interesting:b': items['//interesting:b'],
- }
-
- self.assertDictEqual(
- fetch_gn_descs._fix_result('/', '/', '/', items), expected_items)
-
- def test_fix_result_translates_paths_in_out_dir(self):
- items = {
- '//interesting:a': {
- 'sources': ['//out_dir/foo', '//out_dir'],
- 'configs': ['b'],
- },
- }
-
- expected_items = {
- '//interesting:a': {
- 'sources': ['//out_translated/foo', '//out_translated/'],
- 'configs': ['b'],
- },
- }
-
- self.assertDictEqual(
- fetch_gn_descs._fix_result(
- rename_out='//out_translated',
- out_dir='/chromium/src/out_dir',
- chromium_root='/chromium',
- gn_desc=items,
- ),
- expected_items,
- )
-
- def test_gn_desc_output_parsing_skips_pre_json_warnings(self):
- gn_desc = io.StringIO('\n'.join((
- 'foo',
- 'warning: "{" is bad',
- '{"bar": "baz",',
- ' "qux": true}',
- )))
-
- warnings, desc_json = fetch_gn_descs._parse_gn_desc_output(gn_desc)
- self.assertEqual(warnings, '\n'.join((
- 'foo',
- 'warning: "{" is bad',
- )))
- self.assertEqual(desc_json, {
- 'bar': 'baz',
- 'qux': True,
- })
-
- def test_gn_desc_output_parsing_issues_no_warnings_if_none_are_present(self):
- gn_desc = io.StringIO('{"bar": "baz"}')
- warnings, desc_json = fetch_gn_descs._parse_gn_desc_output(gn_desc)
- self.assertEqual(warnings, '')
- self.assertEqual(desc_json, {'bar': 'baz'})
-
- gn_desc = io.StringIO('\n \n\t\n{"bar": "baz"}')
- warnings, desc_json = fetch_gn_descs._parse_gn_desc_output(gn_desc)
- self.assertEqual(warnings, '')
- self.assertEqual(desc_json, {'bar': 'baz'})
-
-
-if __name__ == '__main__':
- unittest.main()
+ """Tests for fetch_gn_descs."""
+
+ def test_fix_result_removes_uninteresting_items(self):
+ items = {
+ "//uninteresting:a": {},
+ "//uninteresting:b": {
+ "sources": ["whee"],
+ },
+ "//uninteresting:c": {
+ "configs": ["whee"],
+ },
+ "//uninteresting:d": {
+ "sources": [],
+ "configs": [],
+ },
+ "//interesting:a": {
+ "sources": ["a"],
+ "configs": ["b"],
+ },
+ "//interesting:b": {
+ "sources": ["d"],
+ "configs": ["c"],
+ },
+ }
+
+ expected_items = {
+ "//interesting:a": items["//interesting:a"],
+ "//interesting:b": items["//interesting:b"],
+ }
+
+ self.assertDictEqual(
+ fetch_gn_descs._fix_result("/", "/", "/", items), expected_items
+ )
+
+ def test_fix_result_translates_paths_in_out_dir(self):
+ items = {
+ "//interesting:a": {
+ "sources": ["//out_dir/foo", "//out_dir"],
+ "configs": ["b"],
+ },
+ }
+
+ expected_items = {
+ "//interesting:a": {
+ "sources": ["//out_translated/foo", "//out_translated/"],
+ "configs": ["b"],
+ },
+ }
+
+ self.assertDictEqual(
+ fetch_gn_descs._fix_result(
+ rename_out="//out_translated",
+ out_dir="/chromium/src/out_dir",
+ chromium_root="/chromium",
+ gn_desc=items,
+ ),
+ expected_items,
+ )
+
+ def test_gn_desc_output_parsing_skips_pre_json_warnings(self):
+ gn_desc = io.StringIO(
+ "\n".join(
+ (
+ "foo",
+ 'warning: "{" is bad',
+ '{"bar": "baz",',
+ ' "qux": true}',
+ )
+ )
+ )
+
+ warnings, desc_json = fetch_gn_descs._parse_gn_desc_output(gn_desc)
+ self.assertEqual(
+ warnings,
+ "\n".join(
+ (
+ "foo",
+ 'warning: "{" is bad',
+ )
+ ),
+ )
+ self.assertEqual(
+ desc_json,
+ {
+ "bar": "baz",
+ "qux": True,
+ },
+ )
+
+ def test_gn_desc_output_parsing_issues_no_warnings_if_none_are_present(
+ self,
+ ):
+ gn_desc = io.StringIO('{"bar": "baz"}')
+ warnings, desc_json = fetch_gn_descs._parse_gn_desc_output(gn_desc)
+ self.assertEqual(warnings, "")
+ self.assertEqual(desc_json, {"bar": "baz"})
+
+ gn_desc = io.StringIO('\n \n\t\n{"bar": "baz"}')
+ warnings, desc_json = fetch_gn_descs._parse_gn_desc_output(gn_desc)
+ self.assertEqual(warnings, "")
+ self.assertEqual(desc_json, {"bar": "baz"})
+
+
+if __name__ == "__main__":
+ unittest.main()