actr-framework 0.3.1

Actor-RTC framework core (stub for code generation testing)
Documentation
use std::fs;
use std::path::PathBuf;

fn manifest_dir() -> PathBuf {
    PathBuf::from(env!("CARGO_MANIFEST_DIR"))
}

#[test]
fn wasm_workload_wit_declares_data_stream_surface() {
    let wit = fs::read_to_string(manifest_dir().join("wit/actr-workload.wit"))
        .expect("read workload WIT");

    for expected in [
        "record data-stream",
        "variant payload-type",
        "register-stream: func(",
        "unregister-stream: func(",
        "send-data-stream: func(",
        "on-data-stream: func(",
    ] {
        assert!(
            wit.contains(expected),
            "actr-workload.wit should declare `{expected}` for wasm DataStream support"
        );
    }
}

#[test]
fn dynclib_abi_declares_data_stream_surface() {
    let abi = fs::read_to_string(manifest_dir().join("src/guest/dynclib_abi.rs"))
        .expect("read dynclib ABI");

    for expected in [
        "HOST_REGISTER_STREAM",
        "HOST_UNREGISTER_STREAM",
        "HOST_SEND_DATA_STREAM",
        "GUEST_DATA_STREAM",
        "HostRegisterStreamV1",
        "HostUnregisterStreamV1",
        "HostSendDataStreamV1",
        "GuestDataStreamV1",
    ] {
        assert!(
            abi.contains(expected),
            "dynclib_abi.rs should declare `{expected}` for dynclib DataStream support"
        );
    }
}