mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
ninjalog_uploader: Distinguish between explicit and default build configs
This CL adds `explicit_build_config_keys` to the metadata for the server to distinguish between explicit and default configs. This CL excludes the configs set in `//.gn` from the list, so that the configs specified by users will be considered as explicit. Bug: 364971744 Change-Id: I6a3d289d8ca6e054dac691051b53c92ad1ec23c5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5853009 Commit-Queue: Junji Watanabe <jwata@google.com> Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
This commit is contained in:
@@ -18,65 +18,74 @@ import ninjalog_uploader
|
||||
class NinjalogUploaderTest(unittest.TestCase):
|
||||
|
||||
def test_parse_gn_args(self):
|
||||
self.assertEqual(ninjalog_uploader.ParseGNArgs(json.dumps([])), {})
|
||||
gn_args, explicit_keys = ninjalog_uploader.ParseGNArgs(json.dumps([]))
|
||||
self.assertEqual(gn_args, {})
|
||||
self.assertEqual(explicit_keys, [])
|
||||
|
||||
# Extract current configs from GN's output json.
|
||||
self.assertEqual(
|
||||
ninjalog_uploader.ParseGNArgs(
|
||||
json.dumps([
|
||||
{
|
||||
'current': {
|
||||
'value': 'true'
|
||||
},
|
||||
'default': {
|
||||
'value': 'false'
|
||||
},
|
||||
'name': 'is_component_build'
|
||||
gn_args, explicit_keys = ninjalog_uploader.ParseGNArgs(
|
||||
json.dumps([
|
||||
{
|
||||
'current': {
|
||||
'value': 'true',
|
||||
'file': '//path/to/args.gn',
|
||||
},
|
||||
{
|
||||
'default': {
|
||||
'value': '"x64"'
|
||||
},
|
||||
'name': 'host_cpu'
|
||||
'default': {
|
||||
'value': 'false'
|
||||
},
|
||||
])), {
|
||||
'is_component_build': 'true',
|
||||
'host_cpu': 'x64',
|
||||
})
|
||||
'name': 'is_component_build'
|
||||
},
|
||||
{
|
||||
'default': {
|
||||
'value': '"x64"'
|
||||
},
|
||||
'name': 'host_cpu'
|
||||
},
|
||||
]))
|
||||
|
||||
self.assertEqual(
|
||||
ninjalog_uploader.ParseGNArgs(
|
||||
json.dumps([
|
||||
{
|
||||
'current': {
|
||||
'value': 'true'
|
||||
},
|
||||
'default': {
|
||||
'value': 'false'
|
||||
},
|
||||
'name': 'is_component_build'
|
||||
self.assertEqual(gn_args, {
|
||||
'is_component_build': 'true',
|
||||
'host_cpu': 'x64',
|
||||
})
|
||||
self.assertEqual(explicit_keys, ['is_component_build'])
|
||||
|
||||
gn_args, explicit_keys = ninjalog_uploader.ParseGNArgs(
|
||||
json.dumps([
|
||||
{
|
||||
'current': {
|
||||
'value': 'true',
|
||||
'file': '//.gn',
|
||||
},
|
||||
{
|
||||
'current': {
|
||||
'value': 'false'
|
||||
},
|
||||
'default': {
|
||||
'value': 'false'
|
||||
},
|
||||
'name': 'use_remoteexec'
|
||||
'default': {
|
||||
'value': 'false'
|
||||
},
|
||||
])), {
|
||||
'is_component_build': 'true',
|
||||
'use_remoteexec': 'false'
|
||||
})
|
||||
'name': 'is_component_build'
|
||||
},
|
||||
{
|
||||
'current': {
|
||||
'value': 'false',
|
||||
'file': '//path/to/args.gn',
|
||||
},
|
||||
'default': {
|
||||
'value': 'false'
|
||||
},
|
||||
'name': 'use_remoteexec'
|
||||
},
|
||||
]))
|
||||
self.assertEqual(gn_args, {
|
||||
'is_component_build': 'true',
|
||||
'use_remoteexec': 'false'
|
||||
})
|
||||
self.assertEqual(explicit_keys, ['use_remoteexec'])
|
||||
|
||||
# Do not include sensitive information.
|
||||
with unittest.mock.patch('getpass.getuser', return_value='bob'):
|
||||
args = ninjalog_uploader.ParseGNArgs(
|
||||
gn_args, explicit_keys = ninjalog_uploader.ParseGNArgs(
|
||||
json.dumps([
|
||||
{
|
||||
'current': {
|
||||
'value': 'xyz'
|
||||
'value': 'xyz',
|
||||
'file': '//path/to/args.gn',
|
||||
},
|
||||
'default': {
|
||||
'value': ''
|
||||
@@ -85,7 +94,8 @@ class NinjalogUploaderTest(unittest.TestCase):
|
||||
},
|
||||
{
|
||||
'current': {
|
||||
'value': '/home/bob/bobo'
|
||||
'value': '/home/bob/bobo',
|
||||
'file': '//path/to/args.gn',
|
||||
},
|
||||
'default': {
|
||||
'value': ''
|
||||
@@ -94,7 +104,7 @@ class NinjalogUploaderTest(unittest.TestCase):
|
||||
},
|
||||
]))
|
||||
self.assertEqual(
|
||||
args, {
|
||||
gn_args, {
|
||||
'google_api_key': '<omitted>',
|
||||
'path_with_homedir': '/home/$USER/bobo',
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user