| <html> |
| <head> |
| <title>Heap Profiler: heap snapshots comparison test</title> |
| <script type="text/javascript"> |
| var aHolder = [], bHolder = [], cHolder = [], dHolder = []; |
| |
| function A(x) { |
| this.x = x; |
| } |
| |
| function B(x) { |
| this.x = x; |
| } |
| |
| function C() {} |
| |
| var i; |
| for (i = 0; i < 100; ++i) { |
| var b = new B('hello'); |
| bHolder.push(b); |
| aHolder.push(new A(b)); |
| b = null; |
| } |
| for (i = 0; i < 25; ++i) { |
| cHolder.push(new C()); |
| } |
| |
| function D() {} |
| |
| function changeStuff() { |
| if (aHolder.length > 0) { |
| aHolder.splice(aHolder.length - 25, 25); |
| } |
| for (i = 0; i < 25; ++i) { |
| bHolder.push(new B('hello')); |
| } |
| cHolder = []; |
| for (i = 0; i < 25; ++i) { |
| dHolder.push(new D()); |
| } |
| } |
| </script> |
| </head> |
| <body> |
| This is the test for heap snapshot comparison functionality. |
| <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 'Take heap snapshot' button |
| (eye icon on the left side of the status bar); |
| <li>press |
| <input type="button" name="changeStuff" value="this button" onclick="changeStuff()" />; |
| <li>press 'Take heap snapshot' button again; |
| </ul> |
| <br> |
| On the left pane under 'Heap snapshots' section, items called |
| 'Snapshot 1' and 'Snapshot 2' must appear. Select 'Snapshot 2'. |
| Ensure that absolute values are shown (not percents). |
| <br> |
| <br> |
| TEST 1. Verify the following: |
| <ul> |
| <li>the value in '+/- Count' column for 'A' must be '-25'; |
| <li>after expanding 'A' item, the value in '+/- Count' column |
| for 'Array' child entry must also be '-25'; |
| <li>the value in '+/- Count' column for 'B' must be '+25'; |
| <li>after expanding 'B' item, the value in '+/- Count' column |
| for 'Array' child entry must also be '+25'; the value for 'A' |
| child must be '-25'; |
| </ul> |
| <br> |
| TEST 2. Change display to percent view (using the percent button on the |
| status bar). Verify the following: |
| <ul> |
| <li>values in '+/- Count' and '+/- Size' columns for 'C' must be 'deleted'; |
| <li>values in '+/- Count' and '+/- Size' columns for 'D' must be 'new'; |
| </ul> |
| </body> |
| </html> |