@@ -38,6 +38,8 @@ pub struct VerificationResult {
38
38
pub exit_status : i32 ,
39
39
/// The runtime duration of this CBMC invocation.
40
40
pub runtime : Duration ,
41
+ /// Whether concrete playback generated a test
42
+ pub generated_concrete_test : bool ,
41
43
}
42
44
43
45
impl KaniSession {
@@ -51,7 +53,8 @@ impl KaniSession {
51
53
52
54
let start_time = Instant :: now ( ) ;
53
55
54
- let verification_results = if self . args . output_format == crate :: args:: OutputFormat :: Old {
56
+ let mut verification_results = if self . args . output_format == crate :: args:: OutputFormat :: Old
57
+ {
55
58
if self . run_terminal ( cmd) . is_err ( ) {
56
59
VerificationResult :: mock_failure ( )
57
60
} else {
@@ -80,7 +83,7 @@ impl KaniSession {
80
83
}
81
84
} ;
82
85
83
- self . gen_and_add_concrete_playback ( harness, & verification_results) ?;
86
+ self . gen_and_add_concrete_playback ( harness, & mut verification_results) ?;
84
87
Ok ( verification_results)
85
88
}
86
89
@@ -204,6 +207,7 @@ impl VerificationResult {
204
207
results : Some ( results) ,
205
208
exit_status : output. process_status ,
206
209
runtime,
210
+ generated_concrete_test : false ,
207
211
}
208
212
} else {
209
213
// We never got results from CBMC - something went wrong (e.g. crash) so it's failure
@@ -213,6 +217,7 @@ impl VerificationResult {
213
217
results : None ,
214
218
exit_status : output. process_status ,
215
219
runtime,
220
+ generated_concrete_test : false ,
216
221
}
217
222
}
218
223
}
@@ -224,6 +229,7 @@ impl VerificationResult {
224
229
results : None ,
225
230
exit_status : 42 , // on success, exit code is ignored, so put something weird here
226
231
runtime : Duration :: from_secs ( 0 ) ,
232
+ generated_concrete_test : false ,
227
233
}
228
234
}
229
235
@@ -237,6 +243,7 @@ impl VerificationResult {
237
243
// so again use something weird:
238
244
exit_status : 42 ,
239
245
runtime : Duration :: from_secs ( 0 ) ,
246
+ generated_concrete_test : false ,
240
247
}
241
248
}
242
249
0 commit comments