Skip to content

test: add hardware-independent libuvc regression gate - #5

Merged
andrescera merged 1 commit into
mainfrom
fix/f2-libuvc-regression-gate
Jul 15, 2026
Merged

test: add hardware-independent libuvc regression gate#5
andrescera merged 1 commit into
mainfrom
fix/f2-libuvc-regression-gate

Conversation

@andrescera

Copy link
Copy Markdown
Member

What

  • Add a hardware-independent CTest regression suite for descriptor parsing, H.264/H.265 negotiation, and stream transfer/error handling.
  • Wire the regression suite into CI with exact test-inventory validation and JUnit output.
  • Replace the local .omo changelog citation with repo-contained evidence and update README guidance.

Why

The previous CI path built libuvc with BUILD_TEST=OFF and only checked source text, so high-risk parser and streaming regressions could pass without executing assertions. This adds a real camera-free gate that runs in GitHub Actions.

How to verify

cmake -S . -B build/regression \
  -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
  -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_BUILD_TARGET=Static \
  -DBUILD_SHARED_LIBS=OFF \
  -DBUILD_EXAMPLE=OFF \
  -DBUILD_TEST=OFF \
  -DBUILD_TESTING=ON
cmake --build build/regression --parallel
ctest --test-dir build/regression --show-only=json-v1 | jq -e '.tests | length == 13'
ctest --test-dir build/regression --output-on-failure

Additional local checks run before opening:

actionlint .github/workflows/build.yml

Risks

  • The new regression tests are Linux/GNU-linker focused because they use linker wrapping around libusb calls. CI runs them on Ubuntu 22.04 and 24.04.
  • The suite is intentionally camera-free. It covers parser, negotiation, and callback error paths, but not physical USB timing or real-device interoperability.

@andrescera
andrescera merged commit 3d19246 into main Jul 15, 2026
2 checks passed
@andrescera
andrescera deleted the fix/f2-libuvc-regression-gate branch July 15, 2026 01:09
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