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 prints characters for interpreted values in ARM64 Linux #2718

Closed
adpaco-aws opened this issue Aug 29, 2023 · 0 comments · Fixed by #2757
Closed

Concrete playback prints characters for interpreted values in ARM64 Linux #2718

adpaco-aws opened this issue Aug 29, 2023 · 0 comments · Fixed by #2757
Labels
[C] Bug This is a bug. Something isn't working.

Comments

@adpaco-aws
Copy link
Contributor

I tried this code:

Applies to all the tests listed in this comment. For example, tests/ui/concrete-playback/u8/main.rs:

#[kani::proof]
pub fn harness() {
    let u8_1: u8 = kani::any();
    let u8_2: u8 = kani::any();
    let u8_3: u8 = kani::any();
    assert!(!(u8_1 == u8::MIN && u8_2 == 101 && u8_3 == u8::MAX));
}

using the following command line invocation: kani --enable-unstable --concrete-playback=print
with Kani version: 0.34

I expected to see this happen: Concrete playback generates the test

#[test]
fn kani_concrete_playback_harness_6199617291819462955() {
    let concrete_vals: Vec<Vec<u8>> = vec![
        // 0
        vec![0],
        // 101
        vec![101],
        // 255
        vec![255]
    ];
    kani::concrete_playback_run(concrete_vals, harness);
}

Instead, this happened: In ARM64 Linux, concrete playback generates the test

#[test]
fn kani_concrete_playback_harness_6199617291819462955() {
    let concrete_vals: Vec<Vec<u8>> = vec![
        // 0
        vec![0],
        // 'e'
        vec![101],
        // 255
        vec![255],
    ];
    kani::concrete_playback_run(concrete_vals, harness);
}

Note that the interpreted value for the byte with value 101 is 'e'. @tautschnig notes in this comment that this comes from CBMC.

@adpaco-aws adpaco-aws added the [C] Bug This is a bug. Something isn't working. label Aug 29, 2023
@adpaco-aws adpaco-aws changed the title Concrete playback prints characters for interpreted values in ARM64 Concrete playback prints characters for interpreted values in ARM64 Linux Aug 29, 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
None yet
Development

Successfully merging a pull request may close this issue.

1 participant