Skip to content

Commit e837c60

Browse files
authored
Unrolled build for rust-lang#118690
Rollup merge of rust-lang#118690 - Zalathar:test-macros, r=cjgillot coverage: Avoid unnecessary macros in unit tests These macros don't provide enough value to justify their complexity, when they can just as easily be functions instead. --- `@rustbot` label +A-code-coverage
2 parents 6c470a5 + 47e6e5e commit e837c60

File tree

5 files changed

+33
-80
lines changed

5 files changed

+33
-80
lines changed

Cargo.lock

-5
Original file line numberDiff line numberDiff line change
@@ -795,10 +795,6 @@ dependencies = [
795795
"rustc-demangle",
796796
]
797797

798-
[[package]]
799-
name = "coverage_test_macros"
800-
version = "0.0.0"
801-
802798
[[package]]
803799
name = "cpufeatures"
804800
version = "0.2.8"
@@ -4266,7 +4262,6 @@ dependencies = [
42664262
name = "rustc_mir_transform"
42674263
version = "0.0.0"
42684264
dependencies = [
4269-
"coverage_test_macros",
42704265
"either",
42714266
"itertools",
42724267
"rustc_arena",

compiler/rustc_mir_transform/Cargo.toml

-5
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,3 @@ rustc_trait_selection = { path = "../rustc_trait_selection" }
2727
smallvec = { version = "1.8.1", features = ["union", "may_dangle"] }
2828
tracing = "0.1"
2929
# tidy-alphabetical-end
30-
31-
[dev-dependencies]
32-
# tidy-alphabetical-start
33-
coverage_test_macros = { path = "src/coverage/test_macros" }
34-
# tidy-alphabetical-end

compiler/rustc_mir_transform/src/coverage/test_macros/Cargo.toml

-7
This file was deleted.

compiler/rustc_mir_transform/src/coverage/test_macros/src/lib.rs

-6
This file was deleted.

compiler/rustc_mir_transform/src/coverage/tests.rs

+33-57
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@
2727
use super::counters;
2828
use super::graph::{self, BasicCoverageBlock};
2929

30-
use coverage_test_macros::let_bcb;
31-
3230
use itertools::Itertools;
3331
use rustc_data_structures::graph::WithNumNodes;
3432
use rustc_data_structures::graph::WithSuccessors;
@@ -37,6 +35,10 @@ use rustc_middle::mir::*;
3735
use rustc_middle::ty;
3836
use rustc_span::{self, BytePos, Pos, Span, DUMMY_SP};
3937

38+
fn bcb(index: u32) -> BasicCoverageBlock {
39+
BasicCoverageBlock::from_u32(index)
40+
}
41+
4042
// All `TEMP_BLOCK` targets should be replaced before calling `to_body() -> mir::Body`.
4143
const TEMP_BLOCK: BasicBlock = BasicBlock::MAX;
4244

@@ -300,12 +302,15 @@ fn goto_switchint<'a>() -> Body<'a> {
300302
mir_body
301303
}
302304

303-
macro_rules! assert_successors {
304-
($basic_coverage_blocks:ident, $i:ident, [$($successor:ident),*]) => {
305-
let mut successors = $basic_coverage_blocks.successors[$i].clone();
306-
successors.sort_unstable();
307-
assert_eq!(successors, vec![$($successor),*]);
308-
}
305+
#[track_caller]
306+
fn assert_successors(
307+
basic_coverage_blocks: &graph::CoverageGraph,
308+
bcb: BasicCoverageBlock,
309+
expected_successors: &[BasicCoverageBlock],
310+
) {
311+
let mut successors = basic_coverage_blocks.successors[bcb].clone();
312+
successors.sort_unstable();
313+
assert_eq!(successors, expected_successors);
309314
}
310315

311316
#[test]
@@ -334,13 +339,9 @@ fn test_covgraph_goto_switchint() {
334339
basic_coverage_blocks.iter_enumerated().collect::<Vec<_>>()
335340
);
336341

337-
let_bcb!(0);
338-
let_bcb!(1);
339-
let_bcb!(2);
340-
341-
assert_successors!(basic_coverage_blocks, bcb0, [bcb1, bcb2]);
342-
assert_successors!(basic_coverage_blocks, bcb1, []);
343-
assert_successors!(basic_coverage_blocks, bcb2, []);
342+
assert_successors(&basic_coverage_blocks, bcb(0), &[bcb(1), bcb(2)]);
343+
assert_successors(&basic_coverage_blocks, bcb(1), &[]);
344+
assert_successors(&basic_coverage_blocks, bcb(2), &[]);
344345
}
345346

346347
/// Create a mock `Body` with a loop.
@@ -418,15 +419,10 @@ fn test_covgraph_switchint_then_loop_else_return() {
418419
basic_coverage_blocks.iter_enumerated().collect::<Vec<_>>()
419420
);
420421

421-
let_bcb!(0);
422-
let_bcb!(1);
423-
let_bcb!(2);
424-
let_bcb!(3);
425-
426-
assert_successors!(basic_coverage_blocks, bcb0, [bcb1]);
427-
assert_successors!(basic_coverage_blocks, bcb1, [bcb2, bcb3]);
428-
assert_successors!(basic_coverage_blocks, bcb2, []);
429-
assert_successors!(basic_coverage_blocks, bcb3, [bcb1]);
422+
assert_successors(&basic_coverage_blocks, bcb(0), &[bcb(1)]);
423+
assert_successors(&basic_coverage_blocks, bcb(1), &[bcb(2), bcb(3)]);
424+
assert_successors(&basic_coverage_blocks, bcb(2), &[]);
425+
assert_successors(&basic_coverage_blocks, bcb(3), &[bcb(1)]);
430426
}
431427

432428
/// Create a mock `Body` with nested loops.
@@ -546,21 +542,13 @@ fn test_covgraph_switchint_loop_then_inner_loop_else_break() {
546542
basic_coverage_blocks.iter_enumerated().collect::<Vec<_>>()
547543
);
548544

549-
let_bcb!(0);
550-
let_bcb!(1);
551-
let_bcb!(2);
552-
let_bcb!(3);
553-
let_bcb!(4);
554-
let_bcb!(5);
555-
let_bcb!(6);
556-
557-
assert_successors!(basic_coverage_blocks, bcb0, [bcb1]);
558-
assert_successors!(basic_coverage_blocks, bcb1, [bcb2, bcb3]);
559-
assert_successors!(basic_coverage_blocks, bcb2, []);
560-
assert_successors!(basic_coverage_blocks, bcb3, [bcb4]);
561-
assert_successors!(basic_coverage_blocks, bcb4, [bcb5, bcb6]);
562-
assert_successors!(basic_coverage_blocks, bcb5, [bcb1]);
563-
assert_successors!(basic_coverage_blocks, bcb6, [bcb4]);
545+
assert_successors(&basic_coverage_blocks, bcb(0), &[bcb(1)]);
546+
assert_successors(&basic_coverage_blocks, bcb(1), &[bcb(2), bcb(3)]);
547+
assert_successors(&basic_coverage_blocks, bcb(2), &[]);
548+
assert_successors(&basic_coverage_blocks, bcb(3), &[bcb(4)]);
549+
assert_successors(&basic_coverage_blocks, bcb(4), &[bcb(5), bcb(6)]);
550+
assert_successors(&basic_coverage_blocks, bcb(5), &[bcb(1)]);
551+
assert_successors(&basic_coverage_blocks, bcb(6), &[bcb(4)]);
564552
}
565553

