ReflectionFiber_errors.phpt 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. --TEST--
  2. ReflectionFiber errors
  3. --FILE--
  4. <?php
  5. $fiber = new Fiber(function (): void {
  6. Fiber::suspend();
  7. });
  8. $reflection = new ReflectionFiber($fiber);
  9. try {
  10. $reflection->getTrace();
  11. } catch (Error $error) {
  12. echo $error->getMessage(), "\n";
  13. }
  14. try {
  15. $reflection->getExecutingFile();
  16. } catch (Error $error) {
  17. echo $error->getMessage(), "\n";
  18. }
  19. try {
  20. $reflection->getExecutingLine();
  21. } catch (Error $error) {
  22. echo $error->getMessage(), "\n";
  23. }
  24. $fiber->start();
  25. var_dump($reflection->getExecutingFile());
  26. var_dump($reflection->getExecutingLine());
  27. $fiber->resume();
  28. try {
  29. $reflection->getTrace();
  30. } catch (Error $error) {
  31. echo $error->getMessage(), "\n";
  32. }
  33. try {
  34. $reflection->getExecutingFile();
  35. } catch (Error $error) {
  36. echo $error->getMessage(), "\n";
  37. }
  38. try {
  39. $reflection->getExecutingLine();
  40. } catch (Error $error) {
  41. echo $error->getMessage(), "\n";
  42. }
  43. try {
  44. $reflection->getCallable();
  45. } catch (Error $error) {
  46. echo $error->getMessage(), "\n";
  47. }
  48. ?>
  49. --EXPECTF--
  50. Cannot fetch information from a fiber that has not been started or is terminated
  51. Cannot fetch information from a fiber that has not been started or is terminated
  52. Cannot fetch information from a fiber that has not been started or is terminated
  53. string(%d) "%s%eReflectionFiber_errors.php"
  54. int(4)
  55. Cannot fetch information from a fiber that has not been started or is terminated
  56. Cannot fetch information from a fiber that has not been started or is terminated
  57. Cannot fetch information from a fiber that has not been started or is terminated
  58. Cannot fetch the callable from a fiber that has terminated