testsuite, coroutines : Fix a bad testcase [PR96504].
authorIain Sandoe <iain@sandoe.co.uk>
Wed, 6 Jan 2021 19:40:45 +0000 (19:40 +0000)
committerIain Sandoe <iain@sandoe.co.uk>
Wed, 6 Jan 2021 19:58:10 +0000 (19:58 +0000)
commit334a295fafdf5e66c4c976874282aea959830eb6
tree32525034f548abb9819846c49a09e77632166a9e
parent8b6f1e8f97fe0d435d334075821149dbd85c8266
testsuite, coroutines : Fix a bad testcase [PR96504].

Where possible (i.e. where that doesn't alter the intent of a test) we
use a suspend_always as the final suspend and a test that the coroutine
was 'done' to check that the state machine had terminated correctly.

Sometimes, filed PRs have 'suspend_never' as the final suspend expression
and that needs to be changed to match the testsuite style.  This is one
I missed and means that the call to 'done()' on the handle is made to an
already-destructed coroutine.  Surprisngly, thAt  didn't actually trigger
a failure until glibc 2-32.

Fixed by changing the final suspend to be 'suspend_always'.

gcc/testsuite/ChangeLog:

PR c++/96504
* g++.dg/coroutines/torture/pr95519-05-gro.C: Use suspend_always
as the final suspend point so that we can check that the state
machine has reached the expected point.
gcc/testsuite/g++.dg/coroutines/torture/pr95519-05-gro.C