From 7297a06cb6d9a73c721b27fdc1941e04b17f5433 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 6 Apr 2018 04:41:45 +0900 Subject: Fix bunch of texts --- spec/requests/api/runner_spec.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 4f3420cc0ad..284e8931812 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -1,11 +1,12 @@ require 'spec_helper' -describe API::Runner do +describe API::Runner, :clean_gitlab_redis_shared_state do include StubGitlabCalls let(:registration_token) { 'abcdefg123456' } before do + stub_feature_flags(ci_enable_live_trace: true) stub_gitlab_calls stub_application_setting(runners_registration_token: registration_token) allow_any_instance_of(Ci::Runner).to receive(:cache_attributes) -- cgit v1.2.1 From aaff5e452ecfdcab3b76873da37b864109703b18 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 6 Apr 2018 16:08:23 +0900 Subject: Add spec that proves trace can be recovered even if it had redis outage --- spec/requests/api/runner_spec.rb | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 847579807ae..d130b58fb1c 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -2,6 +2,7 @@ require 'spec_helper' describe API::Runner, :clean_gitlab_redis_shared_state do include StubGitlabCalls + include ChunkedIOHelpers let(:registration_token) { 'abcdefg123456' } @@ -865,6 +866,29 @@ describe API::Runner, :clean_gitlab_redis_shared_state do expect(response.status).to eq(403) end end + + context 'when redis had an outage' do + it "recovers" do + # GitLab-Runner patchs + patch_the_trace + expect(job.reload.trace.raw).to eq 'BUILD TRACE appended appended' + + # GitLab-Rails enxounters an outage on Redis + redis_shared_state_outage! + expect(job.reload.trace.raw).to eq '' + + # GitLab-Runner patchs + patch_the_trace('hello', headers.merge({ 'Content-Range' => "28-32" })) + expect(response.status).to eq 202 + expect(response.header).to have_key 'Range' + expect(response.header['Range']).to eq '0-0' + expect(job.reload.trace.raw).to eq '' + + # GitLab-Runner re-patchs + patch_the_trace('BUILD TRACE appended appended hello') + expect(job.reload.trace.raw).to eq 'BUILD TRACE appended appended hello' + end + end end context 'when Runner makes a force-patch' do -- cgit v1.2.1 From b55c3a7bc4c23618860916738702b5d62820c351 Mon Sep 17 00:00:00 2001 From: Alexis Reigel Date: Tue, 12 Sep 2017 11:34:34 +0200 Subject: support group runners in existing API endpoints --- spec/requests/api/runner_spec.rb | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 17c7a511857..5ea110b4d82 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -45,7 +45,7 @@ describe API::Runner do context 'when project token is used' do let(:project) { create(:project) } - it 'creates runner' do + it 'creates project runner' do post api('/runners'), token: project.runners_token expect(response).to have_gitlab_http_status 201 @@ -54,6 +54,19 @@ describe API::Runner do expect(Ci::Runner.first.token).not_to eq(project.runners_token) end end + + context 'when group token is used' do + let(:group) { create(:group) } + + it 'creates a group runner' do + post api('/runners'), token: group.runners_token + + expect(response).to have_http_status 201 + expect(group.runners.size).to eq(1) + expect(Ci::Runner.first.token).not_to eq(registration_token) + expect(Ci::Runner.first.token).not_to eq(group.runners_token) + end + end end context 'when runner description is provided' do -- cgit v1.2.1 From ddc7620babba20e55c535628e7c6a7c6046176bf Mon Sep 17 00:00:00 2001 From: blackst0ne Date: Sun, 29 Apr 2018 22:50:39 +1100 Subject: [Rails5] Fix `undefined method 'downcase'` errors in requests specs In Rails 5.0 headers are no longer inherited from Hash. This commit fixes errors in requests specs like: ``` 1) API::V3::Builds GET /projects/:id/builds/:build_id/artifacts job with artifacts when artifacts are stored locally authorized user returns specific job artifacts Failure/Error: expect(response.headers).to include(download_headers) NoMethodError: undefined method `downcase' for # # ./spec/requests/api/v3/builds_spec.rb:235:in `block (6 levels) in ' ``` --- spec/requests/api/runner_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 17c7a511857..6c1c13c9d80 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -1330,7 +1330,7 @@ describe API::Runner do it 'download artifacts' do expect(response).to have_http_status(200) - expect(response.headers).to include download_headers + expect(response.headers.to_h).to include download_headers end end @@ -1345,7 +1345,7 @@ describe API::Runner do it 'uses workhorse send-url' do expect(response).to have_gitlab_http_status(200) - expect(response.headers).to include( + expect(response.headers.to_h).to include( 'Gitlab-Workhorse-Send-Data' => /send-url:/) end end -- cgit v1.2.1 From dcb67951a817db262ddcd3b777fafc4e1995fc04 Mon Sep 17 00:00:00 2001 From: Dylan Griffith Date: Thu, 3 May 2018 09:45:09 +0200 Subject: Make assertions about runner_type in spec/requests/api/runner_spec.rb --- spec/requests/api/runner_spec.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 5ea110b4d82..27f5dff7901 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -40,6 +40,7 @@ describe API::Runner do expect(json_response['token']).to eq(runner.token) expect(runner.run_untagged).to be true expect(runner.token).not_to eq(registration_token) + expect(runner).to be_instance_type end context 'when project token is used' do @@ -50,8 +51,10 @@ describe API::Runner do expect(response).to have_gitlab_http_status 201 expect(project.runners.size).to eq(1) - expect(Ci::Runner.first.token).not_to eq(registration_token) - expect(Ci::Runner.first.token).not_to eq(project.runners_token) + runner = Ci::Runner.first + expect(runner.token).not_to eq(registration_token) + expect(runner.token).not_to eq(project.runners_token) + expect(runner).to be_project_type end end @@ -63,8 +66,10 @@ describe API::Runner do expect(response).to have_http_status 201 expect(group.runners.size).to eq(1) - expect(Ci::Runner.first.token).not_to eq(registration_token) - expect(Ci::Runner.first.token).not_to eq(group.runners_token) + runner = Ci::Runner.first + expect(runner.token).not_to eq(registration_token) + expect(runner.token).not_to eq(group.runners_token) + expect(runner).to be_group_type end end end -- cgit v1.2.1 From 812dd06d512ab7774b375ce45aa9235aafc99911 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 4 May 2018 17:02:08 +0900 Subject: Introduce Redis helpers. Rename BuildTraceChunkFlushToDbWorker to Ci::BuildTraceChunkFlushWorker. --- spec/requests/api/runner_spec.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index f27c95b4907..ff23b625244 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' describe API::Runner, :clean_gitlab_redis_shared_state do include StubGitlabCalls - include ChunkedIOHelpers + include RedisHelpers let(:registration_token) { 'abcdefg123456' } @@ -873,8 +873,8 @@ describe API::Runner, :clean_gitlab_redis_shared_state do patch_the_trace expect(job.reload.trace.raw).to eq 'BUILD TRACE appended appended' - # GitLab-Rails enxounters an outage on Redis - redis_shared_state_outage! + # GitLab-Rails encounters an outage on Redis + redis_shared_state_cleanup! expect(job.reload.trace.raw).to eq '' # GitLab-Runner patchs -- cgit v1.2.1 From 8b47980e12887e255146ce155b446d9176586cfe Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 4 May 2018 20:02:14 +0900 Subject: Clean up "when redis had an outage" context in runner spec --- spec/requests/api/runner_spec.rb | 52 ++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 15 deletions(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index ff23b625244..592256a3acf 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -867,26 +867,48 @@ describe API::Runner, :clean_gitlab_redis_shared_state do end end - context 'when redis had an outage' do - it "recovers" do - # GitLab-Runner patchs + context 'when trace is patched' do + before do patch_the_trace + end + + it 'has valid trace' do + expect(response.status).to eq(202) expect(job.reload.trace.raw).to eq 'BUILD TRACE appended appended' + end + + context 'when redis data are flushed' do + before do + redis_shared_state_cleanup! + end + + it 'has empty trace' do + expect(job.reload.trace.raw).to eq '' + end - # GitLab-Rails encounters an outage on Redis - redis_shared_state_cleanup! - expect(job.reload.trace.raw).to eq '' + context 'when we perform partial patch' do + before do + patch_the_trace('hello', headers.merge({ 'Content-Range' => "28-32" })) + end - # GitLab-Runner patchs - patch_the_trace('hello', headers.merge({ 'Content-Range' => "28-32" })) - expect(response.status).to eq 202 - expect(response.header).to have_key 'Range' - expect(response.header['Range']).to eq '0-0' - expect(job.reload.trace.raw).to eq '' + it 'returns an error' do + expect(response.status).to eq(202) + expect(response.header).to have_key 'Range' + expect(response.header['Range']).to eq '0-0' + expect(job.reload.trace.raw).to eq '' + end + end - # GitLab-Runner re-patchs - patch_the_trace('BUILD TRACE appended appended hello') - expect(job.reload.trace.raw).to eq 'BUILD TRACE appended appended hello' + context 'when we resend full trace' do + before do + patch_the_trace('BUILD TRACE appended appended hello') + end + + it 'succeeds with updating trace' do + expect(response.status).to eq(202) + expect(job.reload.trace.raw).to eq 'BUILD TRACE appended appended hello' + end + end end end end -- cgit v1.2.1 From c1d3b48c96ce44a2ff3e84cb89063a00c67297f5 Mon Sep 17 00:00:00 2001 From: Shinya Maeda Date: Fri, 4 May 2018 21:48:10 +0900 Subject: Change BuildTraceChunkFlushWorker's queue from pipeline_processing to pipeline_background --- spec/requests/api/runner_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index 592256a3acf..70c3529da03 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -901,7 +901,7 @@ describe API::Runner, :clean_gitlab_redis_shared_state do context 'when we resend full trace' do before do - patch_the_trace('BUILD TRACE appended appended hello') + patch_the_trace('BUILD TRACE appended appended hello', headers.merge({ 'Content-Range' => "0-32" })) end it 'succeeds with updating trace' do -- cgit v1.2.1 From 8d8534d7ab31ef9f7bdc4e00c54bcda9d9bf93d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?= Date: Sun, 6 May 2018 19:54:41 +0200 Subject: Enforce proper 416 support for runner trace patch endpoint --- spec/requests/api/runner_spec.rb | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'spec/requests/api/runner_spec.rb') diff --git a/spec/requests/api/runner_spec.rb b/spec/requests/api/runner_spec.rb index f02c001f85d..082605827b7 100644 --- a/spec/requests/api/runner_spec.rb +++ b/spec/requests/api/runner_spec.rb @@ -906,20 +906,18 @@ describe API::Runner, :clean_gitlab_redis_shared_state do context 'when we perform partial patch' do before do - patch_the_trace('hello', headers.merge({ 'Content-Range' => "28-32" })) + patch_the_trace('hello', headers.merge({ 'Content-Range' => "28-32/5" })) end it 'returns an error' do - expect(response.status).to eq(202) - expect(response.header).to have_key 'Range' - expect(response.header['Range']).to eq '0-0' - expect(job.reload.trace.raw).to eq '' + expect(response.status).to eq(416) + expect(response.header['Range']).to eq('0-0') end end context 'when we resend full trace' do before do - patch_the_trace('BUILD TRACE appended appended hello', headers.merge({ 'Content-Range' => "0-32" })) + patch_the_trace('BUILD TRACE appended appended hello', headers.merge({ 'Content-Range' => "0-34/35" })) end it 'succeeds with updating trace' do @@ -945,7 +943,7 @@ describe API::Runner, :clean_gitlab_redis_shared_state do end context 'when content-range start is too big' do - let(:headers_with_range) { headers.merge({ 'Content-Range' => '15-20' }) } + let(:headers_with_range) { headers.merge({ 'Content-Range' => '15-20/6' }) } it 'gets 416 error response with range headers' do expect(response.status).to eq 416 @@ -955,7 +953,7 @@ describe API::Runner, :clean_gitlab_redis_shared_state do end context 'when content-range start is too small' do - let(:headers_with_range) { headers.merge({ 'Content-Range' => '8-20' }) } + let(:headers_with_range) { headers.merge({ 'Content-Range' => '8-20/13' }) } it 'gets 416 error response with range headers' do expect(response.status).to eq 416 -- cgit v1.2.1