The group timeouts were a hacky feature. I probably added it as a band-aid fix to stuck test runs.
However, it also introduced unexpected and arguably undocumented functionality.
When a user reads that async test cases have a default timeout of 60 seconds, they assume that omitting timeout = from their test case would simply make that value default to 60.
Instead, there was a per-group timer that would continue to the next test group if it expired. This isn't technically the same behavior, and should be simplified.
With this change, a timer is created for every single case with no group timeout.
The group timeouts were a hacky feature. I probably added it as a band-aid fix to stuck test runs.
However, it also introduced unexpected and arguably undocumented functionality. When a user reads that async test cases have a default timeout of 60 seconds, they assume that omitting
timeout =
from their test case would simply make that value default to 60.Instead, there was a per-group timer that would continue to the next test group if it expired. This isn't technically the same behavior, and should be simplified.
With this change, a timer is created for every single case with no group timeout.