Web Inspector: Add a renderer process memory size test.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Mar 2013 14:06:28 +0000 (14:06 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 5 Mar 2013 14:06:28 +0000 (14:06 +0000)
https://bugs.webkit.org/show_bug.cgi?id=111337

Patch by Alexei Filippov <alph@chromium.org> on 2013-03-05
Reviewed by Yury Semikhatsky.

The test checks that the renderer process memory size
is obtained from the browser and reported to the inspector
frontend correctly.

* src/js/Tests.js:
(.TestSuite.prototype.testRendererProcessNativeMemorySize.checkFuzzyValue):
(.TestSuite.prototype.testRendererProcessNativeMemorySize.step2):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@144755 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/js/Tests.js

index 0e5a6d6..64e0d6c 100644 (file)
@@ -1,3 +1,18 @@
+2013-03-05  Alexei Filippov  <alph@chromium.org>
+
+        Web Inspector: Add a renderer process memory size test.
+        https://bugs.webkit.org/show_bug.cgi?id=111337
+
+        Reviewed by Yury Semikhatsky.
+
+        The test checks that the renderer process memory size
+        is obtained from the browser and reported to the inspector
+        frontend correctly.
+
+        * src/js/Tests.js:
+        (.TestSuite.prototype.testRendererProcessNativeMemorySize.checkFuzzyValue):
+        (.TestSuite.prototype.testRendererProcessNativeMemorySize.step2):
+
 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
 
         AX: cellForColumnAndRow fails for tables with hidden table cells
index 13dd092..c7896aa 100644 (file)
@@ -306,6 +306,54 @@ TestSuite.prototype.testContentScriptIsPresent = function()
 
 
 /**
+ * Tests renderer process memory size obtained and passed to inspector
+ * successfully.
+ */
+TestSuite.prototype.testRendererProcessNativeMemorySize = function()
+{
+    var test = this;
+    var KB = 1024;
+    var MB = KB * KB;
+    var arraySize = 20000000;
+    var initialSize;
+
+    function checkFuzzyValue(value, expected, allowedDelta)
+    {
+        var relativeDiff = Math.abs(value - expected) / expected;
+        if (relativeDiff > allowedDelta)
+            test.fail("Value (" + value + ") differs from expected (" + expected + ") by more than " + (allowedDelta * 100) + "%.");
+    }
+
+    function step1(error, memoryBlock)
+    {
+        test.assertTrue(!error, "An error has occurred: " + error);
+        test.assertTrue(memoryBlock.size > 1 * MB && memoryBlock.size < 1500 * MB, "Unfeasible process size.");
+
+        initialSize = memoryBlock.size;
+
+        test.evaluateInConsole_("var a = new Uint8Array(" + arraySize + ");", function() {});
+
+        MemoryAgent.getProcessMemoryDistribution(false, step2);
+    }
+
+    function step2(error, memoryBlock)
+    {
+        test.assertTrue(!error, "An error has occurred: " + error);
+        var deltaBytes = memoryBlock.size - initialSize;
+        // Checks that the process size has grown approximately by
+        // the size of the allocated array (within 10% confidence interval).
+        checkFuzzyValue(deltaBytes, arraySize, 0.1);
+
+        test.releaseControl();
+    }
+
+    MemoryAgent.getProcessMemoryDistribution(false, step1);
+
+    this.takeControl();
+};
+
+
+/**
  * Tests that scripts are not duplicaed on Scripts tab switch.
  */
 TestSuite.prototype.testNoScriptDuplicatesOnPanelSwitch = function()