Skip to content

flood: move the BLE load generator out to ESPresense/ble-loadgen - #10

Merged
DTTerastar merged 1 commit into
mainfrom
hil/flood-in-pipeline
Aug 1, 2026
Merged

flood: move the BLE load generator out to ESPresense/ble-loadgen#10
DTTerastar merged 1 commit into
mainfrom
hil/flood-in-pipeline

Conversation

@DTTerastar

@DTTerastar DTTerastar commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

The BLE flood shares nothing with firmware-tester — no PlatformIO, no serial, no toolchain, just Python stdlib and a raw HCI socket. It now lives in its own repo, ESPresense/ble-loadgen, with its own tiny image (ghcr.io/espresense/ble-loadgen:1, released v1.0.0), and runs as a detached step in the HIL pipeline.

What this removes

  • scripts/ble_flood.py
  • bench/ble-flood.service (the host systemd unit — which was never installed, so it never actually flooded)
  • bench/README.md (host setup for the above)

What stays

scripts/hil_monitor.py — the DUT-side heap-trend detection is this repo's job and is unaffected.

Companion: ESPresense/ESPresense#2432 points the HIL flood step at the new ble-loadgen:1 image. No v1.0.x firmware-tester tag needed for this — it only deletes files.

@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

Changes

BLE flooding execution and deployment

Layer / File(s) Summary
Continuous flood execution
scripts/ble_flood.py
BLE flooding no longer uses request files or stale-request checks. The script continuously rotates advertisements until stopped or --seconds expires. Self-test options and startup wiring were updated.
Pipeline deployment and bench setup
Dockerfile, bench/README.md, bench/ble-flood.service
The image includes the flood script. Bench documentation now describes detached pipeline execution with host networking, USB adapter access, and disabled BlueZ. The systemd service and request-file workflow were removed.

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title identifies the BLE load generator change but does not clearly state the main transition from systemd to a detached HIL pipeline step.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hil/flood-in-pipeline

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@bench/README.md`:
- Around line 13-27: Update the detached firmware-tester step configuration in
.woodpecker/hil.yml to grant CAP_NET_ADMIN via NET_ADMIN, and revise this
README’s host/setup requirements to document that capability requirement for
scripts/ble_flood.py’s HCI_CHANNEL_USER bind.

In `@scripts/ble_flood.py`:
- Around line 15-20: Update the HIL detached pipeline invocation for
ble_flood.py to use the absolute command python3 /scripts/ble_flood.py, or
explicitly add /scripts to PATH before starting it; preserve the existing
arguments and execution modes.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 8334484d-f0a2-4208-9779-caf285b70103

📥 Commits

Reviewing files that changed from the base of the PR and between 4c4ca9c and 2d7505d.

📒 Files selected for processing (4)
  • Dockerfile
  • bench/README.md
  • bench/ble-flood.service
  • scripts/ble_flood.py
💤 Files with no reviewable changes (1)
  • bench/ble-flood.service

Comment thread bench/README.md Outdated
Comment thread scripts/ble_flood.py Outdated
The flood shares nothing with firmware-tester (no PlatformIO, no serial, no toolchain) —
it's pure stdlib and a raw HCI socket. It now lives in its own repo with its own tiny
image, ghcr.io/espresense/ble-loadgen, and runs as a detached step in the HIL pipeline.

Remove ble_flood.py and bench/ (the host systemd service and its README) from here. The
DUT-side heap-trend detection stays in hil_monitor.py — that's this repo's job.
@DTTerastar
DTTerastar force-pushed the hil/flood-in-pipeline branch from 2d7505d to 3668b8d Compare August 1, 2026 21:37
@DTTerastar DTTerastar changed the title flood: run in the pipeline, not a host systemd service flood: move the BLE load generator out to ESPresense/ble-loadgen Aug 1, 2026
@DTTerastar
DTTerastar merged commit 85db11f into main Aug 1, 2026
2 checks passed
@DTTerastar
DTTerastar deleted the hil/flood-in-pipeline branch August 1, 2026 21:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant