37 lines
1001 B
Rust
37 lines
1001 B
Rust
use std::{path::PathBuf, process::Command};
|
|
|
|
fn repo_root() -> PathBuf {
|
|
PathBuf::from(env!("CARGO_MANIFEST_DIR"))
|
|
.parent()
|
|
.and_then(|p| p.parent())
|
|
.expect("api crate should live under repo root")
|
|
.to_path_buf()
|
|
}
|
|
|
|
fn is_enabled() -> bool {
|
|
std::env::var("CONTROL_TEST_AWSCLI")
|
|
.ok()
|
|
.is_some_and(|v| v.trim() == "1")
|
|
}
|
|
|
|
#[test]
|
|
fn s3_docs_permissions_can_be_verified_with_aws_cli() {
|
|
if !is_enabled() {
|
|
eprintln!("skipping: set CONTROL_TEST_AWSCLI=1 to enable aws-cli S3 permission checks");
|
|
return;
|
|
}
|
|
|
|
let script = repo_root().join("docker/scripts/s3_verify_docs.sh");
|
|
let out = Command::new("sh")
|
|
.arg(script)
|
|
.output()
|
|
.expect("failed to run s3_verify_docs.sh (requires aws cli and S3_* env)");
|
|
|
|
assert!(
|
|
out.status.success(),
|
|
"s3 verify script failed: {}\n{}",
|
|
String::from_utf8_lossy(&out.stdout),
|
|
String::from_utf8_lossy(&out.stderr)
|
|
);
|
|
}
|