{"id":31841587,"url":"https://github.com/dirvine/saorsa-test-suite","last_synced_at":"2025-10-12T05:21:20.845Z","repository":{"id":310112683,"uuid":"1038462089","full_name":"dirvine/saorsa-test-suite","owner":"dirvine","description":"Comprehensive test suite for Saorsa Core P2P library with data integrity verification and distributed network testing capabilities","archived":false,"fork":false,"pushed_at":"2025-08-15T19:11:26.000Z","size":1095,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-15T21:42:29.842Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dirvine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-08-15T08:39:03.000Z","updated_at":"2025-08-15T17:02:41.000Z","dependencies_parsed_at":"2025-08-15T21:42:56.761Z","dependency_job_id":null,"html_url":"https://github.com/dirvine/saorsa-test-suite","commit_stats":null,"previous_names":["dirvine/saorsa-test-suite"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/dirvine/saorsa-test-suite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirvine%2Fsaorsa-test-suite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirvine%2Fsaorsa-test-suite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirvine%2Fsaorsa-test-suite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirvine%2Fsaorsa-test-suite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dirvine","download_url":"https://codeload.github.com/dirvine/saorsa-test-suite/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dirvine%2Fsaorsa-test-suite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010341,"owners_count":26084738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-12T05:21:17.256Z","updated_at":"2025-10-12T05:21:20.838Z","avatar_url":"https://github.com/dirvine.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Saorsa Test Suite\n\n[![Crates.io](https://img.shields.io/crates/v/saorsa-test-suite.svg)](https://crates.io/crates/saorsa-test-suite)\n[![Documentation](https://docs.rs/saorsa-test-suite/badge.svg)](https://docs.rs/saorsa-test-suite)\n[![CI](https://github.com/dirvine/saorsa-test-suite-foundation/workflows/CI/badge.svg)](https://github.com/dirvine/saorsa-test-suite-foundation/actions)\n![Test Results](https://img.shields.io/badge/tests-720%20passed-brightgreen)\n![Global Coverage](https://img.shields.io/badge/coverage-6%20regions-blue)\n![Pre-Release](https://img.shields.io/badge/status-pre--release-orange)\n\nComprehensive test suite for Saorsa Core P2P library with data integrity verification and distributed network testing capabilities.\n\n## 🎯 Latest Test Results\n\n### Local Testing\n- **64/64** unit tests passing (100% success rate)\n- **9/9** DHT v2 integration tests passing\n- **Zero** compilation warnings or errors\n\n### Global P2P Testing (2025-08-15)\nSuccessfully tested across **6 global regions** with exceptional results:\n\n| Metric | Result |\n|--------|--------|\n| **Total Tests** | 720/720 passed |\n| **Global Regions** | NYC, SFO, LON, FRA, SGP, SYD |\n| **Network Topology** | Full mesh (15 connections) |\n| **Average Latency** | 156ms (global average) |\n| **Best Latency** | 23ms (LON↔FRA) |\n| **Worst Latency** | 295ms (LON↔SYD) |\n| **Throughput** | 32,592 req/s |\n| **Concurrent Connections** | 6000+ |\n| **Resource Usage** | \u003c5% CPU average |\n\n📊 **[View Full Test Report](./REMOTE_TEST_REPORT.md)** | **[View Test Data](./global_test_results.json)**\n\n## Features\n\n- **Comprehensive Testing**: Full test coverage for P2P networking components\n- **Data Integrity Verification**: Cryptographic verification of data transmission\n- **Remote Network Testing**: Distributed testing across multiple nodes\n- **Performance Benchmarking**: Built-in performance measurement and reporting\n- **Stress Testing**: Load testing for network resilience validation\n- **MLS Protocol Testing**: Group communication security verification\n- **CLI Interface**: Command-line tool for automated testing workflows\n\n## Architecture\n\nThe test suite provides multiple testing modes and verification mechanisms:\n\n### Core Testing Components\n\n- **Network Connectivity Tests**: Verify P2P network formation and stability\n- **DHT Operations**: Distributed hash table functionality validation\n- **Message Transmission**: End-to-end message delivery verification\n- **Cryptographic Operations**: Encryption/decryption and signature validation\n- **Reed-Solomon Encoding**: Error correction and data recovery testing\n- **Geographic Routing**: Location-aware routing verification\n\n### Test Types\n\n- **Unit Tests**: Individual component functionality\n- **Integration Tests**: Multi-component interaction validation\n- **Stress Tests**: High-load and failure scenario testing\n- **Performance Tests**: Latency and throughput benchmarking\n- **Security Tests**: Cryptographic and protocol security validation\n\n## Installation\n\nAdd this to your `Cargo.toml`:\n\n```toml\n[dependencies]\nsaorsa-test-suite = \"0.1.0\"\n```\n\nOr install the CLI tool:\n\n```bash\ncargo install saorsa-test-suite\n```\n\n## Usage\n\n### CLI Tool\n\nRun the complete test suite:\n\n```bash\nsaorsa-test-suite --config test-config.toml\n```\n\nRun specific test categories:\n\n```bash\n# Network connectivity tests\nsaorsa-test-suite --test-type network\n\n# Cryptographic verification\nsaorsa-test-suite --test-type crypto\n\n# Performance benchmarks\nsaorsa-test-suite --test-type performance\n\n# MLS protocol tests\nsaorsa-test-suite --test-type mls\n```\n\n### Programmatic Usage\n\n```rust\nuse saorsa_test_suite::{TestRunner, TestConfig, TestType};\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    // Create test configuration\n    let config = TestConfig::builder()\n        .test_types(vec![TestType::Network, TestType::Crypto])\n        .node_count(10)\n        .duration(Duration::from_secs(300))\n        .data_verification(true)\n        .build();\n\n    // Initialize test runner\n    let mut runner = TestRunner::new(config).await?;\n\n    // Execute tests\n    let results = runner.run_tests().await?;\n\n    // Generate report\n    let report = results.generate_report();\n    println!(\"{}\", report);\n\n    Ok(())\n}\n```\n\n### Test Infrastructure\n\nThe test suite has been validated on DigitalOcean's global infrastructure:\n\n- **7 nodes** deployed globally (1 coordinator + 6 test nodes)\n- **Instance type**: basic-xxs ($0.007/hour per node)\n- **Deployment**: Docker containers via App Platform\n- **Configuration**: See [global-app.yaml](./global-app.yaml)\n\n### Remote Testing\n\nTest across multiple remote nodes:\n\n```rust\nuse saorsa_test_suite::{RemoteTestRunner, RemoteConfig};\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), Box\u003cdyn std::error::Error\u003e\u003e {\n    let config = RemoteConfig::builder()\n        .nodes(vec![\n            \"user@node1.example.com\",\n            \"user@node2.example.com\",\n            \"user@node3.example.com\",\n        ])\n        .ssh_key_path(\"~/.ssh/id_rsa\")\n        .test_duration(Duration::from_secs(600))\n        .build();\n\n    let mut runner = RemoteTestRunner::new(config).await?;\n    let results = runner.run_distributed_tests().await?;\n\n    println!(\"Test Results: {:#?}\", results);\n\n    Ok(())\n}\n```\n\n## Configuration\n\nCreate a test configuration file:\n\n```toml\n# test-config.toml\n\n[general]\nnode_count = 10\ntest_duration = \"5m\"\nlog_level = \"info\"\noutput_format = \"json\"\n\n[network]\nbootstrap_nodes = [\n    \"127.0.0.1:8080\",\n    \"127.0.0.1:8081\"\n]\nnetwork_timeout = \"30s\"\n\n[crypto]\nverify_signatures = true\ntest_key_rotation = true\nquantum_resistant = false\n\n[performance]\nmax_latency_ms = 1000\nmin_throughput_mbps = 10\nbenchmark_duration = \"2m\"\n\n[remote]\nssh_key = \"~/.ssh/id_rsa\"\ndeployment_timeout = \"60s\"\n\n[[remote.nodes]]\nhost = \"test-node-1.example.com\"\nuser = \"ubuntu\"\nport = 22\n\n[[remote.nodes]]\nhost = \"test-node-2.example.com\"\nuser = \"ubuntu\"\nport = 22\n```\n\n## Test Categories\n\n### Network Tests\n\n- **Bootstrap Connectivity**: Node discovery and initial connection\n- **Peer Discovery**: Dynamic peer finding and connection establishment\n- **Message Routing**: End-to-end message delivery verification\n- **Network Partitioning**: Resilience to network splits and recovery\n- **Geographic Routing**: Location-aware message routing\n\n### Cryptographic Tests\n\n- **Key Generation**: Ed25519 and X25519 key pair generation\n- **Digital Signatures**: Message signing and verification\n- **Encryption/Decryption**: ChaCha20Poly1305 AEAD operations\n- **Key Derivation**: HKDF-based key derivation verification\n- **Forward Secrecy**: Key rotation and perfect forward secrecy\n\n### MLS Protocol Tests\n\n- **Group Creation**: Secure group establishment\n- **Member Management**: Adding and removing group members\n- **Message Security**: Encrypted group communication\n- **Key Rotation**: Automatic key refresh mechanisms\n- **Protocol Compliance**: RFC 9420 compliance verification\n\n### Performance Tests\n\n- **Latency Measurement**: Round-trip time analysis\n- **Throughput Testing**: Data transfer rate measurement\n- **Scalability Tests**: Performance with increasing node counts\n- **Resource Usage**: Memory and CPU utilization monitoring\n- **Stress Testing**: High-load scenario validation\n\n## Data Verification\n\nThe test suite includes comprehensive data integrity verification:\n\n```rust\nuse saorsa_test_suite::verification::{DataVerifier, VerificationMode};\n\n// Create data verifier\nlet verifier = DataVerifier::new(VerificationMode::Cryptographic);\n\n// Generate test data with checksums\nlet test_data = verifier.generate_test_data(1024 * 1024).await?;\n\n// Verify data integrity after transmission\nlet is_valid = verifier.verify_data(\u0026received_data, \u0026test_data.checksum).await?;\nassert!(is_valid);\n```\n\n## Remote Testing\n\nDeploy and run tests across multiple nodes:\n\n```bash\n# Deploy test suite to remote nodes\nsaorsa-test-suite deploy --config remote-config.toml\n\n# Run distributed network test\nsaorsa-test-suite remote-test --nodes 10 --duration 10m\n\n# Collect and analyze results\nsaorsa-test-suite collect-results --output results.json\n```\n\n## Reporting\n\nGenerate comprehensive test reports:\n\n```rust\nuse saorsa_test_suite::reporting::{ReportGenerator, ReportFormat};\n\nlet generator = ReportGenerator::new(ReportFormat::Html);\nlet report = generator.generate_report(\u0026test_results).await?;\n\n// Save report to file\nreport.save_to_file(\"test-report.html\").await?;\n```\n\nReport formats:\n- **HTML**: Interactive web-based reports with charts\n- **JSON**: Machine-readable structured data\n- **Markdown**: Human-readable text reports\n- **CSV**: Tabular data for analysis\n\n## Performance Monitoring\n\nReal-time performance monitoring during tests:\n\n```rust\nuse saorsa_test_suite::monitoring::{PerformanceMonitor, Metric};\n\nlet monitor = PerformanceMonitor::new();\n\n// Track network metrics\nmonitor.track(Metric::NetworkLatency)?;\nmonitor.track(Metric::Throughput)?;\nmonitor.track(Metric::PacketLoss)?;\n\n// Get real-time statistics\nlet stats = monitor.get_current_stats().await?;\nprintln!(\"Current latency: {}ms\", stats.avg_latency);\n```\n\n## Contributing\n\nContributions are welcome! Please read our contributing guidelines and submit pull requests to our GitHub repository.\n\n## Testing\n\nRun the test suite:\n\n```bash\ncargo test --all-features\n```\n\nRun integration tests:\n\n```bash\ncargo test --test integration\n```\n\nRun performance benchmarks:\n\n```bash\ncargo bench\n```\n\n## License\n\nThis project is dual-licensed under:\n- GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later)\n- Commercial License\n\nFor AGPL-3.0 license details, see [LICENSE-AGPL-3.0](LICENSE-AGPL-3.0).\nFor commercial licensing, contact: saorsalabs@gmail.com\n\n## Project Status\n\n**⚠️ PRE-RELEASE ALPHA**\n\nThis test suite is in active development and not yet ready for production use. Current status:\n\n- ✅ Core functionality implemented\n- ✅ Local tests passing (64/64)\n- ✅ Global infrastructure validated (6 regions)\n- 🚧 API may change before 1.0 release\n- 🚧 Additional test scenarios being developed\n- 🚧 Documentation being expanded\n\n## Test Reports\n\n- [Local Test Report](./TEST_REPORT.md) - Local testing results\n- [Remote Test Report](./REMOTE_TEST_REPORT.md) - Global P2P test results\n- [Test Data](./global_test_results.json) - Raw test metrics\n\n## Security\n\nFor security issues, please contact: saorsalabs@gmail.com\n\nDo not report security vulnerabilities through public GitHub issues.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirvine%2Fsaorsa-test-suite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdirvine%2Fsaorsa-test-suite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdirvine%2Fsaorsa-test-suite/lists"}