Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Unified Diff: tools/variations/fieldtrial_to_struct.py

Issue 2259443003: Capture All Groups in the Field Trial For Testing Studies (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CR Feedback Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/variations/fieldtrial_to_struct.py
diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
index dcaed3ab412585a9f6701d541c2224023fa98f6c..946ca61cab2c34c3d127c2662dffda9095292047 100755
--- a/tools/variations/fieldtrial_to_struct.py
+++ b/tools/variations/fieldtrial_to_struct.py
@@ -34,32 +34,39 @@ def _LoadFieldTrialConfig(filename):
"""
return _FieldTrialConfigToDescription(_Load(filename))
+def _CreateGroup(group_data):
+ group = {'name': group_data['group_name']}
+ params_data = group_data.get('params')
+ if (params_data):
+ group['params'] = [{'key': param, 'value': params_data[param]}
+ for param in sorted(params_data.keys())];
+ enable_features_data = group_data.get('enable_features')
+ if enable_features_data:
+ group['enable_features'] = enable_features_data
+ disable_features_data = group_data.get('disable_features')
+ if disable_features_data:
+ group['disable_features'] = disable_features_data
+ return group
+
+def _CreateTrial(trial_name, groups):
+ return {
+ 'name': trial_name,
+ 'groups': [_CreateGroup(group) for group in groups],
+ }
+
def _FieldTrialConfigToDescription(config):
- element = {'groups': []}
- for study in sorted(config.keys()):
- group_data = config[study][0]
- group = {
- 'study': study,
- 'group_name': group_data['group_name']
+ return {
+ 'elements': {
+ 'kFieldTrialConfig': {
+ 'trials': [_CreateTrial(trial_name, config[trial_name])
+ for trial_name in sorted(config.keys())]
+ }
}
- params_data = group_data.get('params')
- if (params_data):
- params = []
- for param in sorted(params_data.keys()):
- params.append({'key': param, 'value': params_data[param]})
- group['params'] = params
- enable_features_data = group_data.get('enable_features')
- if enable_features_data:
- group['enable_features'] = enable_features_data
- disable_features_data = group_data.get('disable_features')
- if disable_features_data:
- group['disable_features'] = disable_features_data
- element['groups'].append(group)
- return {'elements': {'kFieldTrialConfig': element}}
+ }
def main(arguments):
parser = optparse.OptionParser(
- description='Generates an C++ array of struct from a JSON description.',
+ description='Generates a struct from a JSON description.',
usage='usage: %prog [option] -s schema description')
parser.add_option('-b', '--destbase',
help='base directory of generated files.')
« no previous file with comments | « chrome/common/variations/variations_util_unittest.cc ('k') | tools/variations/fieldtrial_to_struct_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698