mirror of
https://github.com/martinvonz/jj.git
synced 2025-05-11 02:12:51 +00:00
75 lines
1.8 KiB
Rust
75 lines
1.8 KiB
Rust
use std::process::Command;
|
|
use std::process::Stdio;
|
|
|
|
use testutils::ensure_running_outside_ci;
|
|
|
|
fn taplo_check_config(file: &str) {
|
|
if Command::new("taplo")
|
|
.arg("--version")
|
|
.stdout(Stdio::null())
|
|
.status()
|
|
.is_err()
|
|
{
|
|
ensure_running_outside_ci("`taplo` must be in the PATH");
|
|
eprintln!("Skipping test because taplo is not installed on the system");
|
|
return;
|
|
}
|
|
|
|
// Taplo requires an absolute URL to the schema :/
|
|
let root = std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
|
let taplo_res = Command::new("taplo")
|
|
.args([
|
|
"check",
|
|
"--schema",
|
|
&format!("file://{}/src/config-schema.json", root.display()),
|
|
file,
|
|
])
|
|
.stdout(Stdio::piped())
|
|
.stderr(Stdio::piped())
|
|
.spawn()
|
|
.unwrap()
|
|
.wait_with_output()
|
|
.unwrap();
|
|
|
|
if !taplo_res.status.success() {
|
|
eprintln!("Failed to validate {file}:");
|
|
eprintln!("{}", String::from_utf8_lossy(&taplo_res.stderr));
|
|
panic!("Validation failed");
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn test_taplo_check_colors_config() {
|
|
taplo_check_config("src/config/colors.toml");
|
|
}
|
|
|
|
#[test]
|
|
fn test_taplo_check_merge_tools_config() {
|
|
taplo_check_config("src/config/merge_tools.toml");
|
|
}
|
|
|
|
#[test]
|
|
fn test_taplo_check_misc_config() {
|
|
taplo_check_config("src/config/misc.toml");
|
|
}
|
|
|
|
#[test]
|
|
fn test_taplo_check_revsets_config() {
|
|
taplo_check_config("src/config/revsets.toml");
|
|
}
|
|
|
|
#[test]
|
|
fn test_taplo_check_templates_config() {
|
|
taplo_check_config("src/config/templates.toml");
|
|
}
|
|
|
|
#[test]
|
|
fn test_taplo_check_unix_config() {
|
|
taplo_check_config("src/config/unix.toml");
|
|
}
|
|
|
|
#[test]
|
|
fn test_taplo_check_windows_config() {
|
|
taplo_check_config("src/config/windows.toml");
|
|
}
|