Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Concrete playback warnings / results printed in the middle of the verification report #2462

Closed
celinval opened this issue May 23, 2023 · 0 comments · Fixed by #2480
Closed
Assignees
Labels
[C] Bug This is a bug. Something isn't working.

Comments

@celinval
Copy link
Contributor

I tried this code:

    #[kani::proof]
    fn dummy() {
        kani::cover!(kani::any::<u32>() != 10);
    }

using the following command line invocation:

kani --concrete-playback=print --harness dummy file.rs -Z concrete-playback

with Kani version:

I expected to see this happen: The concrete test case is printed after the verification report

Instead, this happened: The test case is printed in between CBMC solver information and the verification result:

Checking harness verify::dummy...
CBMC 5.83.0 (cbmc-5.83.0)
CBMC version 5.83.0 (cbmc-5.83.0) 64-bit x86_64 linux
Reading GOTO program from file /tmp/original__RNvNtCsjSo4igdeNiX_8original6verify5dummy.for-verify-dummy.out
Generating GOTO Program
Adding CPROVER library (x86_64)
Removal of function pointers and virtual functions
Generic Property Instrumentation
Running with 16 object bits, 48 offset bits (user-specified)
Starting Bounded Model Checking
Runtime Symex: 0.00290956s
size of program expression: 255 steps
simple slicing removed 3 assignments
Generated 2 VCC(s), 2 remaining after simplification
Runtime Postprocess Equation: 3.5862e-05s
Passing problem to propositional reduction
converting SSA
Runtime Convert SSA: 0.000394059s
Running propositional reduction
Post-processing
Runtime Post-process: 3.677e-06s
Solving with MiniSAT 2.2.1 with simplifier
829 variables, 35 clauses
SAT checker: instance is SATISFIABLE
Runtime Solver: 0.000117994s
Runtime decision procedure: 0.000565902s
Concrete playback unit test for `verify::dummy`:
\```
#[test]
fn kani_concrete_playback_dummy_6616739614161460699() {
    let concrete_vals: Vec<Vec<u8>> = vec![
        // 32778
        vec![10, 128, 0, 0],
    ];
    kani::concrete_playback_run(concrete_vals, dummy);
}
\```
INFO: To automatically add the concrete playback unit test `kani_concrete_playback_dummy_6616739614161460699` to the src code, run Kani with `--concrete-playback=inplace`.

RESULTS:
Check 1: verify::dummy.cover.1
         - Status: SATISFIED
         - Description: "cover condition: kani::any::<u32>() != 10"
         - Location: original.rs:30:9 in function verify::dummy


SUMMARY:
 ** 0 of 0 failed

 ** 1 of 1 cover properties satisfied


VERIFICATION:- SUCCESSFUL
Verification Time: 0.02666074s
@celinval celinval added the [C] Bug This is a bug. Something isn't working. label May 23, 2023
@YoshikiTakashima YoshikiTakashima self-assigned this May 26, 2023
@YoshikiTakashima YoshikiTakashima moved this to In Progress in Kani 2023-05-29 May 26, 2023
@YoshikiTakashima YoshikiTakashima moved this from In Progress to Todo in Kani 2023-05-29 May 28, 2023
@YoshikiTakashima YoshikiTakashima moved this from Todo to Done in Kani 2023-05-29 May 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[C] Bug This is a bug. Something isn't working.
Projects
No open projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants