1--TEST--
2SPL: SplPriorityQueue: top and extract flags
3--CREDITS--
4Nathaniel McHugh nat@fishtrap.co.uk
5#testfest 2009-05-09
6--FILE--
7<?php
8
9class myPriorityQueue extends SplPriorityQueue{
10
11    public function compare($a, $b): int {
12         if ($b == 2) {
13        throw new Exception('ignore me');
14        }  else {
15        return parent::compare($a, $b);
16        }
17    }
18}
19
20$priorityQueue = new myPriorityQueue();
21$priorityQueue->insert("a", 1);
22
23try {
24    //corrupt heap
25    $priorityQueue->insert("b", 2);
26        // ignore exception tested elsewhere
27} catch (Exception $e) {
28}
29
30try {
31    $priorityQueue->top();
32} catch (RuntimeException $e) {
33  echo "Exception: ".$e->getMessage().PHP_EOL;
34}
35
36?>
37--EXPECT--
38Exception: Heap is corrupted, heap properties are no longer ensured.
39