<html>
<head>
<script src="../../http/tests/inspector/inspector-test.js"></script>
<script src="heap-snapshot-test.js"></script>
<script>

function test()
{
    InspectorTest.runTestSuite([
        function getHeapSnapshotDoesntCrash(next)
        {
            function finish(errorString, profile)
            {
                console.log(errorString);
                next();
            }
            HeapProfilerAgent.getHeapSnapshot(-1, finish);
        }
    ]);
}

</script>
</head>

<body onload="runTest()">
<p>
This test checks HeapSnapshots module.
</p>

</body>
</html>
