(&self, seed_id: usize)
| 861 | } |
| 862 | |
| 863 | pub fn compile_seed(&self, seed_id: usize) -> Result<()> { |
| 864 | let work_seed = self.deopt.get_work_seed_by_id(seed_id)?; |
| 865 | if !work_seed.exists() { |
| 866 | let seed_path = self.deopt.get_succ_seed_path_by_id(seed_id)?; |
| 867 | std::fs::copy(seed_path, &work_seed)?; |
| 868 | } |
| 869 | |
| 870 | let binary_out = work_seed.with_extension("out"); |
| 871 | if !binary_out.exists() { |
| 872 | let mut transformer = Transformer::new(&work_seed, &self.deopt)?; |
| 873 | transformer.add_fd_sanitizer()?; |
| 874 | transformer.preprocess()?; |
| 875 | self.compile( |
| 876 | vec![&work_seed], |
| 877 | &binary_out, |
| 878 | crate::execution::Compile::FUZZER, |
| 879 | )?; |
| 880 | } |
| 881 | let fuzzer_binary = work_seed.with_extension("cov.out"); |
| 882 | if !fuzzer_binary.exists() { |
| 883 | self.compile( |
| 884 | vec![&work_seed], |
| 885 | &fuzzer_binary, |
| 886 | crate::execution::Compile::COVERAGE, |
| 887 | )?; |
| 888 | } |
| 889 | self.deopt |
| 890 | .copy_library_init_file(&get_file_dirname(&work_seed))?; |
| 891 | Ok(()) |
| 892 | } |
| 893 | |
| 894 | pub fn eval_seed_coverage(&self, seed_id: usize) -> Result<()> { |
| 895 | let work_seed = self.deopt.get_work_seed_by_id(seed_id)?; |
no test coverage detected