summaryrefslogtreecommitdiff
path: root/test/integration/test-solver3-evaluation
Commit message (Collapse)AuthorAgeFilesLines
* solver3: Correctly deb822-escape error message in evaluation reportJulian Andres Klode2025-03-261-0/+35
| | | | | | The error messages are multi-line now, so need correct escaping. LP: #2104276
* solver3: Avoid empty error message in evaluation crash reportJulian Andres Klode2025-03-201-1/+0
| | | | whoopsie does not accept empty values
* solver3: Use zstd-compressed, base64-encoded dumpsJulian Andres Klode2025-03-201-94/+2
| | | | | | | | | | | | | Store the solver dumps with zstd compression and base64-encode them in the crash report; such that they take up significantly less space and can fit in cassandra's schema. Base64 is wrapped at 76 characters as the base64 tool does. Do some magic std::string_view conversion to avoid string copies for the substr() used to get 76 characters at a time. Note we can rely on substr(i, 76) to handle less than 76 characters just fine; it uses std::min(76, size() - i) characters.
* solver evaluation: write minimized solver dumpsJulian Andres Klode2025-03-201-2/+3
| | | | These are faster to generate and significantly smaller.
* Print --solver 3.0 explanation if both internal and it failedJulian Andres Klode2025-03-091-1/+20
| | | | | | | | | | This can provide useful additional context. To avoid updating the whole test suite for it, introduce a new option `quiet::NoSolver3Explanation` and set it by default. All the other tests that assert output will already have matching tests for --solver 3.0 with the correct messages asserted, it makes no sense to duplicate them.
* Evaluate and fall back to the 3.0 solverJulian Andres Klode2025-03-091-0/+220
Always run the 3.0 solver after the internal solver. If the internal solver failed, and the 3.0 solver did not, use the 3.0 result. If 3.0 solver failed or produced a worse result than the internal solver, write an apport crash dump. We exclude situations which we now the solver can't handle, i.e. removals are forbidden and you requested removals, and stuff like that.