scripts/README.md
This directory contains utility scripts for local development and testing that complement the CI workflows.
# Run development checks
./scripts/dev-checks.sh
# Check binary size changes
./scripts/size-check.sh
# Run security and memory safety tests
./scripts/security.sh
# Run performance benchmarks
./scripts/bench.sh
# Run Neovim Tests
./scripts/run_nvim_tests.sh
dev-checks.shRuns comprehensive development checks including formatting, linting, and tests.
Features:
cargo fmt)size-check.shAnalyzes binary size changes to detect bloat and track optimization efforts.
Features:
security.shComprehensive security and memory safety testing framework.
Features:
Usage:
# Run all available tests
./scripts/security.sh
# Run specific test categories
./scripts/security.sh --no-miri
./scripts/security.sh --no-valgrind
./scripts/security.sh --no-audit
# Check available tools and configuration
./scripts/security.sh --check
bench.shLocal performance benchmarking with regression detection.
Features:
Usage:
# Standard benchmark run
./scripts/bench.sh
# Create and compare baselines
./scripts/bench.sh --save my-baseline
./scripts/bench.sh --load my-baseline --threshold 3%
# Development workflow
./scripts/bench.sh --clean --open --test-package ./examples
Note: Benchmarks are designed for local development only. CI environments introduce too much variability for reliable performance measurement.
run_nvim_tests.shRun tests defined in nvim-tests directory.
Usage
./scripts/run_nvim_tests.sh
In uses [mini.test](https://github.com/echasnovski/mini.test) plugin to test.
rust-toolchain.toml)sudo apt-get update
sudo apt-get install -y valgrind bc gnuplot build-essential
brew install gnuplot
# Optional: brew install valgrind (limited support)
These scripts are designed to complement CI workflows where applicable:
security.sh ↔ .github/workflows/security.yml: Same security analysis toolsNote: Benchmarking (bench.sh) is intentionally local-only due to CI environment variability.
The scripts integrate with workflows where appropriate:
security.yml: Runs comprehensive security testing across platformsbench.sh: Local-only performance testing (not suitable for CI)dev-checks.sh: Can be used in CI for code quality checks# Run all development checks
./scripts/dev-checks.sh
# Run security tests
./scripts/security.sh
# Check performance impact (local only)
./scripts/bench.sh
# Check binary size impact
./scripts/size-check.sh
# If you changed any neovim specific things (like lua files)
./scripts/run_nvim_tests.sh
For setting up a development environment, ensure you have the platform-specific tools listed in the Prerequisites section above.
chmod +x scripts/*.sh
Run the setup script or check platform-specific installation commands above.
rust-toolchain.toml compatibilityAll scripts follow common patterns: