1*b7c941bbSAndroid Build Coastguard Worker# CEC CTS testing for Android TV devices 2*b7c941bbSAndroid Build Coastguard Worker 3*b7c941bbSAndroid Build Coastguard WorkerNOTE: CTS has two meanings here. HDMI defines a set of tests in the 4*b7c941bbSAndroid Build Coastguard Worker**Compliance Test Specification** of HDMI 1.4b 5*b7c941bbSAndroid Build Coastguard Worker__HDMI Compliance Test Specification 1.4b__ and 6*b7c941bbSAndroid Build Coastguard Worker**Android Compatibility Test Suite**. 7*b7c941bbSAndroid Build Coastguard Worker 8*b7c941bbSAndroid Build Coastguard WorkerThe Android Compatibility Test Suite includes specific tests from the HDMI 9*b7c941bbSAndroid Build Coastguard WorkerCompliance Test Specification as well as other Android specific tests. 10*b7c941bbSAndroid Build Coastguard Worker 11*b7c941bbSAndroid Build Coastguard Worker## Setup 12*b7c941bbSAndroid Build Coastguard Worker 13*b7c941bbSAndroid Build Coastguard Worker### Source devices 14*b7c941bbSAndroid Build Coastguard Worker 15*b7c941bbSAndroid Build Coastguard WorkerRunning these CTS tests requires a specific HDMI layout with a CEC adapter. 16*b7c941bbSAndroid Build Coastguard Worker 17*b7c941bbSAndroid Build Coastguard Worker* Android TV source device, e.g. a playback device or an audio system 18*b7c941bbSAndroid Build Coastguard Worker* CEC adapter, see [External CEC Adapter instructions](cec_adapter.md) 19*b7c941bbSAndroid Build Coastguard Worker* Install `cec-client` binary, see [install instructions](cec_adapter.md#software) 20*b7c941bbSAndroid Build Coastguard Worker* HDMI Display (aka a TV) with CEC disabled to avoid interference, or an HDMI fake plug 21*b7c941bbSAndroid Build Coastguard Worker 22*b7c941bbSAndroid Build Coastguard WorkerIt is recommended that the source device has an HDMI physical address of `1.0.0.0` while running 23*b7c941bbSAndroid Build Coastguard Workerthe tests. [DEPRECATED] In case the DUT takes a physical address other than `1.0.0.0` and this is 24*b7c941bbSAndroid Build Coastguard Workerunavoidable, the tests can be configured to expect a different physical address by appending these 25*b7c941bbSAndroid Build Coastguard Workerarguments to the tradefed command: 26*b7c941bbSAndroid Build Coastguard Worker``` 27*b7c941bbSAndroid Build Coastguard Worker--module-arg CtsHdmiCecHostTestCases:set-option:cec-phy-addr:<address_in_decimal> 28*b7c941bbSAndroid Build Coastguard Worker``` 29*b7c941bbSAndroid Build Coastguard WorkerThus, for a device that is taking an address `3.0.0.0`, pass `12288` as the `cec-phy-addr` argument. 30*b7c941bbSAndroid Build Coastguard Worker 31*b7c941bbSAndroid Build Coastguard WorkerThe CEC adapter may also be installed in-between the TV and the source device. 32*b7c941bbSAndroid Build Coastguard Worker 33*b7c941bbSAndroid Build Coastguard Worker 34*b7c941bbSAndroid Build Coastguard Worker 35*b7c941bbSAndroid Build Coastguard Worker### TV panel devices 36*b7c941bbSAndroid Build Coastguard Worker 37*b7c941bbSAndroid Build Coastguard WorkerRunning these CTS tests on TV panel devices requires an external CEC adapter. 38*b7c941bbSAndroid Build Coastguard Worker 39*b7c941bbSAndroid Build Coastguard Worker* Android TV panel device 40*b7c941bbSAndroid Build Coastguard Worker* CEC adapter, see [External CEC Adapter instructions](cec_adapter.md) 41*b7c941bbSAndroid Build Coastguard Worker* Install `cec-client` binary, see [install instructions](cec_adapter.md#software) 42*b7c941bbSAndroid Build Coastguard Worker 43*b7c941bbSAndroid Build Coastguard WorkerIt is recommended to connect the CEC adapter to the HDMI ARC port of the TV device. 44*b7c941bbSAndroid Build Coastguard Worker 45*b7c941bbSAndroid Build Coastguard Worker### Automation 46*b7c941bbSAndroid Build Coastguard Worker 47*b7c941bbSAndroid Build Coastguard WorkerGiven the setup described above you can run this test module with the following commands: 48*b7c941bbSAndroid Build Coastguard Worker 49*b7c941bbSAndroid Build Coastguard Worker#### cts-tradefed 50*b7c941bbSAndroid Build Coastguard Worker 51*b7c941bbSAndroid Build Coastguard Worker``` 52*b7c941bbSAndroid Build Coastguard Workercts-tradefed > run cts -m CtsHdmiCecHostTestCases 53*b7c941bbSAndroid Build Coastguard Worker``` 54*b7c941bbSAndroid Build Coastguard Worker 55*b7c941bbSAndroid Build Coastguard Worker#### atest 56*b7c941bbSAndroid Build Coastguard Worker``` 57*b7c941bbSAndroid Build Coastguard Workeratest CtsHdmiCecHostTestCases 58*b7c941bbSAndroid Build Coastguard Worker``` 59*b7c941bbSAndroid Build Coastguard Worker 60*b7c941bbSAndroid Build Coastguard WorkerTo shard the test (distribute and run the tests on multiple devices), use this 61*b7c941bbSAndroid Build Coastguard Workercommand - 62*b7c941bbSAndroid Build Coastguard Worker``` 63*b7c941bbSAndroid Build Coastguard Worker./cts-tradefed run commandAndExit cts --enable-token-sharding --shard-count 3 -m CtsHdmiCecHostTestCases 64*b7c941bbSAndroid Build Coastguard Worker``` 65*b7c941bbSAndroid Build Coastguard Worker 66*b7c941bbSAndroid Build Coastguard WorkerThe shard count corresponds to the number of DUTs connected to the host. 67