//! Assert the native build script's namespace boundaries. fn main() { assert!(!std::path::Path::new("/home/surma/.ssh").exists()); assert!( !std::path::Path::new(&std::env::var("HOME").unwrap()) .join(".ssh") .exists() ); assert!(std::fs::write("/outside-probe", b"no").is_err()); assert!( std::net::TcpStream::connect_timeout( &"1.1.1.1:443".parse().unwrap(), std::time::Duration::from_millis(100) ) .is_err() ); let out = std::path::PathBuf::from(std::env::var_os("OUT_DIR").unwrap()); let object = out.join("add.o"); assert!( std::process::Command::new(std::env::var("CC_wasm32_wasip2").unwrap()) .args(["-c", "src/add.c", "-o"]) .arg(&object) .status() .unwrap() .success() ); assert!( std::process::Command::new(std::env::var("AR_wasm32_wasip2").unwrap()) .arg("crs") .arg(out.join("libadd.a")) .arg(&object) .status() .unwrap() .success() ); println!("cargo:rustc-link-search=native={}", out.display()); println!("cargo:rustc-link-lib=static=add"); println!("cargo:warning=namespace assertions passed"); }