Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .github/workflows/hil_testing_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ jobs:
luxonis_os_versions_to_test: "['1.44.0']"
luxonis_os_versions_to_test_usb: "['1.44.0']"
usb_link_speed_sanity: true
enable_eeprom_tests: true
secrets:
CONTAINER_REGISTRY: ${{ secrets.CONTAINER_REGISTRY }}
HIL_PAT_TOKEN: ${{ secrets.HIL_PAT_TOKEN }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/hil_testing_pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
job_prefix: "pr-approved"
rvc2_protocol: "usb"
luxonis_os_versions_to_test: "['1.44.0']"
enable_eeprom_tests: true
secrets:
CONTAINER_REGISTRY: ${{ secrets.CONTAINER_REGISTRY }}
HIL_PAT_TOKEN: ${{ secrets.HIL_PAT_TOKEN }}
Expand Down
36 changes: 35 additions & 1 deletion .github/workflows/test_child.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,10 @@ on:
required: false
type: string
default: "[]"
enable_eeprom_tests:
required: false
type: boolean
default: false
secrets:
CONTAINER_REGISTRY:
required: true
Expand Down Expand Up @@ -211,9 +215,39 @@ jobs:
path: rvc4_rgb_test_output.log
if-no-files-found: warn

# CCM/CBA EEPROM tests run on the lightroom testbed, once per camera model there.
# hil_runner powers off the testbed's other camera and, without --rvc4-os-version,
# updates the selected one to the latest sBOM OS. The rig's OAK4 Lite has no factory
# calibration, so hil's calibration and stereo-pair sanity checks are skipped.
linux_rvc4_eeprom_test:
needs: [build_docker_container]
if: inputs.enable_eeprom_tests
strategy:
matrix:
model: [oak4_lite_poe, oak4_ffc]
fail-fast: false
runs-on: ['self-hosted', 'testbed-runner']
steps:
- uses: actions/checkout@v7

- name: Run RVC4 EEPROM tests
run: |
source scripts/hil/prepare_hil_framework.sh ${{ secrets.HIL_PAT_TOKEN }}
export RESERVATION_NAME="https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID#rvc4-${{ matrix.model }}-${{ inputs.job_prefix || inputs.flavor }}-eeprom"
set -o pipefail
hil_runner --scope lightroom --models "${{ matrix.model }}" --sanity no-camera-calibration no-camera-stereo-pairs --reservation-name $RESERVATION_NAME --wait --docker-image ${{ secrets.CONTAINER_REGISTRY }}/depthai-core-hil:${{ needs.build_docker_container.outputs.tag }} --commands "export DEPTHAI_TELEMETRY_URL='${{ secrets.CI_TELEMETRY_URL }}'; export DEPTHAI_TELEMETRY_API_KEY='${{ secrets.CI_TELEMETRY_API_KEY }}'; ./tests/run_tests_entrypoint.sh rvc4eeprom --test-label \"${{ inputs.test_label }}\"" 2>&1 | tee rvc4_eeprom_test_output.log

- name: Upload test log
if: always()
uses: actions/upload-artifact@v7
with:
name: ctest-log-${{ inputs.job_prefix || inputs.flavor }}-linux_rvc4_eeprom_test-model=${{ matrix.model }}
path: rvc4_eeprom_test_output.log
if-no-files-found: warn

report_linux_test_results:
name: Report Linux test results (${{ inputs.job_prefix || inputs.flavor }})
needs: [linux_rvc2_test, linux_rvc4_test,linux_rvc4_usb_test, linux_rvc4_rgb_test]
needs: [linux_rvc2_test, linux_rvc4_test,linux_rvc4_usb_test, linux_rvc4_rgb_test, linux_rvc4_eeprom_test]
# Skip the report when the run was cancelled (by a user or by concurrency).
# Keep it for crashes, failures and job timeouts.
if: ${{ !cancelled() }}
Expand Down
5 changes: 5 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -714,6 +714,11 @@ dai_set_test_labels(dynamic_calibration_onhost_test onhost)
dai_add_test(flash_eeprom_fields_test src/ondevice_tests/flash_eeprom_fields_test.cpp)
dai_set_test_labels(flash_eeprom_fields_test ondevice rvc2_all rvc4)

# Camera module (CCM) and camera board (CBA) EEPROM access, including cameras sharing an I2C bus (RVC4 only)
dai_add_test(camera_eeprom_test src/ondevice_tests/camera_eeprom_test.cpp)
dai_set_test_labels(camera_eeprom_test ondevice rvc4eeprom ci noreplayci)
set_property(TEST camera_eeprom_test APPEND PROPERTY ENVIRONMENT "DEPTHAI_ALLOW_FACTORY_FLASHING=868632271")

# Neural network test
if(DEPTHAI_FETCH_ARTIFACTS)
dai_add_test(neural_network_test src/ondevice_tests/neural_network_test.cpp)
Expand Down
15 changes: 14 additions & 1 deletion tests/run_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,13 @@ def compute_or_result(results):
action="store_true",
required=False,
)


parser.add_argument(
"--rvc4eeprom",
action="store_true",
required=False,
)

parser.add_argument(
"--rvc4usb",
action="store_true",
Expand Down Expand Up @@ -239,6 +245,11 @@ def compute_or_result(results):
"env": {"DEPTHAI_PLATFORM": "rvc4", "DEPTHAI_PROTOCOL": "tcpip"},
"labels": ["rvc4rgb"],
},
{
"name": "RVC4 - EEPROM",
"env": {"DEPTHAI_PLATFORM": "rvc4", "DEPTHAI_PROTOCOL": "tcpip"},
"labels": ["rvc4eeprom"],
},
{
"name": "RVC2 - USB",
"env": {"DEPTHAI_PLATFORM": "rvc2", "DEPTHAI_PROTOCOL": "usb"},
Expand Down Expand Up @@ -273,6 +284,8 @@ def compute_or_result(results):
test_configs = [config for config in all_configs if "rvc2" in config.get("labels", []) or "onhost" in config.get("labels", [])]
elif args.rvc4rgb:
test_configs = [config for config in all_configs if "rvc4rgb" in config.get("labels", [])]
elif args.rvc4eeprom:
test_configs = [config for config in all_configs if "rvc4eeprom" in config.get("labels", [])]
elif args.fsync:
enableUARTonAllDevices(False)
atexit.register(enableUARTonAllDevices, True)
Expand Down
Loading
Loading