- Overview
- Acronyms, Terms and Abbreviations
- References
- Level 3 Test cases High Level Overview
- Level 3 Python Test Cases High Level Overview
This document describes the L3 Low Level Test Specification and Procedure Documentation for the Device Settings HdmiIn module.
HAL
- Hardware Abstraction Layer, may include some common componentsUT
- Unit Test(s)OEM
- Original Equipment ManufactureSoC
- System on a ChipHDMI
- High-Definition Multimedia InterfaceHDR
- High Dynamic RangeHLG
- Hybrid Log-GammaSDR
- Standard Dynamic RangeEDID
- Extended Display Identification DataALLM
- Auto Low Latency ModeAVI
- Audio Video InterleaveSPD
- Source Product Descriptor
High Level Test Specification
- dsHdmiIn High Level TestSpecInterface header
- dsHdmiIn HAL header
# | Streams Name | Streams description |
---|---|---|
1 | vts_HDR10_stream | Format: HDR10,Resolution: 3840 x 2160 (4K UHD),Color Depth: 10-bit,Color Space: Rec. 2020 |
2 | vts_SDR_stream | Format: SDR,Resolution: 1920 x 1080 |
3 | vts_HLG_stream | Format: HLG,Resolution: 3840 x 2160 or It can also be used with 1080p and 720p resolutions. |
4 | vts_DolbyVision_stream | Format: Dolby Vision,Resolution: 3840 x 2160 (4K UHD),Color Depth: 10/12-bit,Color Space: Rec. 2020format and dynamic metadata. |
5 | vts_HDR10plus_stream | Format: HDR10,Resolution: 3840 x 2160 (4K UHD),Color Depth: 10-bit,Color Space: Rec. 2020 and dynamic metadata capabilities. |
Each test case need to verify with the each HdmiIn port. Below are top test use-case for the HdmiIn port.
# | Test-case | Description | Focus APIs | Source | Sink |
---|---|---|---|---|---|
1 | Verify the HdmiIn Connect status with callback | Connect or Disconnect HdmiInput device on each of the HdmiInput ports and check the hdmiInConnectCB callback is triggered | dsHdmiInRegisterConnectCB() |
Y |
Y |
2 | Verify the HdmiIn Signal change with callback | Select the HdmiInput port and check the callback is triggered when the change in signal status occurs(i.e like no signal , unstable signal, stable signal | dsHdmiInRegisterSignalChangeCB() |
NA |
Y |
3 | Verify the HdmiIn Status change with callback | Select the HdmiInput port and check the callback is triggered when the status change occurs(i.e like isPresented, activeport) and check the callbacks is triggered | dsHdmiInRegisterStatusChangeCB() |
NA |
Y |
4 | Verify the HdmiIn Video Mode update with callback | Select the Hdminput device with different resolutions , aspect ratio and check the callbacks is triggered and outputs the same resolution , aspect ratio | dsHdmiInRegisterVideoModeUpdateCB() |
NA |
Y |
5 | Verify the HdmiIn ALLM change with callback |
Change the ALLM option to TRUE/FALSE after connecting game controller on 4k supported panel and check the callbacks is triggered when the ALLM status change occurs |
dsHdmiInRegisterAllmChangeCB() |
NA |
Y |
6 | Verify the HdmiIn Audio Video lateny with callback | Select the Hdminput device with available resolutions (like HDR ,HLG ,DolbyVision ,SDR ,...) and check the callbacks is triggered when there is latency change |
dsHdmiInRegisterAVLatencyChangeCB() |
NA |
Y |
7 | Verify the HdmiIn AVI content change with callbacks |
Play the streams from Hdminput device with differenct formats(like GRAPHICS ,PHOTO ,CINEMA ,GAME ,...) and check the callbacks is triggered when there is AVI content change |
dsHdmiInRegisterAviContentTypeChangeCB() |
NA |
Y |
8 | Get HdmiIn status of the selected port | Select the HdmiInput and verify the status whether selected port active or not | dsHdmiInSelectPort() ,dsHdmiInGetStatus() |
Y |
Y |
9 | Scale HdmiIn video of the selected port | Select the HdmiInput and scale the video on the selcted port verify video scaled or not | dsHdmiInScaleVideo() |
Y |
Y |
10 | Check and verify Zoom mode selected | Select the Zoom mode from the available inputs and verify its set or not | dsHdmiInSelectZoomMode() |
Y |
NA |
11 | Get and verify the EDID of selected port |
Select the HdmiInput and get the EDID for that particular Input port |
dsGetEDIDBytesInfo() |
NA |
Y |
12 | Get and verify the SPD info of selected port |
Select the HdmiInput and get the SPD info for that particular Input port |
dsGetHDMISPDInfo() |
NA |
Y |
13 | Set and verify the EDID version on selected port |
Set the EDID version and verify by retrieving the EDID version |
dsSetEdidVersion() ,dsGetEdidVersion() |
NA |
Y |
14 | Set and verify EDID to ALLM support on selected port |
Set and retrieve ALLM on selected port connected with game controller on 4k supported panel |
dsSetEdid2AllmSupport() ,dsGetEdid2AllmSupport() |
NA |
Y |
The class diagram below illustrates the flow of dsHdmiIn L3 Python test cases:
---
title: dsHdmiIn - Python Class Flow
---
classDiagram
testControl <|-- ut_raft : inherits
class ut_raft{
}
ut_raft <|-- L3_TestClasses : inherits
L3_TestClasses ..> dsHdmiIn : uses
note for testControl "uses rackConfig.yaml and deviceConfig.yaml"
note for dsHdmiIn "uses platformProfile.yaml"
note for L3_TestClasses "uses testSetupConfig.yaml"
note for ut_raft "suite Navigator uses testSuite.yaml"
- testControl
- Test Control Module for running rack Testing. This module configures the
DUT
based on the rack configuration file provided to the test. - This class is defined in
RAFT
framework. For more details refer RAFT
- Test Control Module for running rack Testing. This module configures the
- ut_raft
- Python based testing framework for writing engineering tests.
- It provides common functionalities like menu navigation, configuration reader, reading user response etc.
- For more details ut-raft.
- dsHdmiIn
- This is test helper class which communicates with the
L3
C/C++ test running on theDUT
through menu
- This is test helper class which communicates with the
- L3TestClasses
- These are the L3 test case classes
- Each class covers the each test use-case defined in L3 Test use-cases table
-
rackConfig.yaml
- Identifies the rack configuration and platform used
- References platform-specific config from
deviceConfig.yaml
- For more details refer RAFT and example_rack_config.yml
-
deviceConfig.yaml
- Specifies overall configuration for the platform
- Can be overridden by:
- Changing locally .yaml file directory
- Using --deviceConfig command line switch
- For more details refer RAFT and example_device_config.yml
-
componentProfile.yaml/platformProfile.yaml
- Contains component-specific configurations
- Contains platform wide configuration broken down into separate components
- Example configuration file dsHdmiIn_Settings
-
testSetupConfig.yaml
- This configuration file contains the list of requirements for tests to execute. Eg: Copying the streams, setting environment variables etc.
- Example configuration file dsHdmiIn_L3_testSetup.yml
-
testSuite.yaml
- This configuration file contains the list of menu items for C/C++ L3 test running on
DUT
- Example configuration file dsHdmiIn_test_suite.yml
- This configuration file contains the list of menu items for C/C++ L3 test running on