Skip to content
Open
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
7a5bae3
docs(ebpf): add architecture design for eBPF template engine
claude Nov 8, 2025
c482b11
feat(ebpf): implement class-based eBPF template engine
claude Nov 8, 2025
ce2590b
fix(ebpf): use bpf_l4_csum_replace for UDP checksum updates
claude Nov 8, 2025
b27f55a
ci: improve GitHub Actions workflow for eBPF tests
claude Nov 8, 2025
b042d79
docs: add comprehensive progress summary for issue #131
claude Nov 8, 2025
00cba21
test(ebpf): add Docker-based BCC compilation tests and CI
claude Nov 8, 2025
e206c1d
docs: update PROGRESS.md with Docker/BCC testing infrastructure
claude Nov 8, 2025
39247ac
feat(ebpf): replace sqredirect with template engine integration
claude Nov 8, 2025
21297ed
docs: update PROGRESS.md to reflect completed implementation
claude Nov 8, 2025
35316df
fix(ebpf): use sqredirect's tc attachment approach
claude Nov 8, 2025
27db41d
refactor: address PR #133 code review comments
claude Nov 8, 2025
68cdaae
refactor(ebpf): add async-based EBPFRedirector class and address code…
claude Nov 8, 2025
13dc458
refactor: address additional code review comments
claude Nov 8, 2025
310fe6b
refactor: split epbf.py into smaller, focused modules
claude Nov 8, 2025
70b864b
refactor: address PR code review comments
claude Nov 8, 2025
792d784
refactor: address final code review comments
claude Nov 9, 2025
3f09662
docs: add comprehensive v3.0.0 documentation for internal eBPF implem…
claude Nov 9, 2025
293f137
docs: add comprehensive MkDocs Material documentation
claude Nov 17, 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
85 changes: 85 additions & 0 deletions .github/workflows/ebpf-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# GitHub Actions workflow for eBPF integration tests
#
# This workflow tests BPF code generation and compilation using Docker and BCC.

name: eBPF Integration Tests

on:
pull_request:
paths:
- 'source_query_proxy/ebpf/**'
- 'tests/test_ebpf_*.py'
- 'tests/docker/**'
- '.github/workflows/ebpf-tests.yml'

push:
branches: [master]
paths:
- 'source_query_proxy/ebpf/**'
- 'tests/test_ebpf_*.py'
- 'tests/docker/**'

jobs:
ebpf-compilation:
name: eBPF Compilation Tests
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build BPF test image
run: |
docker build \
-t sqproxy-bpf-test:latest \
-f tests/docker/Dockerfile.bpf-test \
.

- name: Run eBPF code generation tests
run: |
docker run --rm sqproxy-bpf-test:latest \
python3 -m pytest tests/test_ebpf_generation.py -v --tb=short

- name: Run eBPF compilation tests with BCC
run: |
docker run --rm sqproxy-bpf-test:latest \
python3 -m pytest tests/test_ebpf_compilation.py -v --tb=short

- name: Run all eBPF tests with coverage
run: |
docker run --rm sqproxy-bpf-test:latest \
python3 -m pytest tests/test_ebpf_*.py \
--cov=source_query_proxy.ebpf \
--cov-report=term \
-v

docker-compose-test:
name: Docker Compose Integration Test
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Run docker-compose tests
run: |
cd tests/docker
docker-compose -f docker-compose.bpf-test.yml up \
--build \
--abort-on-container-exit \
--exit-code-from bpf-compile-test

- name: Show container logs on failure
if: failure()
run: |
cd tests/docker
docker-compose -f docker-compose.bpf-test.yml logs

- name: Cleanup
if: always()
run: |
cd tests/docker
docker-compose -f docker-compose.bpf-test.yml down -v
37 changes: 36 additions & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,34 @@ on:
branches: [master]

jobs:
lint:
name: Code quality checks
runs-on: ubuntu-latest

steps:
- name: Checkout changes
uses: actions/checkout@v2

- name: Set up Python 3.11
uses: actions/setup-python@v2
with:
python-version: "3.11"

- name: Install dependencies
run: |
python -m pip install --upgrade pip poetry
poetry config virtualenvs.create false
poetry install --no-root
rm -rf $(python3 -c 'import sysconfig; print(sysconfig.get_paths()["purelib"])')/tests

- name: Lint with flake8
run: |
python -m flake8 --jobs 4 --statistics --show-source source_query_proxy tests

- name: Check code formatting with black
run: |
python -m black --target-version=py38 --skip-string-normalization --line-length=120 --check source_query_proxy tests

tests:
name: test with Py${{ matrix.python-version }}

Expand Down Expand Up @@ -41,4 +69,11 @@ jobs:

- name: Test with pytest
run: |
python -m pytest
python -m pytest --cov=source_query_proxy --cov-report=xml --cov-report=term -v

- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
if: matrix.python-version == '3.11'
with:
file: ./coverage.xml
fail_ci_if_error: false
Loading
Loading