Skip to content

Commit 5235435

Browse files
committed
Execution Hanging Detection
Increasing code coverage. Minor fixes Signed-off-by: Rodrigo Nardi <rnardi@netdef.org>
1 parent 7ed4e9a commit 5235435

3 files changed

Lines changed: 36 additions & 2 deletions

File tree

lib/models/check_suite.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,6 @@ def execution_started?
5050
end
5151

5252
def last_job_updated_at_timer
53-
ci_jobs.max_by(&:updated_at)&.updated_at
53+
ci_jobs.max_by(&:updated_at).to_s.updated_at
5454
end
5555
end
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# SPDX-License-Identifier: BSD-2-Clause
2+
#
3+
# ci_job_spec.rb
4+
# Part of NetDEF CI System
5+
#
6+
# Copyright (c) 2023 by
7+
# Network Device Education Foundation, Inc. ("NetDEF")
8+
#
9+
# frozen_string_literal: true
10+
11+
describe CheckSuite do
12+
context '#execution_started?' do
13+
let(:check_suite) { create(:check_suite) }
14+
let(:check_suite_running) { create(:check_suite, :with_in_progress) }
15+
16+
it 'returns true when there are less than 2 jobs in progress' do
17+
expect(check_suite.execution_started?).to be_truthy
18+
end
19+
20+
it 'returns false' do
21+
expect(check_suite_running.execution_started?).to be_falsey
22+
end
23+
end
24+
25+
context '#last_job_updated_at_timer?' do
26+
let(:ci_job) { create(:ci_job, updated_at: nil) }
27+
let(:check_suite) { create(:check_suite, ci_jobs: [ci_job]) }
28+
let(:check_suite_running) { create(:check_suite, :with_in_progress) }
29+
30+
it 'returns false' do
31+
expect(check_suite_running.last_job_updated_at_timer).not_to be_nil
32+
end
33+
end
34+
end

workers/timeout_execution.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def rescheduling(resp, check_suite_id)
3737

3838
@logger.info("Rescheduling check_suite_id: #{check_suite_id}")
3939

40-
Delayed::Job.where('handler LIKE ?', "%TimeoutExecution%args%-%#{check_suite_id}%")&.delete_all
40+
Delayed::Job.where('handler LIKE ?', "%TimeoutExecution%args%-%#{check_suite_id}%").delete_all
4141

4242
TimeoutExecution
4343
.delay(run_at: 2.hours.from_now.utc, queue: 'timeout_execution')

0 commit comments

Comments
 (0)