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 'spec/scripts/generate_rspec_pipeline_spec.rb')
-rw-r--r--spec/scripts/generate_rspec_pipeline_spec.rb30
1 files changed, 25 insertions, 5 deletions
diff --git a/spec/scripts/generate_rspec_pipeline_spec.rb b/spec/scripts/generate_rspec_pipeline_spec.rb
index 91b5739cf63..894c33968b8 100644
--- a/spec/scripts/generate_rspec_pipeline_spec.rb
+++ b/spec/scripts/generate_rspec_pipeline_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe GenerateRspecPipeline, :silence_stdout, feature_category: :toolin
describe '#generate!' do
let!(:rspec_files) { Tempfile.new(['rspec_files_path', '.txt']) }
let(:rspec_files_content) do
- "spec/migrations/a_spec.rb spec/migrations/b_spec.rb " \
+ "spec/migrations/a_spec.rb spec/migrations/b_spec.rb spec/migrations/c_spec.rb spec/migrations/d_spec.rb " \
"spec/lib/gitlab/background_migration/a_spec.rb spec/lib/gitlab/background_migration/b_spec.rb " \
"spec/models/a_spec.rb spec/models/b_spec.rb " \
"spec/controllers/a_spec.rb spec/controllers/b_spec.rb " \
@@ -63,8 +63,13 @@ RSpec.describe GenerateRspecPipeline, :silence_stdout, feature_category: :toolin
let(:knapsack_report_content) do
<<~JSON
{
- "spec/migrations/a_spec.rb": 360.3,
- "spec/migrations/b_spec.rb": 180.1,
+ "spec/migrations/a_spec.rb": 620.3,
+ "spec/migrations/b_spec.rb": 610.1,
+ "spec/migrations/c_spec.rb": 20.1,
+ "spec/migrations/d_spec.rb": 20.1,
+ "spec/migrations/e_spec.rb": 20.1,
+ "spec/migrations/f_spec.rb": 20.1,
+ "spec/migrations/g_spec.rb": 20.1,
"spec/lib/gitlab/background_migration/a_spec.rb": 60.5,
"spec/lib/gitlab/background_migration/b_spec.rb": 180.3,
"spec/models/a_spec.rb": 360.2,
@@ -123,7 +128,7 @@ RSpec.describe GenerateRspecPipeline, :silence_stdout, feature_category: :toolin
expect(File.read("#{pipeline_template.path}.yml"))
.to eq(
- "rspec migration:\n parallel: 2\nrspec background_migration:\n parallel: 2\n" \
+ "rspec migration:\n parallel: 4\nrspec background_migration:\n parallel: 2\n" \
"rspec unit:\n parallel: 2\nrspec integration:\n parallel: 2\n" \
"rspec system:\n parallel: 2"
)
@@ -164,12 +169,27 @@ RSpec.describe GenerateRspecPipeline, :silence_stdout, feature_category: :toolin
expect(File.read("#{pipeline_template.path}.yml"))
.to eq(
- "rspec migration:\n parallel: 2\nrspec background_migration:\n" \
+ "rspec migration:\n parallel: 4\nrspec background_migration:\n" \
"rspec unit:\n parallel: 2\nrspec integration:\n" \
"rspec system:\n parallel: 2"
)
end
+ context 'and RSpec files have a high duration' do
+ let(:rspec_files_content) do
+ "spec/migrations/a_spec.rb spec/migrations/b_spec.rb"
+ end
+
+ it 'generates the pipeline config with parallelization based on Knapsack' do
+ subject.generate!
+
+ expect(File.read("#{pipeline_template.path}.yml"))
+ .to eq(
+ "rspec migration:\n parallel: 2"
+ )
+ end
+ end
+
context 'and Knapsack report does not contain valid JSON' do
let(:knapsack_report_content) { "#{super()}," }