<?php

$e0 = new Exception('0');
$e1 = new Exception('1');
$e2 = new Exception('2');
$e1->setPrevious($e2);
$e0->setPrevious($e1);
$eA = new Exception('A');
$eB = new Exception('B');
$eC = new Exception('C');
$eB->setPrevious($eC);
$eA->setPrevious($eB);
$e0->setPreviousChain($eA);
$proper_order = '012ABC';
$actual_order = $e0->getMessage();
$cur = $e0;
while ($cur->getPrevious() !== null) {
    $cur = $cur->getPrevious();
    $actual_order .= $cur->getMessage();
}
$result = $actual_order === $proper_order ? 'pass' : 'fail';
echo "{$result}\n";