pqueue_002.phpt 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. --TEST--
  2. SPL: SplPriorityQueue: exceptions
  3. --FILE--
  4. <?php
  5. class myPQueue extends SplPriorityQueue {
  6. public function compare($a, $b): int {
  7. throw new exception("foo");
  8. }
  9. }
  10. $h = new myPQueue;
  11. try {
  12. $h->insert(1, 1);
  13. echo "inserted 1\n";
  14. $h->insert(2, 1);
  15. echo "inserted 2\n";
  16. $h->insert(3, 1);
  17. echo "inserted 3\n";
  18. } catch(Exception $e) {
  19. echo "Exception: ".$e->getMessage()."\n";
  20. }
  21. try {
  22. $h->insert(4, 1);
  23. echo "inserted 4\n";
  24. } catch(Exception $e) {
  25. echo "Exception: ".$e->getMessage()."\n";
  26. }
  27. try {
  28. var_dump($h->extract());
  29. } catch(Exception $e) {
  30. echo "Exception: ".$e->getMessage()."\n";
  31. }
  32. try {
  33. var_dump($h->extract());
  34. } catch(Exception $e) {
  35. echo "Exception: ".$e->getMessage()."\n";
  36. }
  37. echo "Recovering..\n";
  38. $h->recoverFromCorruption();
  39. try {
  40. var_dump($h->extract());
  41. } catch(Exception $e) {
  42. echo "Exception: ".$e->getMessage()."\n";
  43. }
  44. try {
  45. var_dump($h->extract());
  46. } catch(Exception $e) {
  47. echo "Exception: ".$e->getMessage()."\n";
  48. }
  49. ?>
  50. --EXPECT--
  51. inserted 1
  52. Exception: foo
  53. Exception: Heap is corrupted, heap properties are no longer ensured.
  54. Exception: Heap is corrupted, heap properties are no longer ensured.
  55. Exception: Heap is corrupted, heap properties are no longer ensured.
  56. Recovering..
  57. int(1)
  58. int(2)