harn-vm 0.10.121

Async bytecode virtual machine for the Harn programming language
Documentation
use super::*;

use crate::llm_config::LocalRuntimeStop;

#[test]
fn validation_rejects_incoherent_local_runtime_lifecycle_contract() {
    let mut catalog = artifact();
    let runtime = catalog
        .providers
        .iter_mut()
        .find(|provider| provider.id == "tgi")
        .and_then(|provider| provider.local_runtime.as_mut())
        .expect("TGI is a local runtime provider");
    runtime.stop = Some(LocalRuntimeStop::External);

    let report = validate_artifact(&catalog);
    assert!(
        report
            .errors
            .iter()
            .any(|message| message.contains("incoherent")),
        "expected incoherent local-runtime lifecycle error, got {:?}",
        report.errors
    );
}

#[test]
fn validation_requires_explicit_stop_ownership_for_local_runtimes() {
    let mut catalog = artifact();
    let runtime = catalog
        .providers
        .iter_mut()
        .find(|provider| provider.id == "tgi")
        .and_then(|provider| provider.local_runtime.as_mut())
        .expect("TGI is a local runtime provider");
    runtime.stop = None;

    let report = validate_artifact(&catalog);
    assert!(
        report
            .errors
            .iter()
            .any(|message| message.contains("local_runtime.stop cannot be empty")),
        "expected missing local-runtime stop validation error, got {:?}",
        report.errors
    );
}