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
43 changes: 40 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added
### Planned

- Steel framework support (planned)
- Enhanced testing utilities (compute units, account state validation)
- Steel framework support
- Enhanced testing utilities (account state validation)
- Integration with popular Solana testing patterns

## [0.2.0] - 2024-06-11

### Added - CU Benchmarking Framework

- **Systematic CU analysis framework** with instruction and transaction paradigms
- **Dual benchmarking modes**: Pure instruction measurement vs complete transaction workflows
- **Statistical analysis engine** with percentile-based estimates (min, conservative, balanced, safe, very_high, unsafe_max)
- **Rich execution context discovery** through simulation (SVM state, program details, CPI analysis)
- **Professional tooling integration** with env_logger and clean JSON output
- **Comprehensive unit tests** (324 lines) covering edge cases and percentile calculations

### Framework Features

- `InstructionBenchmark` trait for pure CU measurement without framework overhead
- `TransactionBenchmark` trait for multi-program workflow analysis
- Two-phase measurement: simulation for context + execution for statistics
- Address book system for human-readable program names
- Type-safe domain modeling with `StatType` enum

### Examples & Documentation

- **Working benchmarks**: SOL transfer (150 CU), SPL token transfer, token setup workflow (28K-38K CU)
- **Comprehensive guide**: [`BENCHMARKING.md`](crates/litesvm-testing/BENCHMARKING.md) with living documentation approach
- **Enhanced README**: Repositioned as testing + benchmarking platform

### Technical Improvements

- Fixed percentile calculation bugs that showed incorrect variance
- Removed automatic ComputeBudgetInstruction for measurement transparency
- SVM state accumulation for realistic vs isolated measurements
- Professional logging (quiet by default, optional progress via RUST_LOG)

### Breaking Changes

- None - all existing testing functionality preserved
- New benchmarking features require `--features cu_bench` opt-in

## [0.1.0] - 2025-01-30

### Added
Expand Down
10 changes: 5 additions & 5 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/litesvm-testing/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "litesvm-testing"
version = "0.1.1"
version = "0.2.0"
edition = "2021"
authors = ["LiteSVM Testing Framework Contributors"]
license = "GPL-3.0-or-later"
Expand Down
2 changes: 1 addition & 1 deletion examples/anchor/simple-anchor-program/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "simple-anchor-program"
version = "0.1.1"
version = "0.2.0"
edition = "2021"

[features]
Expand Down
2 changes: 1 addition & 1 deletion examples/anchor/simple-anchor-tests/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "simple-anchor-tests"
version = "0.1.1"
version = "0.2.0"
edition = "2021"

[build-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion examples/pinocchio/simple-pinocchio-program/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "simple-pinocchio-program"
version = "0.1.1"
version = "0.2.0"
edition = "2021"

[features]
Expand Down
2 changes: 1 addition & 1 deletion examples/pinocchio/simple-pinocchio-tests/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "simple-pinocchio-tests"
version = "0.1.1"
version = "0.2.0"
edition = "2021"

[build-dependencies]
Expand Down