--- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -35,6 +35,8 @@ test_file: String, args: Vec, }, + /// Update C++/Golang golden testsuites from git + UpdateTestsuites, } fn main() -> Result<()> { @@ -106,5 +108,26 @@ Ok(()) } + Opts::UpdateTestsuites => { + let _pushd = sh.push_dir("tests"); + let git_dir = sh.create_temp_dir()?; + let git_dir_path = git_dir.path(); + cmd!( + sh, + "git clone https://github.com/google/jsonnet.git --depth=1 {git_dir_path}/jsonnet" + ) + .run()?; + cmd!( + sh, + "git clone https://github.com/google/go-jsonnet.git --depth=1 {git_dir_path}/go-jsonnet" + ) + .run()?; + sh.remove_path("cpp_test_suite")?; + sh.remove_path("go_testdata")?; + cmd!(sh, "mv {git_dir_path}/jsonnet/test_suite cpp_test_suite").run()?; + cmd!(sh, "mv {git_dir_path}/go-jsonnet/testdata go_testdata").run()?; + + Ok(()) + } } }