fmidue / logic-tasks

0 stars 1 forks source link

Timeouts in Tests aktiver abfangen #75

Closed jvoigtlaender closed 9 months ago

jvoigtlaender commented 10 months ago

Das in https://github.com/fmidue/logic-tasks/pull/67#issue-2035884189 beschriebene Phänomen schlägt offenbar auch während CI manchmal zu. Siehe etwa die aufeinanderfolgenden Commits:

(ohne dass da Änderungen im Code gemacht worden wären, die den Unterschied erklären könnten).

Begegnet werden könnte dem auf zwei Ebenen:

  1. Den CI-Workflow insgesamt mit einem expliziten, kürzeren Timeout versehen, auf GitHub-Ebene.
  2. Einzelne Test-Properties, die als problematisch erkannt werden, mit expliziten Timeouts versehen, auf HSpec/QuickCheck-Ebene.

Beides wäre sinnvoll und sich gegenseitig sinnvoll ergänzende. Der 2. Punkt würde u.a. der Dokumentation dienen, wo noch Probleme liegen, die prinzipiell auch die Aufgabengenerierung in der Praxis treffen könnten. Der 1. Punkt wäre mindestens ein zusätzlicher Safeguard und würde unnötigen Energieverbrauch einsparen. (Es müssen auf der GitHub-Hardware nicht unnötig Rechenminuten verbrannt werden.)

nimec01 commented 10 months ago

Gibt es denn bei HSpec und/oder QuickCheck überhaupt die Möglichkeit ein Timeout zu setzen? Ich habe mir die Dokumentationen angeschaut und konnte auf den ersten Blick keine Optionen diesbezüglich finden.

Ein Limit bei Github Actions zu setzen ist unproblematisch.

jvoigtlaender commented 10 months ago

Hiermit müsste es in QuickCheck gehen: https://hackage.haskell.org/package/QuickCheck-2.14.3/docs/Test-QuickCheck.html#v:within