aprender_contracts_cli/commands/
probar.rs1use std::path::Path;
2
3use provable_contracts::binding::parse_binding;
4use provable_contracts::probar_gen::{generate_probar_tests, generate_wired_probar_tests};
5use provable_contracts::schema::parse_contract;
6
7pub fn run(path: &Path, binding_path: Option<&Path>) -> Result<(), Box<dyn std::error::Error>> {
8 let contract = parse_contract(path)?;
9
10 if let Some(bp) = binding_path {
11 let binding = parse_binding(bp)?;
12 let contract_file = path
13 .file_name()
14 .and_then(|n| n.to_str())
15 .unwrap_or("unknown");
16 print!(
17 "{}",
18 generate_wired_probar_tests(&contract, contract_file, &binding)
19 );
20 } else {
21 print!("{}", generate_probar_tests(&contract));
22 }
23
24 Ok(())
25}