|
24 | 24 | //! globals is comparatively simpler. The easiest way is to wrap the test in a closure argument |
25 | 25 | //! to: `rustc_span::create_default_session_globals_then(|| { test_here(); })`. |
26 | 26 |
|
27 | | -use super::counters; |
28 | 27 | use super::graph::{self, BasicCoverageBlock}; |
29 | 28 |
|
30 | 29 | use itertools::Itertools; |
@@ -551,108 +550,3 @@ fn test_covgraph_switchint_loop_then_inner_loop_else_break() { |
551 | 550 | assert_successors(&basic_coverage_blocks, bcb(5), &[bcb(1)]); |
552 | 551 | assert_successors(&basic_coverage_blocks, bcb(6), &[bcb(4)]); |
553 | 552 | } |
554 | | - |
555 | | -#[test] |
556 | | -fn test_find_loop_backedges_none() { |
557 | | - let mir_body = goto_switchint(); |
558 | | - let basic_coverage_blocks = graph::CoverageGraph::from_mir(&mir_body); |
559 | | - if false { |
560 | | - eprintln!( |
561 | | - "basic_coverage_blocks = {:?}", |
562 | | - basic_coverage_blocks.iter_enumerated().collect::<Vec<_>>() |
563 | | - ); |
564 | | - eprintln!("successors = {:?}", basic_coverage_blocks.successors); |
565 | | - } |
566 | | - let backedges = graph::find_loop_backedges(&basic_coverage_blocks); |
567 | | - assert_eq!( |
568 | | - backedges.iter_enumerated().map(|(_bcb, backedges)| backedges.len()).sum::<usize>(), |
569 | | - 0, |
570 | | - "backedges: {:?}", |
571 | | - backedges |
572 | | - ); |
573 | | -} |
574 | | - |
575 | | -#[test] |
576 | | -fn test_find_loop_backedges_one() { |
577 | | - let mir_body = switchint_then_loop_else_return(); |
578 | | - let basic_coverage_blocks = graph::CoverageGraph::from_mir(&mir_body); |
579 | | - let backedges = graph::find_loop_backedges(&basic_coverage_blocks); |
580 | | - assert_eq!( |
581 | | - backedges.iter_enumerated().map(|(_bcb, backedges)| backedges.len()).sum::<usize>(), |
582 | | - 1, |
583 | | - "backedges: {:?}", |
584 | | - backedges |
585 | | - ); |
586 | | - |
587 | | - assert_eq!(backedges[bcb(1)], &[bcb(3)]); |
588 | | -} |
589 | | - |
590 | | -#[test] |
591 | | -fn test_find_loop_backedges_two() { |
592 | | - let mir_body = switchint_loop_then_inner_loop_else_break(); |
593 | | - let basic_coverage_blocks = graph::CoverageGraph::from_mir(&mir_body); |
594 | | - let backedges = graph::find_loop_backedges(&basic_coverage_blocks); |
595 | | - assert_eq!( |
596 | | - backedges.iter_enumerated().map(|(_bcb, backedges)| backedges.len()).sum::<usize>(), |
597 | | - 2, |
598 | | - "backedges: {:?}", |
599 | | - backedges |
600 | | - ); |
601 | | - |
602 | | - assert_eq!(backedges[bcb(1)], &[bcb(5)]); |
603 | | - assert_eq!(backedges[bcb(4)], &[bcb(6)]); |
604 | | -} |
605 | | - |
606 | | -#[test] |
607 | | -fn test_traverse_coverage_with_loops() { |
608 | | - let mir_body = switchint_loop_then_inner_loop_else_break(); |
609 | | - let basic_coverage_blocks = graph::CoverageGraph::from_mir(&mir_body); |
610 | | - let mut traversed_in_order = Vec::new(); |
611 | | - let mut traversal = graph::TraverseCoverageGraphWithLoops::new(&basic_coverage_blocks); |
612 | | - while let Some(bcb) = traversal.next() { |
613 | | - traversed_in_order.push(bcb); |
614 | | - } |
615 | | - |
616 | | - // bcb0 is visited first. Then bcb1 starts the first loop, and all remaining nodes, *except* |
617 | | - // bcb6 are inside the first loop. |
618 | | - assert_eq!( |
619 | | - *traversed_in_order.last().expect("should have elements"), |
620 | | - bcb(6), |
621 | | - "bcb6 should not be visited until all nodes inside the first loop have been visited" |
622 | | - ); |
623 | | -} |
624 | | - |
625 | | -#[test] |
626 | | -fn test_make_bcb_counters() { |
627 | | - rustc_span::create_default_session_globals_then(|| { |
628 | | - let mir_body = goto_switchint(); |
629 | | - let basic_coverage_blocks = graph::CoverageGraph::from_mir(&mir_body); |
630 | | - // Historically this test would use `spans` internals to set up fake |
631 | | - // coverage spans for BCBs 1 and 2. Now we skip that step and just tell |
632 | | - // BCB counter construction that those BCBs have spans. |
633 | | - let bcb_has_coverage_spans = |bcb: BasicCoverageBlock| (1..=2).contains(&bcb.as_usize()); |
634 | | - let coverage_counters = counters::CoverageCounters::make_bcb_counters( |
635 | | - &basic_coverage_blocks, |
636 | | - bcb_has_coverage_spans, |
637 | | - ); |
638 | | - assert_eq!(coverage_counters.num_expressions(), 0); |
639 | | - |
640 | | - assert_eq!( |
641 | | - 0, // bcb1 has a `Counter` with id = 0 |
642 | | - match coverage_counters.bcb_counter(bcb(1)).expect("should have a counter") { |
643 | | - counters::BcbCounter::Counter { id, .. } => id, |
644 | | - _ => panic!("expected a Counter"), |
645 | | - } |
646 | | - .as_u32() |
647 | | - ); |
648 | | - |
649 | | - assert_eq!( |
650 | | - 1, // bcb2 has a `Counter` with id = 1 |
651 | | - match coverage_counters.bcb_counter(bcb(2)).expect("should have a counter") { |
652 | | - counters::BcbCounter::Counter { id, .. } => id, |
653 | | - _ => panic!("expected a Counter"), |
654 | | - } |
655 | | - .as_u32() |
656 | | - ); |
657 | | - }); |
658 | | -} |
0 commit comments