diff --git a/tests/pdo_mysql/029-cancel_during_connect.phpt b/tests/pdo_mysql/029-cancel_during_connect.phpt new file mode 100644 index 00000000..9cd843f0 --- /dev/null +++ b/tests/pdo_mysql/029-cancel_during_connect.phpt @@ -0,0 +1,65 @@ +--TEST-- +PDO MySQL: a cancellation landing mid-connect surfaces as AsyncCancellation +--EXTENSIONS-- +pdo_mysql +--SKIPIF-- + +--FILE-- + 0) { + usleep($delay); + } + + $coroutine->cancel(); + + try { + $outcomes[await($coroutine)] = true; + } catch (Async\AsyncCancellation $e) { + $outcomes["cancelled before start"] = true; + } catch (Throwable $e) { + $outcomes["leaked " . get_class($e)] = true; + } +} + +$seen = array_keys($outcomes); +sort($seen); + +foreach ($seen as $outcome) { + echo $outcome, "\n"; +} + +echo "end\n"; +?> +--EXPECT-- +cancelled +cancelled before start +connected +end