|
2 | 2 | // SPDX-License-Identifier: Apache-2.0 OR MIT
|
3 | 3 |
|
4 | 4 | use anyhow::{bail, Result};
|
5 |
| -use std::path::{Path, PathBuf}; |
| 5 | +use std::path::Path; |
6 | 6 | use tracing::{debug, trace};
|
7 | 7 |
|
8 | 8 | use kani_metadata::{
|
9 |
| - HarnessAttributes, HarnessMetadata, InternedString, KaniMetadata, TraitDefinedMethod, |
10 |
| - VtableCtxResults, |
| 9 | + HarnessMetadata, InternedString, KaniMetadata, TraitDefinedMethod, VtableCtxResults, |
11 | 10 | };
|
12 | 11 | use std::collections::{BTreeSet, HashMap};
|
13 | 12 | use std::fs::File;
|
@@ -115,12 +114,7 @@ impl KaniSession {
|
115 | 114 | &self,
|
116 | 115 | all_harnesses: &[&'a HarnessMetadata],
|
117 | 116 | ) -> Result<Vec<&'a HarnessMetadata>> {
|
118 |
| - let harnesses = if self.args.harnesses.is_empty() { |
119 |
| - BTreeSet::from_iter(self.args.function.iter()) |
120 |
| - } else { |
121 |
| - BTreeSet::from_iter(self.args.harnesses.iter()) |
122 |
| - }; |
123 |
| - |
| 117 | + let harnesses = BTreeSet::from_iter(self.args.harnesses.iter()); |
124 | 118 | let total_harnesses = harnesses.len();
|
125 | 119 | let all_targets = &harnesses;
|
126 | 120 |
|
@@ -169,25 +163,6 @@ pub fn sort_harnesses_by_loc<'a>(harnesses: &[&'a HarnessMetadata]) -> Vec<&'a H
|
169 | 163 | harnesses_clone
|
170 | 164 | }
|
171 | 165 |
|
172 |
| -pub fn mock_proof_harness( |
173 |
| - name: &str, |
174 |
| - unwind_value: Option<u32>, |
175 |
| - krate: Option<&str>, |
176 |
| - model_file: Option<PathBuf>, |
177 |
| -) -> HarnessMetadata { |
178 |
| - HarnessMetadata { |
179 |
| - pretty_name: name.into(), |
180 |
| - mangled_name: name.into(), |
181 |
| - crate_name: krate.unwrap_or("<unknown>").into(), |
182 |
| - original_file: "<unknown>".into(), |
183 |
| - original_start_line: 0, |
184 |
| - original_end_line: 0, |
185 |
| - attributes: HarnessAttributes { unwind_value, proof: true, ..Default::default() }, |
186 |
| - goto_file: model_file, |
187 |
| - contract: Default::default(), |
188 |
| - } |
189 |
| -} |
190 |
| - |
191 | 166 | /// Search for a proof harness with a particular name.
|
192 | 167 | /// At the present time, we use `no_mangle` so collisions shouldn't happen,
|
193 | 168 | /// but this function is written to be robust against that changing in the future.
|
@@ -223,8 +198,29 @@ fn find_proof_harnesses<'a>(
|
223 | 198 | }
|
224 | 199 |
|
225 | 200 | #[cfg(test)]
|
226 |
| -mod tests { |
| 201 | +pub mod tests { |
227 | 202 | use super::*;
|
| 203 | + use kani_metadata::HarnessAttributes; |
| 204 | + use std::path::PathBuf; |
| 205 | + |
| 206 | + pub fn mock_proof_harness( |
| 207 | + name: &str, |
| 208 | + unwind_value: Option<u32>, |
| 209 | + krate: Option<&str>, |
| 210 | + model_file: Option<PathBuf>, |
| 211 | + ) -> HarnessMetadata { |
| 212 | + HarnessMetadata { |
| 213 | + pretty_name: name.into(), |
| 214 | + mangled_name: name.into(), |
| 215 | + crate_name: krate.unwrap_or("<unknown>").into(), |
| 216 | + original_file: "<unknown>".into(), |
| 217 | + original_start_line: 0, |
| 218 | + original_end_line: 0, |
| 219 | + attributes: HarnessAttributes { unwind_value, proof: true, ..Default::default() }, |
| 220 | + goto_file: model_file, |
| 221 | + contract: Default::default(), |
| 222 | + } |
| 223 | + } |
228 | 224 |
|
229 | 225 | #[test]
|
230 | 226 | fn check_find_proof_harness_without_exact() {
|
|
0 commit comments