//! RFC-0027 in-tree snapshot tests — cpp backend.
//!
//! Mirrors python_snapshots.rs against the cpp target.
//! Re-bless workflow + corpus discipline documented in
//! CONTRIBUTING.md § "Snapshot tests (RFC-0027)".

mod common;

use common::compile_fixture;

#[test]
fn linear_fsm() {
    insta::assert_snapshot!(compile_fixture("01_linear_fsm", "cpp"));
}

#[test]
fn hsm() {
    insta::assert_snapshot!(compile_fixture("02_hsm", "cpp"));
}

#[test]
fn persist() {
    insta::assert_snapshot!(compile_fixture("03_persist", "cpp"));
}

#[test]
fn state_args() {
    insta::assert_snapshot!(compile_fixture("04_state_args", "cpp"));
}

#[test]
fn pushpop() {
    insta::assert_snapshot!(compile_fixture("05_pushpop", "cpp"));
}

#[test]
fn selfcall() {
    insta::assert_snapshot!(compile_fixture("06_selfcall", "cpp"));
}

#[test]
fn forward() {
    insta::assert_snapshot!(compile_fixture("07_forward", "cpp"));
}

#[test]
fn lifecycle() {
    insta::assert_snapshot!(compile_fixture("08_lifecycle", "cpp"));
}

#[test]
fn return_explicit() {
    insta::assert_snapshot!(compile_fixture("09_return_explicit", "cpp"));
}

#[test]
fn actions() {
    insta::assert_snapshot!(compile_fixture("10_actions", "cpp"));
}

#[test]
fn consts() {
    insta::assert_snapshot!(compile_fixture("11_consts", "cpp"));
}

#[test]
fn no_persist() {
    insta::assert_snapshot!(compile_fixture("12_no_persist", "cpp"));
}
