Run regression tests for voxtype releases. Use before major releases to verify core functionality, CLI commands, and configuration handling.
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
skills listSkill Instructions
name: regression-test description: Run regression tests for voxtype releases. Use before major releases to verify core functionality, CLI commands, and configuration handling. user-invocable: true allowed-tools:
- Bash
- Read
- Glob
- Grep
Regression Test
Comprehensive testing checklist for voxtype releases.
Quick Smoke Test
# Build and basic checks
cargo build --release
./target/release/voxtype --version
./target/release/voxtype --help
./target/release/voxtype setup --help
Unit Tests
cargo test
Key test modules:
text::- Spoken punctuation and replacementscli::- Command-line argument parsingstate::- State machine transitions
CLI Command Tests
Setup Commands
# List available models
./target/release/voxtype setup --list-models
# Show current configuration
./target/release/voxtype setup --show-config
# Check GPU detection (if available)
./target/release/voxtype setup gpu --status
Status Commands
# Check daemon status (will fail if not running, that's ok)
timeout 2 ./target/release/voxtype status || echo "Daemon not running (expected)"
# JSON output format
timeout 2 ./target/release/voxtype status --format json || echo "Daemon not running (expected)"
Transcription Test
# Test with a sample audio file (if available)
./target/release/voxtype transcribe test.wav
Configuration Tests
Default Config Loading
# Should not error with missing config
rm -f ~/.config/voxtype/config.toml
./target/release/voxtype --help
# Should load config without errors
mkdir -p ~/.config/voxtype
cp config/default.toml ~/.config/voxtype/config.toml
./target/release/voxtype setup --show-config
Config Backwards Compatibility
Test that old config files still work:
# Create minimal old-style config
cat > /tmp/test-config.toml << 'EOF'
[hotkey]
key = "SCROLLLOCK"
[whisper]
model = "base.en"
EOF
# Should not error
./target/release/voxtype --config /tmp/test-config.toml --help
Binary Variant Tests
For each binary variant, verify:
VERSION=0.4.14
# AVX2
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx2 --version
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx2 --help
# AVX-512
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx512 --version
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-avx512 --help
# Vulkan
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-vulkan --version
releases/${VERSION}/voxtype-${VERSION}-linux-x86_64-vulkan --help
Integration Tests
Daemon Lifecycle
# Start daemon
./target/release/voxtype &
DAEMON_PID=$!
sleep 2
# Check it's running
./target/release/voxtype status
# Stop daemon
kill $DAEMON_PID
Signal Handling
./target/release/voxtype &
DAEMON_PID=$!
sleep 1
# SIGUSR1 should start recording (will fail without audio, ok)
kill -USR1 $DAEMON_PID
# SIGTERM should graceful shutdown
kill -TERM $DAEMON_PID
Package Tests
Debian Package
# Validate structure
dpkg-deb --info releases/${VERSION}/voxtype_${VERSION}-1_amd64.deb
# List contents
dpkg-deb --contents releases/${VERSION}/voxtype_${VERSION}-1_amd64.deb
# Check for required files
dpkg-deb --contents releases/${VERSION}/voxtype_${VERSION}-1_amd64.deb | grep -E 'voxtype-avx2|voxtype-avx512|config.toml|voxtype.service'
RPM Package
rpm -qp --info releases/${VERSION}/voxtype-${VERSION}-1.x86_64.rpm
rpm -qp --list releases/${VERSION}/voxtype-${VERSION}-1.x86_64.rpm
Checklist for Major Releases
-
cargo testpasses -
cargo clippyhas no warnings - All binary variants build successfully
- Binary instruction validation passes (no AVX-512 in AVX2/Vulkan)
- Version numbers match across all binaries
- CLI --help output is correct
- Default config loads without errors
- Old configs still work (backwards compatibility)
- Packages install correctly on target distros
- Daemon starts and stops cleanly
- Recording/transcription works end-to-end (manual test)
Known Test Limitations
- Audio capture requires real audio hardware (can't fully test in CI)
- evdev hotkey detection requires
/dev/inputaccess - Transcription requires downloaded Whisper model
- GPU acceleration requires Vulkan-capable hardware
More by peteonrails
View allPackage voxtype for release. Creates deb and rpm packages from binaries. Use when building distribution packages.
Publish voxtype to AUR. Updates PKGBUILD, generates checksums, and pushes to AUR. Use after a GitHub release is published.
Update voxtype documentation for releases and features. Use when adding features, fixing bugs, or preparing releases. Covers user manual, troubleshooting, website, release notes, and contributor credits.
Validate voxtype binaries for CPU instruction contamination. Use when checking release binaries for AVX-512 or GFNI instruction leaks that would crash on older CPUs.
