Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
8dce4b9
Add mockall dependency and comprehensive TablePlugin tests
withzombies Dec 8, 2025
f73b86e
Extract OsqueryClient trait and add Server mock tests
withzombies Dec 8, 2025
bcadd5b
Add server.rs infrastructure tests for cleanup_socket, notify_plugins…
withzombies Dec 8, 2025
1fd84f6
Add testcontainers infrastructure for Docker integration tests
withzombies Dec 8, 2025
7ab6bc2
Add ThriftClient integration tests with graceful skip
withzombies Dec 8, 2025
ed6f32c
Add integration test infrastructure and comprehensive unit tests
withzombies Dec 8, 2025
b3c7b8c
Add query() and get_query_columns() to OsqueryClient trait
withzombies Dec 8, 2025
138084f
Add test_query_osquery_info integration test
withzombies Dec 8, 2025
14657e9
Add test_server_lifecycle integration test
withzombies Dec 8, 2025
3fab377
Add test_table_plugin_end_to_end integration test
withzombies Dec 8, 2025
7160736
Add Docker osquery setup to coverage workflow
withzombies Dec 8, 2025
e192ee3
Add local coverage convenience script
withzombies Dec 8, 2025
a49721f
Add OsqueryContainer for testcontainers integration
withzombies Dec 9, 2025
9b21b90
Add socket bind mount support to OsqueryContainer
withzombies Dec 9, 2025
fdd2faa
Enhance integration testing infrastructure with logger/config plugin …
withzombies Dec 9, 2025
3c162b3
Add Docker image for in-container extension testing
withzombies Dec 9, 2025
ca0c671
Add feature flags to control integration test compilation
withzombies Dec 9, 2025
f231ece
Migrate CI integration tests to Docker-based approach
withzombies Dec 9, 2025
1e3c5bc
Simplify pre-commit hook and close epic
withzombies Dec 9, 2025
5eff6d8
Add snapshot logging test with faster Docker polling
withzombies Dec 9, 2025
a427390
Replace fixed sleeps with active extension polling in tests
withzombies Dec 9, 2025
5873488
Make logger test assert on specific osquery core messages
withzombies Dec 9, 2025
85a8c08
Make config test verify actual query content, not just existence
withzombies Dec 9, 2025
2cc8f2a
Use canary schedule to verify config plugin works end-to-end
withzombies Dec 9, 2025
d3d8e13
Add CRUD integration test for writeable_table extension
withzombies Dec 9, 2025
d9df8bd
Use Docker testcontainers for coverage measurement
withzombies Dec 10, 2025
2cd45c7
Install osquery in CI for instrumented coverage
withzombies Dec 10, 2025
2896ff4
Fix CI: run all tests inside Docker container with osquery
withzombies Dec 10, 2025
4130893
Remove Docker-based test infrastructure
withzombies Dec 10, 2025
56a9480
Consolidate CI workflows into single ci.yml with native osquery
withzombies Dec 10, 2025
5f04558
Fix CI: correct extension binary paths for workspace members
withzombies Dec 10, 2025
723926b
Add --allow_unsafe flag for CI extension loading
withzombies Dec 10, 2025
7ded402
Add .ext symlinks for osquery extension autoloading
withzombies Dec 10, 2025
fd922fa
Use sudo -E to preserve env vars for extensions
withzombies Dec 10, 2025
33b5628
Fix CI: set FILE_LOGGER_PATH env var for logger extension
withzombies Dec 10, 2025
f2a58db
Fix CI: combine osqueryd startup and tests into single step
withzombies Dec 10, 2025
fd59d0d
Add CI test script with osqueryd/osqueryi dual mode
withzombies Dec 10, 2025
060fb8c
Bump
withzombies Dec 10, 2025
2ec4108
Make coverage collection cross platform
withzombies Dec 10, 2025
7ae5973
Trigger CI
withzombies Dec 10, 2025
723a3e3
Fix CI cleanup: kill osqueryd by name not tee PID
withzombies Dec 10, 2025
ea42862
Fix extension registration check: use log grep instead of osqueryi
withzombies Dec 10, 2025
773ba75
Fix README badges: update CI workflow name and coverage link
withzombies Dec 10, 2025
705f191
Delete beads and extra md files
withzombies Dec 10, 2025
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
16 changes: 16 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Ignore local build artifacts
target/

# Ignore git directory
.git/

# Ignore IDE files
.idea/
.vscode/

# Ignore test artifacts
*.log
coverage/

# Ignore Docker build context waste
.dockerignore
84 changes: 61 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,77 @@
name: Rust CI
name: CI

on:
push:
branches:
- main
branches: [main]
pull_request:
types:
- opened
- synchronize
- reopened
branches: [main]

jobs:
build-and-test:
name: Build and Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0

jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 1

- name: Set up Rust Toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy

- name: Build Project
run: cargo build --release --verbose
- name: Check formatting
run: cargo fmt --all -- --check

- name: Run clippy
run: cargo clippy --all-features -- -D warnings

- name: Build
run: cargo build --all-features

test:
name: Test & Coverage
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: stable
components: llvm-tools-preview

- uses: taiki-e/install-action@cargo-llvm-cov

- name: Run Tests
run: cargo test --all-features --verbose
- name: Install osquery
run: |
wget -q https://github.com/osquery/osquery/releases/download/5.20.0/osquery_5.20.0-1.linux_amd64.deb
sudo dpkg -i osquery_5.20.0-1.linux_amd64.deb
osqueryi --version

- name: Build workspace
run: cargo build --workspace

- name: Run coverage with osquery
id: coverage
run: ./scripts/ci-test.sh --coverage

- name: Update coverage badge
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
uses: schneegans/[email protected]
with:
auth: ${{ secrets.GIST_TOKEN }}
gistID: 36626ec8e61a6ccda380befc41f2cae1
filename: coverage.json
label: coverage
message: ${{ steps.coverage.outputs.coverage }}%
valColorRange: ${{ steps.coverage.outputs.coverage }}
maxColorRange: 100
minColorRange: 0
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ osquery-rust.iml

/examples/*/target

/Cargo.lock
/target

/thrift/Cargo.lock
Expand Down
Loading