Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/scenario/bootable.rb')
-rw-r--r--qa/qa/scenario/bootable.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/qa/qa/scenario/bootable.rb b/qa/qa/scenario/bootable.rb
index 841ac4dd560..ae180ffce1c 100644
--- a/qa/qa/scenario/bootable.rb
+++ b/qa/qa/scenario/bootable.rb
@@ -17,6 +17,22 @@ module QA
arguments = OptionParser.new do |parser|
options.to_a.each do |opt|
+ # The argument for the --set-feature-flags option should look something like "flag1=enabled,flag2=disabled"
+ # Here we translate that string into a hash, e.g.: { 'flag1' => 'enabled', 'flag2' => "disabled" }
+ if opt.name == :set_feature_flags
+ parser.on(opt.arg, opt.desc) do |flags|
+ value = flags.split(',').each_with_object({}) do |pair, hash|
+ flag_name, flag_value = pair.split('=')
+ raise '--set-feature-flags requires flag name and flag state for each flag, e.g., flag1=enabled,flag2=disabled' unless flag_name && flag_value
+
+ hash[flag_name] = flag_value
+ end
+ Runtime::Scenario.define(opt.name, value)
+ end
+
+ next
+ end
+
parser.on(opt.arg, opt.desc) do |value|
Runtime::Scenario.define(opt.name, value)
end