()
| 311 | |
| 312 | #[test] |
| 313 | fn test_branch_coverage() -> Result<()> { |
| 314 | crate::config::Config::init_test("cJSON"); |
| 315 | let deopt = Deopt::new("cJSON".to_string())?; |
| 316 | let executor = Executor::new(&deopt)?; |
| 317 | |
| 318 | let profdata: PathBuf = [ |
| 319 | Deopt::get_crate_dir()?, |
| 320 | "testsuites", |
| 321 | "corpora", |
| 322 | "defualt.profdata", |
| 323 | ] |
| 324 | .iter() |
| 325 | .collect(); |
| 326 | let coverage = Executor::obtain_cov_from_profdata(&executor, &profdata)?; |
| 327 | let clang_branch = coverage.get_total_summary().count_covered_branches(); |
| 328 | let clang_total_branch: usize = coverage.get_total_summary().count_total_branches(); |
| 329 | log::info!("clang coverage: covered: {clang_branch}, total: {clang_total_branch}"); |
| 330 | |
| 331 | let mut observer = Observer::new(&deopt); |
| 332 | observer.merge_coverage(&coverage); |
| 333 | log::info!("self coverage: {}", observer.dump_global_states()); |
| 334 | |
| 335 | let covered_clang_branch = coverage.get_covered_branch(); |
| 336 | let covered_observer_branch = observer.get_covered_branch(); |
| 337 | assert_eq!(covered_clang_branch.len(), covered_observer_branch.len()); |
| 338 | Ok(()) |
| 339 | } |
| 340 | } |
nothing calls this directly
no test coverage detected