mirror of
https://github.com/logos-blockchain/logos-blockchain-circuits.git
synced 2026-07-25 02:23:15 +00:00
Add tests for abort issues.
This commit is contained in:
parent
9d1f058338
commit
173c610821
@ -60,6 +60,29 @@ mod tests {
|
||||
static INPUTS: LazyLock<PathBuf> =
|
||||
LazyLock::new(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("sample.input.json"));
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_invalid_json_returns_err() {
|
||||
let input = PocWitnessInput::new("{".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_missing_inputs_returns_err() {
|
||||
let input = PocWitnessInput::new("{}".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_constraint_violation_returns_err() {
|
||||
let json = std::fs::read_to_string(&*INPUTS).unwrap();
|
||||
let bad_json = json.replace(
|
||||
"\"voucher_root\": \"20810875415353676096192834577269613981524168537821543897016159330974871397924\"",
|
||||
"\"voucher_root\": \"1\"",
|
||||
);
|
||||
let input = PocWitnessInput::new(bad_json).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness() {
|
||||
let dat = LIB_DIR.join("witness_generator");
|
||||
|
||||
@ -60,6 +60,29 @@ mod tests {
|
||||
static INPUTS: LazyLock<PathBuf> =
|
||||
LazyLock::new(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("sample.input.json"));
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_invalid_json_returns_err() {
|
||||
let input = PolWitnessInput::new("{".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_missing_inputs_returns_err() {
|
||||
let input = PolWitnessInput::new("{}".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_constraint_violation_returns_err() {
|
||||
let json = std::fs::read_to_string(&*INPUTS).unwrap();
|
||||
let bad_json = json.replace(
|
||||
"\"ledger_aged\": \"9907496234164738674719754286318998202143315407023653151112941050435603056651\"",
|
||||
"\"ledger_aged\": \"1\"",
|
||||
);
|
||||
let input = PolWitnessInput::new(bad_json).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness() {
|
||||
let dat = LIB_DIR.join("witness_generator");
|
||||
|
||||
@ -60,6 +60,31 @@ mod tests {
|
||||
static INPUTS: LazyLock<PathBuf> =
|
||||
LazyLock::new(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("sample.input.json"));
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_invalid_json_returns_err() {
|
||||
let input = PoqWitnessInput::new("{".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_missing_inputs_returns_err() {
|
||||
let input = PoqWitnessInput::new("{}".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_constraint_violation_returns_err() {
|
||||
let json = std::fs::read_to_string(&*INPUTS).unwrap();
|
||||
// Swap core_root for a wrong value; the Merkle path no longer verifies,
|
||||
// so is_registered.out = 0 and the constraint at circom line 108 fires.
|
||||
let bad_json = json.replace(
|
||||
"\"core_root\": \"20423847801203321296654759690878714805328777188198550442842378955293864405749\"",
|
||||
"\"core_root\": \"1\"",
|
||||
);
|
||||
let input = PoqWitnessInput::new(bad_json).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness() {
|
||||
let dat = LIB_DIR.join("witness_generator");
|
||||
|
||||
@ -65,6 +65,18 @@ mod tests {
|
||||
static INPUTS: LazyLock<PathBuf> =
|
||||
LazyLock::new(|| PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("sample.input.json"));
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_invalid_json_returns_err() {
|
||||
let input = SignatureWitnessInput::new("{".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness_missing_inputs_returns_err() {
|
||||
let input = SignatureWitnessInput::new("{}".to_owned()).unwrap();
|
||||
assert!(generate_witness(&input).is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_generate_witness() {
|
||||
let dat = LIB_DIR.join("witness_generator");
|
||||
|
||||
@ -22,4 +22,23 @@ mod tests {
|
||||
let poq_result = lbc_poq_sys::generate_witness(&inputs_json);
|
||||
assert!(poq_result.is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_concurrent_poq_calls() {
|
||||
let inputs_json_raw = std::fs::read_to_string(inputs::POQ.as_path()).unwrap();
|
||||
|
||||
let handles: Vec<_> = (0..4)
|
||||
.map(|_| {
|
||||
let json = inputs_json_raw.clone();
|
||||
std::thread::spawn(move || {
|
||||
let input = PoqWitnessInput::new(json).unwrap();
|
||||
lbc_poq_sys::generate_witness(&input)
|
||||
})
|
||||
})
|
||||
.collect();
|
||||
|
||||
for h in handles {
|
||||
assert!(h.join().unwrap().is_ok());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user