Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- **`arg_spec.rs` unit-test coverage completed (issue #696).** The typed-argument module now carries 60 tests alongside its original 8, taking `cargo-budget-report/src/arg_spec.rs` from 85.5% to 100% production-line coverage under `cargo llvm-cov`. Paths newly reached: every integer/`symbol`/`string` keyword, explicit `bool` values plus their non-boolean rejection, each `bytes`/`bytesn` hex-validation failure, the whole explicit-`address` branch (previously untested), `generate = true` with an empty or multibyte argument name, `struct`/`vec`/`map` next to `json`, mistyped and untrimmed `type` values, and the `deny_unknown_fields` / untagged-enum deserialisation surface. Two behaviours are pinned as findings rather than fixed, since both fall outside a tests-only issue: `type = "json"` with a TOML datetime forwards `{"$__toml_private_datetime": "…"}` instead of a plain string, and `generate = true` reads the name through a `seed[i % seed.len()]` window, so `"ab"` and `"abab"` (or two names sharing a 32-byte prefix) derive the same dummy address.
- **UI-test harness and fixture coverage (issues #623, #627).** `budget-macros/tests/ui.rs` now asserts the harness's inputs instead of only invoking trybuild: every compile-fail fixture must ship a non-empty `.stderr` snapshot (trybuild treats a missing snapshot as new, silently losing the pin), every `tests/ui/pass/*.rs` fixture must define `main()`, and the `missing_env_read`, `pct_out_of_range` and `pct_no_of` fixtures are asserted directly so a rename or a dropped snapshot fails the suite rather than quietly reducing coverage.
- **Local-vs-network cost-gap measurements for four operation types (issues #414–#417).** New `MEASUREMENTS.md` sections, fixtures and measurement tests, each with real local `Env::cost_estimate().budget()` figures and the network `simulateTransaction` column marked pending:
- **Cryptographic operations (#414).** `amm-pool-contract` fixtures `hash_sha256`, `hash_keccak256`, `verify_ed25519`; test `measure_crypto_gap.rs` measures hashing across three input sizes plus ed25519 verification. Finding: local hashing cost scales ~55 CPU/byte (SHA-256) / ~47 CPU/byte (Keccak-256) over a ~3.6 M instantiation floor. The `Crypto` surface is enumerated so a future primitive shows as a gap; `bls12_381` and the hazmat `secp256*` functions are explicitly out of scope.
Expand Down
Loading
Loading