spl_pq_top_error_corrupt.phpt   [plain text]


--TEST--
SPL: SplPriorityQueue: top and extract flags
--CREDITS--
Nathaniel McHugh nat@fishtrap.co.uk
#testfest 2009-05-09
--FILE--
<?php

class myPriorityQueue extends SplPriorityQueue{

	public function compare($a, $b){
	 	 if ($b == 2) {
		throw new Exception('ignore me');
		}  else {
		return parent::compare($a, $b);
		}
	}
}

$priorityQueue = new myPriorityQueue();
$priorityQueue->insert("a", 1);

try {
    //corrupt heap
    $priorityQueue->insert("b", 2);
        // ignore exception tested elsewhere
} catch (Exception $e) {
}

try {
    $priorityQueue->top();
} catch (RuntimeException $e) {
  echo "Exception: ".$e->getMessage().PHP_EOL;
}

?>
--EXPECT--
Exception: Heap is corrupted, heap properties are no longer ensured.