ecu-tests/tests/test_babylin_hardware_smoke.py

34 lines
1.2 KiB
Python

import pytest
# Mark entire module as hardware + babylin so it's easy to select/deselect via -m
pytestmark = [pytest.mark.hardware, pytest.mark.babylin]
def test_babylin_connect_receive_timeout(lin):
"""
Title: BabyLIN Hardware Smoke - Connect and Timed Receive
Description:
Minimal hardware sanity check that relies on the configured fixtures to
connect to a BabyLIN device and perform a short receive call.
The test is intentionally permissive: it accepts either a valid LinFrame
or a None (timeout) as success, focusing on verifying that the adapter
is functional and not crashing.
Requirements: REQ-HW-SMOKE
Test Steps:
1. Use the 'lin' fixture to connect to the BabyLIN SDK adapter
2. Call receive() with a short timeout
3. Assert the outcome is either a LinFrame or None (timeout)
Expected Result:
- No exceptions are raised
- Return value is None (timeout) or an object with an 'id' attribute
"""
# Step 2: Perform a short receive to verify operability
rx = lin.receive(timeout=0.2)
# Step 3: Accept either a timeout (None) or a frame-like object
assert rx is None or hasattr(rx, "id")