mirror of
https://github.com/sonr-io/crypto.git
synced 2026-01-11 20:08:57 +00:00
284 lines
9.4 KiB
Makefile
284 lines
9.4 KiB
Makefile
# Crypto Module Makefile
|
|
# Provides targets for testing all cryptographic packages individually
|
|
|
|
.PHONY: all test test-verbose clean help
|
|
.PHONY: test-accumulator test-bulletproof test-core test-daed test-dkg test-ecies
|
|
.PHONY: test-internal test-keys test-mpc test-ot test-paillier test-sharing
|
|
.PHONY: test-signatures test-subtle test-tecdsa test-ted25519 test-zkp
|
|
.PHONY: test-core-curves test-core-native test-dkg-frost test-dkg-gennaro test-dkg-gennaro2p
|
|
.PHONY: test-ot-base test-ot-extension test-sharing-v1 test-signatures-bbs test-signatures-bls
|
|
.PHONY: test-signatures-common test-signatures-schnorr test-tecdsa-dklsv1 test-ted25519-frost
|
|
.PHONY: test-ted25519-ted25519 test-zkp-schnorr
|
|
.PHONY: bench bench-verbose coverage coverage-html
|
|
|
|
# Default target
|
|
all: test
|
|
|
|
tidy:
|
|
@go mod tidy
|
|
@go mod download
|
|
|
|
# Test all packages
|
|
test: tidy
|
|
@gum log --level info "Running tests for all crypto packages..."
|
|
@go test ./... -v
|
|
|
|
# Test all packages with verbose output
|
|
test-verbose: tidy
|
|
@gum log --level info "Running verbose tests for all crypto packages..."
|
|
@go test ./... -v -count=1
|
|
|
|
# Help target
|
|
help:
|
|
@gum log --level info "Crypto Module Makefile"
|
|
@gum log --level info ""
|
|
@gum log --level info "Available targets:"
|
|
@gum log --level info " all - Run all tests (default)"
|
|
@gum log --level info " test - Run all tests"
|
|
@gum log --level info " test-verbose - Run all tests with verbose output"
|
|
@gum log --level info ""
|
|
@gum log --level info "Individual package tests:"
|
|
@gum log --level info " test-accumulator - Test accumulator package"
|
|
@gum log --level info " test-bulletproof - Test bulletproof package"
|
|
@gum log --level info " test-core - Test core package"
|
|
@gum log --level info " test-daed - Test daed package"
|
|
@gum log --level info " test-dkg - Test dkg package"
|
|
@gum log --level info " test-ecies - Test ecies package"
|
|
@gum log --level info " test-internal - Test internal package"
|
|
@gum log --level info " test-keys - Test keys package"
|
|
@gum log --level info " test-mpc - Test mpc package"
|
|
@gum log --level info " test-ot - Test ot package"
|
|
@gum log --level info " test-paillier - Test paillier package"
|
|
@gum log --level info " test-sharing - Test sharing package"
|
|
@gum log --level info " test-signatures - Test signatures package"
|
|
@gum log --level info " test-subtle - Test subtle package"
|
|
@gum log --level info " test-tecdsa - Test tecdsa package"
|
|
@gum log --level info " test-ted25519 - Test ted25519 package"
|
|
@gum log --level info " test-zkp - Test zkp package"
|
|
@gum log --level info ""
|
|
@gum log --level info "Subpackage tests:"
|
|
@gum log --level info " test-core-curves - Test core/curves package"
|
|
@gum log --level info " test-core-native - Test core/curves/native package"
|
|
@gum log --level info " test-dkg-frost - Test dkg/frost package"
|
|
@gum log --level info " test-dkg-gennaro - Test dkg/gennaro package"
|
|
@gum log --level info " test-dkg-gennaro2p - Test dkg/gennaro2p package"
|
|
@gum log --level info " test-ot-base - Test ot/base package"
|
|
@gum log --level info " test-ot-extension - Test ot/extension package"
|
|
@gum log --level info " test-sharing-v1 - Test sharing/v1 package"
|
|
@gum log --level info " test-signatures-bbs - Test signatures/bbs package"
|
|
@gum log --level info " test-signatures-bls - Test signatures/bls package"
|
|
@gum log --level info " test-signatures-common - Test signatures/common package"
|
|
@gum log --level info " test-signatures-schnorr - Test signatures/schnorr package"
|
|
@gum log --level info " test-tecdsa-dklsv1 - Test tecdsa/dklsv1 package"
|
|
@gum log --level info " test-ted25519-frost - Test ted25519/frost package"
|
|
@gum log --level info " test-ted25519-ted25519 - Test ted25519/ted25519 package"
|
|
@gum log --level info " test-zkp-schnorr - Test zkp/schnorr package"
|
|
@gum log --level info ""
|
|
@gum log --level info "Performance and coverage:"
|
|
@gum log --level info " bench - Run benchmarks"
|
|
@gum log --level info " bench-verbose - Run benchmarks with verbose output"
|
|
@gum log --level info " coverage - Generate test coverage report"
|
|
@gum log --level info " coverage-html - Generate HTML test coverage report"
|
|
|
|
# Top-level package tests
|
|
test-accumulator:
|
|
@gum log --level info "Testing accumulator package..."
|
|
@go test ./accumulator -v
|
|
|
|
test-bulletproof:
|
|
@gum log --level info "Testing bulletproof package..."
|
|
@go test ./bulletproof -v
|
|
|
|
test-core:
|
|
@gum log --level info "Testing core package..."
|
|
@go test ./core -v
|
|
|
|
test-daed:
|
|
@gum log --level info "Testing daed package..."
|
|
@go test ./daed -v
|
|
|
|
test-dkg:
|
|
@gum log --level info "Testing dkg package..."
|
|
@go test ./dkg/... -v
|
|
|
|
test-ecies:
|
|
@gum log --level info "Testing ecies package..."
|
|
@go test ./ecies -v
|
|
|
|
test-internal:
|
|
@gum log --level info "Testing internal package..."
|
|
@go test ./internal -v
|
|
|
|
test-keys:
|
|
@gum log --level info "Testing keys package..."
|
|
@go test ./keys -v
|
|
|
|
test-mpc:
|
|
@gum log --level info "Testing mpc package..."
|
|
@go test ./mpc -v
|
|
|
|
test-ot:
|
|
@gum log --level info "Testing ot package..."
|
|
@go test ./ot/... -v
|
|
|
|
test-paillier:
|
|
@gum log --level info "Testing paillier package..."
|
|
@go test ./paillier -v
|
|
|
|
test-sharing:
|
|
@gum log --level info "Testing sharing package..."
|
|
@go test ./sharing/... -v
|
|
|
|
test-signatures:
|
|
@gum log --level info "Testing signatures package..."
|
|
@go test ./signatures/... -v
|
|
|
|
test-subtle:
|
|
@gum log --level info "Testing subtle package..."
|
|
@go test ./subtle -v
|
|
|
|
test-tecdsa:
|
|
@gum log --level info "Testing tecdsa package..."
|
|
@go test ./tecdsa/... -v
|
|
|
|
test-ted25519:
|
|
@gum log --level info "Testing ted25519 package..."
|
|
@go test ./ted25519/... -v
|
|
|
|
|
|
test-zkp:
|
|
@gum log --level info "Testing zkp package..."
|
|
@go test ./zkp/... -v
|
|
|
|
# Subpackage tests
|
|
test-core-curves:
|
|
@gum log --level info "Testing core/curves package..."
|
|
@go test ./core/curves -v
|
|
|
|
test-core-native:
|
|
@gum log --level info "Testing core/curves/native package..."
|
|
@go test ./core/curves/native/... -v
|
|
|
|
test-dkg-frost:
|
|
@gum log --level info "Testing dkg/frost package..."
|
|
@go test ./dkg/frost -v
|
|
|
|
test-dkg-gennaro:
|
|
@gum log --level info "Testing dkg/gennaro package..."
|
|
@go test ./dkg/gennaro -v
|
|
|
|
test-dkg-gennaro2p:
|
|
@gum log --level info "Testing dkg/gennaro2p package..."
|
|
@go test ./dkg/gennaro2p -v
|
|
|
|
test-ot-base:
|
|
@gum log --level info "Testing ot/base package..."
|
|
@go test ./ot/base/... -v
|
|
|
|
test-ot-extension:
|
|
@gum log --level info "Testing ot/extension package..."
|
|
@go test ./ot/extension/... -v
|
|
|
|
test-sharing-v1:
|
|
@gum log --level info "Testing sharing/v1 package..."
|
|
@go test ./sharing/v1 -v
|
|
|
|
test-signatures-bbs:
|
|
@gum log --level info "Testing signatures/bbs package..."
|
|
@go test ./signatures/bbs -v
|
|
|
|
test-signatures-bls:
|
|
@gum log --level info "Testing signatures/bls package..."
|
|
@go test ./signatures/bls/... -v
|
|
|
|
test-signatures-common:
|
|
@gum log --level info "Testing signatures/common package..."
|
|
@go test ./signatures/common -v
|
|
|
|
test-signatures-schnorr:
|
|
@gum log --level info "Testing signatures/schnorr package..."
|
|
@go test ./signatures/schnorr/... -v
|
|
|
|
test-tecdsa-dklsv1:
|
|
@gum log --level info "Testing tecdsa/dklsv1 package..."
|
|
@go test ./tecdsa/dklsv1/... -v
|
|
|
|
test-ted25519-frost:
|
|
@gum log --level info "Testing ted25519/frost package..."
|
|
@go test ./ted25519/frost -v
|
|
|
|
test-ted25519-ted25519:
|
|
@gum log --level info "Testing ted25519/ted25519 package..."
|
|
@go test ./ted25519/ted25519 -v
|
|
|
|
test-zkp-schnorr:
|
|
@gum log --level info "Testing zkp/schnorr package..."
|
|
@go test ./zkp/schnorr -v
|
|
|
|
# Performance testing
|
|
bench:
|
|
@gum log --level info "Running benchmarks for all packages..."
|
|
@go test ./... -bench=. -run=^$
|
|
|
|
bench-verbose:
|
|
@gum log --level info "Running verbose benchmarks for all packages..."
|
|
@go test ./... -bench=. -benchmem -run=^$ -v
|
|
|
|
# Coverage testing
|
|
coverage:
|
|
@gum log --level info "Generating test coverage report..."
|
|
@go test ./... -coverprofile=coverage.out
|
|
@go tool cover -func=coverage.out
|
|
|
|
coverage-html:
|
|
@gum log --level info "Generating HTML test coverage report..."
|
|
@go test ./... -coverprofile=coverage.out
|
|
@go tool cover -html=coverage.out -o coverage.html
|
|
@gum log --level info "Coverage report generated: coverage.html"
|
|
|
|
# Build verification
|
|
build:
|
|
@gum log --level info "Building all packages to verify compilation..."
|
|
@go build ./...
|
|
|
|
# Module maintenance
|
|
mod-tidy:
|
|
@gum log --level info "Tidying go.mod..."
|
|
@go mod tidy
|
|
|
|
mod-verify:
|
|
@gum log --level info "Verifying go.mod..."
|
|
@go mod verify
|
|
|
|
mod-download:
|
|
@gum log --level info "Downloading dependencies..."
|
|
@go mod download
|
|
|
|
# Security scanning (if staticcheck is available)
|
|
lint:
|
|
@gum log --level info "Running static analysis..."
|
|
@if command -v staticcheck >/dev/null 2>&1; then \
|
|
staticcheck ./...; \
|
|
else \
|
|
gum log --level warn "staticcheck not installed. Install with: go install honnef.co/go/tools/cmd/staticcheck@latest"; \
|
|
go vet ./...; \
|
|
fi
|
|
|
|
# Format code
|
|
fmt:
|
|
@gum log --level info "Formatting code..."
|
|
@go fmt ./...
|
|
|
|
# Check for formatting issues
|
|
fmt-check:
|
|
@gum log --level info "Checking code formatting..."
|
|
@test -z "$$(go fmt ./...)"
|
|
|
|
# Run all quality checks
|
|
check: fmt-check lint test
|
|
@gum log --level info "✅ All quality checks passed!"
|
|
|
|
# Development workflow
|
|
dev: clean mod-tidy fmt lint test
|
|
@gum log --level info "✅ Development workflow completed successfully!"
|