#[cfg(windows)]
use a3s_libkrun_sys::*;
#[cfg(windows)]
fn main() {
println!("=== a3s-libkrun-sys Windows Smoke Test ===\n");
unsafe {
println!("Test 1: krun_set_log_level");
let ret = krun_set_log_level(KRUN_LOG_LEVEL_INFO);
assert_eq!(ret, 0, "krun_set_log_level failed: {}", ret);
println!(" ✓ krun_set_log_level(INFO) = {}\n", ret);
println!("Test 2: krun_create_ctx");
let ctx = krun_create_ctx();
assert!(ctx >= 0, "krun_create_ctx failed: {}", ctx);
let ctx_id = ctx as u32;
println!(" ✓ krun_create_ctx() = {}\n", ctx_id);
println!("Test 3: krun_set_vm_config");
let ret = krun_set_vm_config(ctx_id, 2, 512);
assert_eq!(ret, 0, "krun_set_vm_config failed: {}", ret);
println!(" ✓ krun_set_vm_config(2 vCPUs, 512 MiB) = {}\n", ret);
println!("Test 4: krun_disable_implicit_console");
let ret = krun_disable_implicit_console(ctx_id);
assert_eq!(ret, 0, "krun_disable_implicit_console failed: {}", ret);
println!(" ✓ krun_disable_implicit_console() = {}\n", ret);
println!("Test 5: krun_disable_implicit_vsock");
let ret = krun_disable_implicit_vsock(ctx_id);
assert_eq!(ret, 0, "krun_disable_implicit_vsock failed: {}", ret);
println!(" ✓ krun_disable_implicit_vsock() = {}\n", ret);
println!("Test 6: krun_free_ctx");
let ret = krun_free_ctx(ctx_id);
assert_eq!(ret, 0, "krun_free_ctx failed: {}", ret);
println!(" ✓ krun_free_ctx() = {}\n", ret);
}
println!("=== All tests passed! ===");
}
#[cfg(not(windows))]
fn main() {}