[Test] (tools/cts): waive api.coverage's fbo-surface-type wrapper-FBO artifact

KHR-GL3{0,1,2,3}.api.coverage's ReadBuffer coverage sub-test captures
GL_READ_BUFFER while dEQP's own fbo-surface-type wrapper FBO is bound
(a real, non-zero-named FBO, not framebuffer 0), then later deletes an
unrelated FBO of its own. Per the GL spec, deleting a bound FBO
implicitly rebinds framebuffer target 0 - the true default framebuffer
this time, not the wrapper - and restoring the captured
GL_COLOR_ATTACHMENTn value against it correctly raises GL_INVALID_ENUM
(only FRONT/BACK-style tokens are valid there). This is a spec-correct
response to a --deqp-surface-type=fbo-only test-methodology artifact,
not a MobileGL conformance defect, and cannot occur on a real
window/pbuffer-backed run where framebuffer 0 is genuinely bound
throughout. Add a waiver (dEQP's own mechanism for exactly this kind of
known non-defect) instead of weakening the (correct) validation, and
wire --waiver-file through run_cts_local.py.
This commit is contained in:
BZLZHH
2026-08-01 08:53:35 -04:00
parent 9192d156d1
commit 8d5072543a
2 changed files with 42 additions and 0 deletions
+4
View File
@@ -65,6 +65,8 @@ def main():
help="seconds before killing one glcts invocation (a wedged case never returns)")
ap.add_argument("--skip-file", default=None,
help="file of case names to exclude, e.g. cases known to wedge the host")
ap.add_argument("--waiver-file", default=None,
help="--deqp-waiver-file value, e.g. tools/cts/waivers/mobilegl-fbo-harness.xml")
ap.add_argument("--env", action="append", default=[], metavar="K=V",
help="extra environment variable for glcts (repeatable)")
args = ap.parse_args()
@@ -135,6 +137,8 @@ def main():
"--deqp-log-shader-sources=disable",
f"--deqp-log-filename={qpa}",
]
if args.waiver_file:
cmd.append(f"--deqp-waiver-file={os.path.abspath(args.waiver_file)}")
timed_out = False
try:
# RLIMIT_CORE=0: MobileGL asserts abort with a core dump, and writing