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

Unified Diff: tools/variations/fieldtrial_util.py

Issue 2381663002: Revert of Update fieldtrial_util To Handle Combined Fieldtrial Config Format (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « tools/variations/fieldtrial_to_struct.py ('k') | tools/variations/fieldtrial_util_unittest.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/variations/fieldtrial_util.py
diff --git a/tools/variations/fieldtrial_util.py b/tools/variations/fieldtrial_util.py
index 024894ab21ea7f219151282a1878adbdcc5e158a..ae029aa45b0b9de702202420b707eda2c0363e17 100644
--- a/tools/variations/fieldtrial_util.py
+++ b/tools/variations/fieldtrial_util.py
@@ -5,7 +5,6 @@
import json
import sys
-import fieldtrial_to_struct
def _hex(ch):
hv = hex(ord(ch)).replace('0x', '')
@@ -45,49 +44,45 @@
raise Exception('Conflicting features set as both enabled and disabled: ' +
', '.join(features_in_both))
-# Generate a list of command-line switches to enable field trials for the
-# provided config_path and platform.
-def GenerateArgs(config_path, platform):
+# Generate a list of command-line switches to enable field trials defined in
+# fieldtrial_testing_config_*.json.
+def GenerateArgs(config_path):
try:
- with open(config_path, 'r') as config_file:
- config = json.load(config_file)
+ with open(config_path, 'r') as base_file:
+ variations = json.load(base_file)
except (IOError, ValueError):
return []
- platform_studies = fieldtrial_to_struct.ConfigToStudies(config, platform)
-
- studies = []
+ field_trials = []
params = []
enable_features = []
disable_features = []
-
- for study in platform_studies:
- study_name = study['name']
- experiments = study['experiments']
- # For now, only take the first experiment.
- experiment = experiments[0]
- selected_study = [study_name, experiment['name']]
- studies.extend(selected_study)
+ for trial, groups in variations.iteritems():
+ if not len(groups):
+ continue
+ # For now, only take the first group.
+ group = groups[0]
+ trial_group = [trial, group['group_name']]
+ field_trials.extend(trial_group)
param_list = []
- if 'params' in experiment:
- for param in experiment['params']:
- param_list.append(param['key'])
- param_list.append(param['value'])
+ if 'params' in group:
+ for key, value in group['params'].iteritems():
+ param_list.append(key)
+ param_list.append(value)
if len(param_list):
# Escape the variables for the command-line.
- selected_study = [_escape(x) for x in selected_study]
+ trial_group = [_escape(x) for x in trial_group]
param_list = [_escape(x) for x in param_list]
- param = '%s:%s' % ('.'.join(selected_study), '/'.join(param_list))
+ param = '%s:%s' % ('.'.join(trial_group), '/'.join(param_list))
params.append(param)
- if 'enable_features' in experiment:
- enable_features.extend(experiment['enable_features'])
- if 'disable_features' in experiment:
- disable_features.extend(experiment['disable_features'])
-
- if not len(studies):
+ if 'enable_features' in group:
+ enable_features.extend(group['enable_features'])
+ if 'disable_features' in group:
+ disable_features.extend(group['disable_features'])
+ if not len(field_trials):
return []
_CheckForDuplicateFeatures(enable_features, disable_features)
- args = ['--force-fieldtrials=%s' % '/'.join(studies)]
+ args = ['--force-fieldtrials=%s' % '/'.join(field_trials)]
if len(params):
args.append('--force-fieldtrial-params=%s' % ','.join(params))
if len(enable_features):
@@ -98,15 +93,8 @@
def main():
if len(sys.argv) < 3:
- print 'Usage: fieldtrial_util.py [config_path] [platform]'
+ print 'Usage: fieldtrial_util.py [base_config_path] [platform_config_path]'
exit(-1)
-
- supported_platforms = ['android', 'chromeos', 'ios', 'linux', 'mac', 'win']
- if sys.argv[2] not in supported_platforms:
- print ('\'%s\' is an unknown platform. Supported platforms: %s' %
- (sys.argv[2], supported_platforms))
- exit(-1)
-
print GenerateArgs(sys.argv[1], sys.argv[2])
if __name__ == '__main__':
« no previous file with comments | « tools/variations/fieldtrial_to_struct.py ('k') | tools/variations/fieldtrial_util_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698