Skip to content

Commit 6093f88

Browse files
committed
Partial priority ordering
1 parent ac7b0ff commit 6093f88

File tree

5 files changed

+199
-126
lines changed

5 files changed

+199
-126
lines changed

database/src/lib.rs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -801,24 +801,35 @@ pub struct ArtifactCollection {
801801

802802
#[derive(Debug, Clone, PartialEq)]
803803
pub enum BenchmarkRequestStatus {
804-
WaitingForArtifacts,
805-
WaitingForParent,
806804
InProgress,
807805
Completed,
806+
ArtifactsReady,
807+
WaitingForArtifacts,
808808
}
809809

810810
impl fmt::Display for BenchmarkRequestStatus {
811811
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
812812
match self {
813-
BenchmarkRequestStatus::WaitingForArtifacts => write!(f, "waiting_for_artifacts"),
814-
BenchmarkRequestStatus::WaitingForParent => write!(f, "waiting_for_parent"),
815-
BenchmarkRequestStatus::InProgress => write!(f, "in_progress"),
816813
BenchmarkRequestStatus::Completed => write!(f, "completed"),
814+
BenchmarkRequestStatus::InProgress => write!(f, "in_progress"),
815+
BenchmarkRequestStatus::ArtifactsReady => write!(f, "artifacts_ready"),
816+
BenchmarkRequestStatus::WaitingForArtifacts => write!(f, "waiting_for_artifacts"),
817+
}
818+
}
819+
}
820+
821+
impl BenchmarkRequestStatus {
822+
pub fn rank(&self) -> u8 {
823+
match self {
824+
BenchmarkRequestStatus::Completed => 0,
825+
BenchmarkRequestStatus::InProgress => 1,
826+
BenchmarkRequestStatus::ArtifactsReady => 2,
827+
BenchmarkRequestStatus::WaitingForArtifacts => 3,
817828
}
818829
}
819830
}
820831

821-
#[derive(Debug, Clone)]
832+
#[derive(Debug, Clone, PartialEq)]
822833
pub enum BenchmarkRequestType {
823834
/// A Try commit
824835
Try {
@@ -876,7 +887,7 @@ impl fmt::Display for BenchmarkRequestType {
876887
}
877888
}
878889

879-
#[derive(Debug, Clone)]
890+
#[derive(Debug, Clone, PartialEq)]
880891
pub struct BenchmarkRequest {
881892
pub commit_type: BenchmarkRequestType,
882893
pub created_at: DateTime<Utc>,

database/src/pool.rs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ mod tests {
404404
"parent-sha-1",
405405
42,
406406
time,
407-
BenchmarkRequestStatus::WaitingForParent,
407+
BenchmarkRequestStatus::ArtifactsReady,
408408
"llvm",
409409
"",
410410
);
@@ -414,15 +414,15 @@ mod tests {
414414
"parent-sha-2",
415415
32,
416416
time,
417-
BenchmarkRequestStatus::WaitingForParent,
417+
BenchmarkRequestStatus::ArtifactsReady,
418418
"cranelift",
419419
"",
420420
);
421421

422422
let release_benchmark_request = BenchmarkRequest::create_release(
423423
"1.8.0",
424424
time,
425-
BenchmarkRequestStatus::WaitingForParent,
425+
BenchmarkRequestStatus::ArtifactsReady,
426426
"cranelift,llvm",
427427
"",
428428
);
@@ -452,7 +452,7 @@ mod tests {
452452
"parent-sha-1",
453453
42,
454454
time,
455-
BenchmarkRequestStatus::WaitingForParent,
455+
BenchmarkRequestStatus::ArtifactsReady,
456456
"llvm",
457457
"",
458458
);
@@ -470,7 +470,7 @@ mod tests {
470470
let release_benchmark_request = BenchmarkRequest::create_release(
471471
"1.8.0",
472472
time,
473-
BenchmarkRequestStatus::WaitingForParent,
473+
BenchmarkRequestStatus::ArtifactsReady,
474474
"cranelift,llvm",
475475
"",
476476
);
@@ -482,12 +482,13 @@ mod tests {
482482
.await;
483483

484484
let requests = db
485-
.get_benchmark_requests_by_status(&[BenchmarkRequestStatus::WaitingForParent], None)
486-
.await;
485+
.get_benchmark_requests_by_status(&[BenchmarkRequestStatus::ArtifactsReady], None)
486+
.await
487+
.unwrap();
487488

488489
assert_eq!(requests.len(), 2);
489-
assert_eq!(requests[0].status, BenchmarkRequestStatus::WaitingForParent);
490-
assert_eq!(requests[1].status, BenchmarkRequestStatus::WaitingForParent);
490+
assert_eq!(requests[0].status, BenchmarkRequestStatus::ArtifactsReady);
491+
assert_eq!(requests[1].status, BenchmarkRequestStatus::ArtifactsReady);
491492

492493
Ok(ctx)
493494
})
@@ -509,7 +510,7 @@ mod tests {
509510
"parent-sha-1",
510511
42,
511512
created_at,
512-
BenchmarkRequestStatus::WaitingForParent,
513+
BenchmarkRequestStatus::ArtifactsReady,
513514
"llvm",
514515
"",
515516
);
@@ -545,7 +546,7 @@ mod tests {
545546
let release_benchmark_request = BenchmarkRequest::create_release(
546547
"1.8.0",
547548
old_created_at,
548-
BenchmarkRequestStatus::WaitingForParent,
549+
BenchmarkRequestStatus::ArtifactsReady,
549550
"cranelift,llvm",
550551
"",
551552
);
@@ -563,15 +564,15 @@ mod tests {
563564
let requests = db
564565
.get_benchmark_requests_by_status(
565566
&[
566-
BenchmarkRequestStatus::WaitingForParent,
567+
BenchmarkRequestStatus::ArtifactsReady,
567568
BenchmarkRequestStatus::InProgress,
568569
BenchmarkRequestStatus::Completed,
569570
],
570571
Some(cutoff_days),
571572
)
572573
.await;
573574

574-
assert_eq!(requests.len(), 3);
575+
assert_eq!(requests?.len(), 3);
575576

576577
Ok(ctx)
577578
})
@@ -590,7 +591,7 @@ mod tests {
590591
"parent-sha-1",
591592
42,
592593
time,
593-
BenchmarkRequestStatus::WaitingForParent,
594+
BenchmarkRequestStatus::ArtifactsReady,
594595
"llvm",
595596
"",
596597
);
@@ -602,11 +603,13 @@ mod tests {
602603
&master_benchmark_request,
603604
BenchmarkRequestStatus::InProgress,
604605
)
605-
.await;
606+
.await
607+
.unwrap();
606608

607609
let requests = db
608610
.get_benchmark_requests_by_status(&[BenchmarkRequestStatus::InProgress], None)
609-
.await;
611+
.await
612+
.unwrap();
610613

611614
assert_eq!(requests.len(), 1);
612615
assert_eq!(requests[0].tag(), master_benchmark_request.tag());

database/src/pool/postgres.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1582,7 +1582,7 @@ impl<'a> FromSql<'a> for BenchmarkRequestStatus {
15821582

15831583
match s {
15841584
"waiting_for_artifacts" => Ok(Self::WaitingForArtifacts),
1585-
"waiting_for_parent" => Ok(Self::WaitingForParent),
1585+
"artifacts_ready" => Ok(Self::ArtifactsReady),
15861586
"in_progress" => Ok(Self::InProgress),
15871587
"completed" => Ok(Self::Completed),
15881588
other => Err(format!("unknown benchmark_request_status '{other}'").into()),

0 commit comments

Comments
 (0)