Integrate with Android CTS

Android CTS release packages (available from Android Compatibility Downloads) include Khronos Conformance Tests and require a subset of these tests (known as the mustpass list), to pass. For devices that do not support a target API or extension, tests are skipped and reported as passing.

The mustpass list includes coverage for OpenGL ES 2.0 through OpenGL ES 3.2 and Vulkan 1.1. mustpass files can be found under the android/cts directory in the Khronos Conformance Tests. You can run these tests through the cts-tradefed utility with the following command:

cts-tradefed run cts --plan CTS-DEQP

Duplicate runs without CTS

To replicate the CTS run, install the deqp APK of the CTS package and use the following command:

adb -d shell am start -n com.drawelements.deqp/android.app.NativeActivity -e \
cmdLine "deqp --deqp-case=dEQP-GLES3.some_group.* --deqp-gl-config-name=rgba8888d24s8 --deqp-log-filename=/sdcard/dEQP-Log.qpa

The important part is the --deqp-gl-config-name=rgba8888d24s8 argument, which requests the tests be run on an RGBA 8888 on-screen surface with a 24-bit depth buffer and an 8-bit stencil buffer. Remember to set the desired tests using the --deqp-case argument.

CTS results mapping

In the Android CTS, a test case can end up in one of three states: passed, failed, or not executed (the deqp has more result codes available). CTS automatically maps Khronos Conformance Test result codes to CTS results:

  • A CTS pass can include Pass, NotSupported, QualityWarning, and CompatibilityWarning.
  • A CTS failure can include Fail, ResourceError, Crash, Timeout, and InternalError.