use std::process::Command;
use tempfile::TempDir;
use std::fs;
#[test]
#[cfg(target_env = "msvc")]
fn test_cargo_msvc_integration_without_thunk() {
let temp_dir = TempDir::new().unwrap();
let project_path = temp_dir.path().join("test_project");
let output = Command::new("cargo")
.args(&["new", "--bin", "test_project"])
.current_dir(temp_dir.path())
.output()
.expect("Failed to create test project");
assert!(output.status.success(), "Failed to create test project: {}", String::from_utf8_lossy(&output.stderr));
let cargo_msvc_path = std::env::var("CARGO_BIN_EXE_cargo-msvc")
.expect("CARGO_BIN_EXE_cargo-msvc not set")
.to_string();
let output = Command::new(&cargo_msvc_path)
.current_dir(&project_path)
.output()
.expect("Failed to run cargo-msvc");
println!("stdout: {}", String::from_utf8_lossy(&output.stdout));
println!("stderr: {}", String::from_utf8_lossy(&output.stderr));
assert!(output.status.success(), "cargo-msvc failed");
let cargo_toml_content = fs::read_to_string(project_path.join("Cargo.toml")).unwrap();
assert!(cargo_toml_content.contains("vc-ltl"), "vc-ltl not found in Cargo.toml");
let output2 = Command::new(&cargo_msvc_path)
.current_dir(&project_path)
.output()
.expect("Failed to run cargo-msvc");
assert!(output2.status.success(), "cargo-msvc failed");
let cargo_toml_content2 = fs::read_to_string(project_path.join("Cargo.toml")).unwrap();
assert!(!cargo_toml_content2.contains("vc-ltl"), "vc-ltl should have been removed from Cargo.toml");
}