Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
769eae8
feat(test): configure test infrastructure with nextest profiles
unclesp1d3r Feb 3, 2026
802e108
fix(test): address spec compliance issues in test infrastructure
unclesp1d3r Feb 3, 2026
7866225
test(wal): expand WriteAheadLog tests to 95% coverage
unclesp1d3r Feb 3, 2026
3a27ab3
test(procmond): add comprehensive EventBusConnector tests for >80% co…
unclesp1d3r Feb 3, 2026
a2985cf
test(rpc_service): expand RpcServiceHandler tests from 14 to 49 for ~…
unclesp1d3r Feb 3, 2026
0e6b978
test(registration): expand RegistrationManager tests from 15 to 50 fo…
unclesp1d3r Feb 3, 2026
05d60e2
test(config): add comprehensive ConfigurationManager tests for >80% c…
unclesp1d3r Feb 3, 2026
24993bc
test(registration): add concurrent heartbeat tests and update spec
unclesp1d3r Feb 3, 2026
64c7e38
test(procmond): add comprehensive Actor Pattern unit tests
unclesp1d3r Feb 3, 2026
7aecafb
test(procmond): add Event Bus Communication integration tests
unclesp1d3r Feb 3, 2026
c581c92
fix(procmond): complete assertions in event bus integration tests
unclesp1d3r Feb 3, 2026
8ad19b5
test(procmond): add RPC Communication integration tests
unclesp1d3r Feb 3, 2026
6891534
test(procmond): add Cross-Platform integration tests
unclesp1d3r Feb 3, 2026
8a6e7e6
test(procmond): add Lifecycle Tracking integration tests
unclesp1d3r Feb 3, 2026
095cc0a
test(procmond): add Chaos/Resilience tests for adverse conditions
unclesp1d3r Feb 3, 2026
dc9978b
test(procmond): add comprehensive security tests
unclesp1d3r Feb 3, 2026
e83af2f
test(procmond): add performance baseline tests with criterion
unclesp1d3r Feb 3, 2026
ac4dbf3
docs(procmond): add comprehensive test suite documentation
unclesp1d3r Feb 3, 2026
79ca028
fix: address CI clippy warnings and update bytes crate
unclesp1d3r Feb 4, 2026
72f9c34
fix(tests): address PR review comments from security scanners
unclesp1d3r Feb 4, 2026
cadc0fa
fix(tests): add clippy allow for semicolon_outside_block in cfg blocks
unclesp1d3r Feb 4, 2026
1c9d944
fix(tests): use PowerShell for Windows sleep in lifecycle tests
unclesp1d3r Feb 4, 2026
3cd5b5e
fix(tests): address comprehensive PR review findings
unclesp1d3r Feb 5, 2026
169fda8
chore(config): add taskmaster and environment files to gitignore
unclesp1d3r Feb 6, 2026
42afa44
refactor(tests): reduce code duplication in chaos tests
unclesp1d3r Feb 6, 2026
62bae41
fix: address CodeRabbit review findings
unclesp1d3r Feb 6, 2026
48be882
fix(security): address CodeQL and zizmor findings
unclesp1d3r Feb 6, 2026
53ffc5c
docs(agents): add security scanner guidance for CI
unclesp1d3r Feb 6, 2026
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
71 changes: 71 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# DaemonEye nextest configuration
# Documentation: https://nexte.st/docs/configuration/

[store]
# Store test results and metadata
dir = "target/nextest"

# =============================================================================
# TEST PROFILES
# =============================================================================

[profile.default]
# Default test execution settings
# Fail fast to quickly identify broken tests during development
fail-fast = true
# Run tests with moderate parallelism by default
test-threads = "num-cpus"
# Show test output for failures
failure-output = "immediate-final"
# Status level for test results
status-level = "pass"
# Slow-warning at 60s, hard-kill after 120s (60s × terminate-after 2)
slow-timeout = { period = "60s", terminate-after = 2 }
# No retries in local development (use CI profile for flaky-test retries)
retries = 0

[profile.default.junit]
# JUnit XML output for CI integration
path = "target/nextest/default/junit.xml"
report-name = "daemoneye-tests"

# -----------------------------------------------------------------------------
# CI Profile - Optimized for continuous integration
# Usage: cargo nextest run --profile ci
# -----------------------------------------------------------------------------
[profile.ci]
# Don't fail fast in CI to get full test results
fail-fast = false
# Use all available CPUs in CI
test-threads = "num-cpus"
# Show all failures at the end
failure-output = "final"
# Higher timeout for CI environments (may be slower)
slow-timeout = { period = "120s", terminate-after = 3 }
# Retry flaky tests in CI
retries = 2

[profile.ci.junit]
path = "target/nextest/ci/junit.xml"
report-name = "daemoneye-ci-tests"
store-success-output = false
store-failure-output = true

# -----------------------------------------------------------------------------
# Coverage Profile - For running with llvm-cov
# Usage: cargo llvm-cov nextest --profile coverage
# -----------------------------------------------------------------------------
[profile.coverage]
# Coverage runs should be thorough
fail-fast = false
# Single-threaded for accurate coverage
test-threads = 1
# Extended timeout for coverage instrumentation overhead
slow-timeout = { period = "180s", terminate-after = 2 }
# No retries - we want deterministic results
retries = 0
failure-output = "immediate-final"

[profile.coverage.junit]
path = "target/nextest/coverage/junit.xml"
report-name = "daemoneye-coverage-tests"
9 changes: 7 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ on:
branches: [main]
workflow_dispatch:

# Restrict permissions to minimum required (principle of least privilege)
permissions:
contents: read

defaults:
run:
shell: bash
Expand Down Expand Up @@ -42,6 +46,7 @@ jobs:
- 'justfile'
- 'rust-toolchain.toml'
- 'deny.toml'
- '.config/nextest.toml'
docs:
- 'docs/**'
- '*.md'
Expand Down Expand Up @@ -80,7 +85,7 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

- name: Run tests (all features)
run: cargo nextest run --all-features
run: cargo nextest run --profile ci --all-features

- name: Build release
run: cargo build --release --all-features
Expand Down Expand Up @@ -128,7 +133,7 @@ jobs:
github_token: ${{ secrets.GITHUB_TOKEN }}

# Run tests and build the release binary
- run: cargo nextest run --all-features
- run: cargo nextest run --profile ci --all-features
- run: cargo build --release --all-features

# Generate coverage for TLS-enabled builds - only run when Rust code changes
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -131,3 +131,5 @@ megalinter-reports/
# Local Claude configuration
.claude.local.md
.claude/*.local.md

.taskmaster/
5 changes: 5 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,11 @@ pub struct Cli {
- Checks: fmt, clippy strict, tests, benchmarks
- Security: Dependency scanning, SLSA (Enterprise)

### Security Scanners

- **zizmor**: GitHub Actions permissions - add explicit `permissions:` block to workflows
- **CodeQL rust/cleartext-logging**: Don't interpolate sensitive values in assert messages

### Code Review

- Primary tool: coderabbit.ai
Expand Down
5 changes: 3 additions & 2 deletions Cargo.lock

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

1 change: 1 addition & 0 deletions daemoneye-lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ prost-build = { workspace = true }
[dev-dependencies]
assert_cmd = { workspace = true }
criterion = { workspace = true }
insta = { workspace = true }
predicates = { workspace = true }
proptest = { workspace = true }

Expand Down
Loading
Loading