566554
#[test]
@@ -595,10 +583,7 @@ fn test_find_loop_backedges_one() {
595583
backedges
596584
);
597585

598-
let_bcb!(1);
599-
let_bcb!(3);
600-
601-
assert_eq!(backedges[bcb1], vec![bcb3]);
586+
assert_eq!(backedges[bcb(1)], &[bcb(3)]);
602587
}
603588

604589
#[test]
@@ -613,13 +598,8 @@ fn test_find_loop_backedges_two() {
613598
backedges
614599
);
615600

616-
let_bcb!(1);
617-
let_bcb!(4);
618-
let_bcb!(5);
619-
let_bcb!(6);
620-
621-
assert_eq!(backedges[bcb1], vec![bcb5]);
622-
assert_eq!(backedges[bcb4], vec![bcb6]);
601+
assert_eq!(backedges[bcb(1)], &[bcb(5)]);
602+
assert_eq!(backedges[bcb(4)], &[bcb(6)]);
623603
}
624604

625605
#[test]
@@ -632,13 +612,11 @@ fn test_traverse_coverage_with_loops() {
632612
traversed_in_order.push(bcb);
633613
}
634614

635-
let_bcb!(6);
636-
637615
// bcb0 is visited first. Then bcb1 starts the first loop, and all remaining nodes, *except*
638616
// bcb6 are inside the first loop.
639617
assert_eq!(
640618
*traversed_in_order.last().expect("should have elements"),
641-
bcb6,
619+
bcb(6),
642620
"bcb6 should not be visited until all nodes inside the first loop have been visited"
643621
);
644622
}
@@ -656,20 +634,18 @@ fn test_make_bcb_counters() {
656634
coverage_counters.make_bcb_counters(&basic_coverage_blocks, bcb_has_coverage_spans);
657635
assert_eq!(coverage_counters.num_expressions(), 0);
658636

659-
let_bcb!(1);
660637
assert_eq!(
661638
0, // bcb1 has a `Counter` with id = 0
662-
match coverage_counters.bcb_counter(bcb1).expect("should have a counter") {
639+
match coverage_counters.bcb_counter(bcb(1)).expect("should have a counter") {
663640
counters::BcbCounter::Counter { id, .. } => id,
664641
_ => panic!("expected a Counter"),
665642
}
666643
.as_u32()
667644
);
668645

669-
let_bcb!(2);
670646
assert_eq!(
671647
1, // bcb2 has a `Counter` with id = 1
672-
match coverage_counters.bcb_counter(bcb2).expect("should have a counter") {
648+
match coverage_counters.bcb_counter(bcb(2)).expect("should have a counter") {
673649
counters::BcbCounter::Counter { id, .. } => id,
674650
_ => panic!("expected a Counter"),
675651
}

0 commit comments

Comments
 (0)