x/
external_crates_tests.rs1use anyhow::anyhow;
5use std::{
6 path::PathBuf,
7 process::{Command, Stdio},
8};
9
10pub fn run() -> crate::Result<()> {
11 let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
13 path.push("../../external-crates/");
14 std::env::set_current_dir(&path).expect("Unable to change into `external-crates` directory");
15
16 let mut cmd = Command::new("sh")
18 .arg("tests.sh")
19 .stdout(Stdio::inherit())
20 .stderr(Stdio::inherit())
21 .spawn()
22 .unwrap();
23
24 match cmd.wait() {
25 Ok(status) => {
26 if status.success() {
27 Ok(())
28 } else {
29 Err(anyhow!("failed to wait on process"))
30 }
31 }
32 Err(err) => Err(anyhow!("failed to wait on process: {}", err)),
33 }
34}