- Acronyms, Terms and Abbreviations
- Description
- Reference Documents
- How to build the test suite
- Notes
- Manual way of running the L1 and L2 test cases
- Setting Python environment for running the L1 L2 and L3 automation test cases
L1
- Functional TestsL2
- Module functional TestingL3
- Module testing with External Stimulus is required to validate and control deviceHAL
- Hardware Abstraction LayerAPI
- Application Programming InterfaceDS
- Device SettingsFPD
- Front Panel DisplayHDMIIn
- HDMI InputCompositeIn
- Composite InputHigh-Level Test Specification
: These specification will provide a broad overview of the system's functionality from the callers' perspective. It focuses on major use cases, system behavior, and overall caller experience.Low-Level Test Specification
: These specification will deeper into the technical details. They will define specific test cases with inputs, expected outputs, and pass/fail criteria for individual functionalities, modules, or APIs.NA
- Not Applicable
This repository contains the Unit Test Suites (L1
, L2
and L3
) for the following submodules of Device Settings HAL
:
DS
AudioHAL
DS
Video DeviceHAL
DS
Video PortHAL
DS
DisplayHAL
DS
Front Panel DisplayHAL
DS
HostHAL
DS
HDMI InputHAL
DS
Composite InputHAL
SNo | Document Name | Document Description | Document Link |
---|---|---|---|
1 | Device Settings HAL |
This document provides specific information on each DS sub-module's APIs for which tests are written in this module |
DS HAL Guide |
2 | DS Audio Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS Audio module. |
Refer dsAudio |
3 | DS Video Device Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS Video Device module. |
Refer dsVideoDevice |
4 | DS Video Port Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS Video Port module. |
Refer dsVideoPort |
5 | DS Display Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS Display module. |
Refer dsDisplay |
6 | DS Front Panel Display Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS Front Panel Display module. |
Refer dsFPD |
7 | DS Host Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS Host module. |
Refer dsHost |
8 | DS HDMI Input Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS HDMI Input module. |
Refer dsHdmiIn |
9 | DS Composite Input Test Suits Specifications |
L1 ,L2 ,L3 Test Specification Documentation for DS Composite Input module. |
Refer dsCompositeIn |
- All APIs in each individual sub-module need to be implemented in this current version. If any API is not supported, please add stub implementation with return type dsERR_OPERATION_NOT_SUPPORTED for the same.
- Building against the actual library may introduce SOC dependencies. Hence, a template SKELETON library is created without SOC dependencies. On the real platform (target), it can be mounted, copied and bound with the actual library.
- When executing the binary, ensure to include a platform-specific profile file as an argument for the designated test cases. The following example illustrates this:
In order to build the test suits, there is a requirement to supply the toolchain, either as a vendor independent toolchain, an SDK, or an RDK Docker Toolchain .
For more information about RDK Docker Toolchain, please check RDK Docker Toolchain
- Export the Toolchain Path:
export TOOLCHAIN_PATH=/opt/toolchains/rdk-glibc-x86_64/sysroots/armv7at2hf-neon-rdk-linux-gnueabi
export CC="arm-rdk-linux-gnueabi-gcc -march=armv7-a -mthumb -mfpu=neon -mfloat-abi=hard --sysroot=$TOOLCHAIN_PATH"
- Clone the
HAL
Repository:
git clone [email protected]:rdkcentral/rdk-halif-device_settings.git
- Set Project Version:
If you want to build the test repository with a specific tag or branch, set the UT_PROJECT_VERSION variable accordingly. If not set, the default main branch will be used.
export UT_PROJECT_VERSION=1.0.1 # Build using a specific tag
or
export UT_PROJECT_VERSION=develop # Build using a specific branch
- Build Targets:
There are two targets for the platform
- linux - (default)
- arm - TARGET=arm
build_ut.sh TARGET=arm
build_ut.sh
script will clone the hal-test repo, ut-core and generate ahal_test_dshal
binary inut/bin/
upon successful completion.
./hal_test_dshal -p Sink_AudioSettings.yaml
Alternatively, use the run.sh script with the profile file:
./run.sh -p /absolute/path/to/profile/file
- Profiles files defines the configuration for the platform available for sink and source
DS Module |
Sink Profile yaml | Source Profile yaml |
---|---|---|
dsAudio | Sink_AudioSettings.yaml | Source_AudioSettings.yaml |
dsDisplay | Sink_4K_Display.yaml | Source_4K_Display.yaml |
dsFPD | Sink_FPD.yaml | Source_FPD.yaml |
dsHost | Sink_HostSettings.yaml | Source_HostSettings.yaml |
dsCompositeIn | Sink_CompositeInput.yaml | NA |
dsHdmiIn | Sink_HDMIIN.yaml | Source_HDMIIN.yaml |
dsVideoDevice | Sink_2K_VideoDevice.yaml Sink_4K_VideoDevice.yaml | Source_VideoDevice.yaml |
dsVideoPort | Sink_4K_VideoPort.yaml | Source_4K_VideoPort.yaml |
- For running the
L1
L2
andL3
test suite, a host PC or server with a Python environment is required. - Install Python Environment and Activation Scripts as detailed in the HPK Documentation
- To run the
L1
andL2
test cases ofDS
sub-modules follow the "L1
L2
TestProcedure docs". And, to run theL3
test cases ofDS
sub-modules follow the "L3
TestProcedure docs" mentioned in below table.