Skip to content

Fix deqp-runner regex interpretation to prevent unintended `.` matching

Guilherme Gallo requested to merge gallo/deqp-runner:escape-dots into main

The deqp-runner is currently interpreting every dot (.) in expectation files as a DOT regex character, which often is not the intended behavior and it very common in some suites, such as dEQP. This has been causing issues in larger files, where the RegexSet unexpectedly reaches its default size limit, leading to compilation errors.

To address this, the proposed change implements a strategy to first check if an expectation line contains any other regex character (like *). If it does, the dot will be escaped to avoid incorrect interpretations, resulting in a cluttered RegexSet. This fix aims to prevent errors similar to the one encountered in the job linked below, where the regex compilation exceeded the size limit.

Pre-processing example:

Before:

dEQP.subgroup1.abc
dEQP.subgroup1.def
# intended regex
dEQP.subgroup2.*

After:

dEQP\.subgroup1\.abc
dEQP\.subgroup1\.def
dEQP.subgroup2.*

References

Error encountered

Error: compiling skips regexes
Caused by:
    0: Parsing regex set
    1: Compiled regex exceeds size limit of 10485760 bytes.

Links

Closes: #51 (closed)

Edited by Guilherme Gallo

Merge request reports