CLI Testing & Verification
The VeriSynth CLI was designed for trust — every run can be verified, reproduced, and audited without ever exposing sensitive data. This guide explains how to:- Test VeriSynth locally
- Verify your proof receipts
- Reproduce a run deterministically
- Debug unexpected differences
1. Verify Installation
After installation, confirm that the CLI is available:2. Generate a Test Dataset
Use the included demo dataset for a quick local test:3. Validate the Proof Receipt
Each run produces a JSON proof receipt (proof.json):
- Compute your own SHA-256 hash of the input and output files.
- Compare them with the hashes inside
proof.json. - Verify that the Merkle root matches — if it does, your run is provably unchanged.
verisynth verify command will automate this.)
4. Test Reproducibility
Because VeriSynth uses deterministic seeding, identical runs will produce identical proofs and Merkle roots. Try it:5. Test Edge Cases
You can test various parameters to ensure consistent behavior:| Scenario | Command | Expected Result |
|---|---|---|
| Small input file | --rows 100 | Completes instantly |
| Large output | --rows 1000000 | Slower, but deterministic |
| Custom output path | --proof out/custom_proof.json | Proof saved to custom path |
| Invalid path | wrong file | Clean error message (exit code 1) |
6. Exit Codes
The CLI provides predictable exit codes for scripting and CI/CD.| Code | Meaning |
|---|---|
0 | Success |
1 | Invalid input or missing file |
2 | Model synthesis error |
3 | Proof verification failed |
4 | I/O or permission issue |
7. Continuous Integration (CI/CD)
You can run VeriSynth tests automatically as part of your pipeline. Example GitHub Action:8. Debugging Tips
| Issue | Cause | Fix |
|---|---|---|
CLI not found | PATH not updated | Reinstall with pip install -e . |
Permission denied | Output folder restricted | Use --output in a writable directory |
Metrics missing | Proof disabled | Remove --no-proof flag |
| Non-deterministic output | Different seeds or model versions | Use --seed consistently |
Summary
CLI testing in VeriSynth confirms three pillars of trust:- Reproducibility — identical seeds = identical outputs
- Integrity — proof receipts and Merkle roots verify correctness
- Privacy — synthetic data is generated without copying real data