@@ -38,8 +38,14 @@ my $current_jobs = list_jobs();
38
38
ok(@$current_jobs , " have jobs" );
39
39
40
40
my $job1 = OpenQA::Scheduler::job_get(99927);
41
+ is($job1 -> {state }, OpenQA::Schema::Result::Jobs::SCHEDULED, ' trying to duplicate scheduled job' );
41
42
my $id = OpenQA::Scheduler::job_duplicate(jobid => 99927);
42
- ok(defined $id , " duplicate works" );
43
+ ok(!defined $id , " duplication rejected" );
44
+
45
+ $job1 = OpenQA::Scheduler::job_get(99926);
46
+ is($job1 -> {state }, OpenQA::Schema::Result::Jobs::DONE, ' trying to duplicate done job' );
47
+ $id = OpenQA::Scheduler::job_duplicate(jobid => 99926);
48
+ ok(defined $id , " duplication works" );
43
49
44
50
my $jobs = list_jobs();
45
51
is(@$jobs , @$current_jobs +1, " one more job after duplicating one job" );
@@ -51,17 +57,25 @@ delete $job1->{id};
51
57
delete $job1 -> {settings }-> {NAME };
52
58
delete $job2 -> {id };
53
59
delete $job2 -> {settings }-> {NAME };
60
+ delete $job1 -> {state };
61
+ delete $job2 -> {state };
62
+ delete $job1 -> {result };
63
+ delete $job2 -> {result };
64
+ delete $job1 -> {t_finished };
65
+ delete $job2 -> {t_finished };
66
+ delete $job1 -> {t_started };
67
+ delete $job2 -> {t_started };
54
68
is_deeply($job1 , $job2 , " duplicated job equal" );
55
69
56
- my @ret = OpenQA::Scheduler::job_restart(99927 );
70
+ my @ret = OpenQA::Scheduler::job_restart(99926 );
57
71
is(@ret , 0, " no job ids returned" );
58
72
59
73
$jobs = list_jobs();
60
74
is_deeply($jobs , $current_jobs , " jobs unchanged after restarting scheduled job" );
61
75
62
76
OpenQA::Scheduler::job_cancel(99927);
63
77
$job1 = OpenQA::Scheduler::job_get(99927);
64
- is($job1 -> {state }, ' cancelled' , " scheduled job cancelled after cancelled " );
78
+ is($job1 -> {state }, ' cancelled' , " scheduled job cancelled after cancel " );
65
79
66
80
$job1 = OpenQA::Scheduler::job_get(99937);
67
81
@ret = OpenQA::Scheduler::job_restart(99937);
@@ -94,22 +108,30 @@ $job2 = OpenQA::Scheduler::job_get(99963);
94
108
95
109
is_deeply($job1 , $job2 , " running job unchanged after cancel" );
96
110
97
- my $job3 = OpenQA::Scheduler::job_get(99928 );
98
- is($job3 -> {retry_avbl }, 3, " the retry counter decreased " );
99
- my $round1_id = OpenQA::Scheduler::job_duplicate((jobid => 99928 , dup_type_auto => 1));
111
+ my $job3 = OpenQA::Scheduler::job_get(99938 );
112
+ is($job3 -> {retry_avbl }, 3, " the retry counter setup " );
113
+ my $round1_id = OpenQA::Scheduler::job_duplicate((jobid => 99938 , dup_type_auto => 1));
100
114
ok(defined $round1_id , " auto-duplicate works" );
101
115
$job3 = OpenQA::Scheduler::job_get($round1_id );
102
116
is($job3 -> {retry_avbl }, 2, " the retry counter decreased" );
117
+ # need to change state from scheduled
118
+ OpenQA::Scheduler::job_set_done(jobid => $round1_id , result => OpenQA::Schema::Result::Jobs::INCOMPLETE);
103
119
my $round2_id = OpenQA::Scheduler::job_duplicate((jobid => $round1_id , dup_type_auto => 1));
104
120
ok(defined $round2_id , " auto-duplicate works" );
105
121
$job3 = OpenQA::Scheduler::job_get($round2_id );
106
122
is($job3 -> {retry_avbl }, 1, " the retry counter decreased" );
123
+ # need to change state from scheduled
124
+ OpenQA::Scheduler::job_set_done(jobid => $round2_id , result => OpenQA::Schema::Result::Jobs::INCOMPLETE);
107
125
my $round3_id = OpenQA::Scheduler::job_duplicate((jobid => $round2_id , dup_type_auto => 1));
108
126
ok(defined $round3_id , " auto-duplicate works" );
109
127
$job3 = OpenQA::Scheduler::job_get($round3_id );
110
128
is($job3 -> {retry_avbl }, 0, " the retry counter decreased" );
129
+ # need to change state from scheduled
130
+ OpenQA::Scheduler::job_set_done(jobid => $round3_id , result => OpenQA::Schema::Result::Jobs::INCOMPLETE);
111
131
my $round4_id = OpenQA::Scheduler::job_duplicate((jobid => $round3_id , dup_type_auto => 1));
112
- ok(!defined $round4_id , " auto-duplicate works" );
132
+ ok(!defined $round4_id , " no logner auto-duplicating" );
133
+ # need to change state from scheduled
134
+ OpenQA::Scheduler::job_set_done(jobid => $round3_id , result => OpenQA::Schema::Result::Jobs::INCOMPLETE);
113
135
my $round5_id = OpenQA::Scheduler::job_duplicate(jobid => $round3_id );
114
136
ok(defined $round5_id , " manual-duplicate works" );
115
137
$job3 = OpenQA::Scheduler::job_get($round5_id );
0 commit comments