test(int): RF mode/profile matrix integration tests (HIL rung 6) - #474
Merged
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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. Comment |
Adds rf_profile_matrix_test.py covering HIL regression rung 6: - TX/RX profile sweeps P0->P1->P2->P3 and back (ProfileChanged asserted, no ConfigurationFailed/InvalidProfile, board commandable throughout) - CONTINUOUS_WAVE with clean restore to RX (complements the issue-#207 regression test by exercising a post-CW RX reconfig) - profile-switch-as-first-post-wake command hammer (SX126x wakeup-race shape; cycle count/idle env-overridable for bench hammer runs) - post-idle (>=90 s) profile switch sanity - two-board profile-pairing downlink/uplink tests (new two_board_rf marker; self-skip unless USP_GROUND_* env hooks are configured) All tests are uart_only (profile switches sever the RF link) so they run in the integration-uart job and are excluded from integration-radio. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…gression - PROFILE_SWEEP / PROFILE_IDS now cover P4_GFSK_75K and P5_GMSK_83K (profile table v2, validated on the bench in Phase B) - New test_08_gfsk_wedge_kill_recipe: healthy P0 traffic -> brief idle -> P0->P4/P5 switch -> immediate TX, asserting no SendFailed/ ConfigurationFailed and BytesSent channel movement at the target profile and after return to P0 (regression for the Phase B anomaly-B SX126x active-RX SetTx wedge, fixed in fprime-zephyr PR #21) - Repeat count / idle window parameterized via RF_WEDGE_KILL_CYCLES / RF_WEDGE_IDLE_S (defaults CI-small) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mikefly123
force-pushed
the
test/rf-profile-matrix-int
branch
from
July 27, 2026 00:33
3caf3f5 to
963be35
Compare
Mikefly123
marked this pull request as ready for review
July 27, 2026 00:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Codifies the RF mode/profile matrix (rung 6 of
logs/HIL-REGRESSION-PLAN-fork-migration.md, evidence inlogs/HIL-REGRESSION-REPORT-phaseA.md) as repeatable F´ integration tests inPROVESFlightControllerReference/test/int/rf_profile_matrix_test.py:test_01_tx_profile_sweepuart_onlytest_02_rx_profile_sweepuart_onlytest_03_continuous_wave_restore_to_rxuart_onlytest_04_post_wake_profile_switch_hammeruart_onlytest_05_post_idle_profile_switchuart_onlytest_06_two_board_pairing_downlinkuart_only,two_board_rftest_07_two_board_pairing_uplinkuart_only,two_board_rfAll tests are
uart_only(profile switches sever any RF GDS link) → they run inintegration-uartand are excluded fromintegration-radio. Thetwo_board_rftests (new marker inpytest.ini) self-skip unless theUSP_GROUND_*env hooks are configured, so CI is unaffected.Runtime knobs (defaults CI-sane):
RF_PROFILE_HAMMER_CYCLES(5; use 100 for a bench hammer),RF_PROFILE_WAKE_IDLE_S(3),RF_PROFILE_LONG_IDLE_S(90),USP_GROUND_DATA_TTY/USP_GROUND_CMD/USP_GROUND_UPLINK_CMDfor the two-board setup.Bench validation (2026-07-23, macOS HIL bench)
Flight v5e on fork-branch build (banner e008def5f20e), ground board on GRC-USP firmware; GDS =
fprime_gds.executables.common/dev/cu.usbmodem21201withauthenticate-space-data-linkframing, seq counters aligned.hil_sender.pywrapper against the GRC GDS).LastRssiupdated at all four pairings (ground TX profile + bypass NO_OP sent through a GDS on the ground data CDC).reset runwith no host port open; not reproduced on the passing retry (0 serial exceptions). Logged as a watch item — same family as the known device_next CDC OUT-endpoint wedge.Do not merge — draft for review on top of #439.
🤖 Generated with Claude Code