<html>
<head>
<title>Profiler: focusing and exclusion test</title>
<script type="text/javascript" src="resources/fib.js"></script>
</head>
<body onload="run_fib()">
This test runs a simple looped computation to test focusing and
exclusion functionality of profile view grid.
<br>
<br>
To use this test:
<ul>
<li>load file in the browser;
<li>open DevTools (Ctrl+Shift+I on Win/Linux, Command+Option+I on Mac);
<li>go to 'Profiles' page;
<li>press 'Start profiling' button
(gray dot on the left side of status bar);
<li>wait for 5 seconds;
<li>press 'Stop profiling' button
(red dot on the left side of status bar);
</ul>
<br>
On the left pane under 'CPU profiles' section, an item called
'Profile 1' must appear, and a grid with profile data must
appear on the right. Now test the following functionality in the grid:
<br>
TEST 1:
<ul>
<li>select 'eternal_fib' function entry (without expanding it),
press 'Focus
on selected function' button (eye on the right of the status bar);
<li>ensure that only 'eternal_fib' function and its children are
left in the tree, and 'Total' column for the function shows
'100%' value;
<li>expand 'eternal_fib' function node;
<li>press 'Restore all functions' button;
<li>verify that the value in 'Total' column is less than 100%;
<li>verify that 'eternal_fib' function node is can still be
collapsed and expanded back;
</ul>
<br>
TEST 2:
<ul>
<li>expand two levels of 'Script:' node, select the second-level
node;
<li>repeat the same steps for the selected node (in this case, immediate
parent nodes of the focused node must also remain visible after
focusing);
</ul>
<br>
TEST 3:
<ul>
<li>by expanding 'Script:' node, make sure that at least 3
'eternal_fib' function nodes are visible;
<li>select any of 'eternal_fib' nodes and press
'Exclude selected function' (cross) button on the status bar;
<li>verify that all 'eternal_fib' nodes are no more visible;
<li>expand more 'Script:' node levels, verify that no new
'eternal_fib' nodes appear with expansion;
<li>press 'Restore all functions' button;
<li>verify that 'eternal_fib' nodes are now visible;
</ul>
<br>
TESTS 4 and 5:
<br>
Now switch to 'Tree (Top Down)' view and repeat testing steps.
For the 'Exclude selected function' function test, use
'Script:' function node, as 'eternal_fib' has only
one entry in this view.
</body>
</html>