Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(636)

Unified Diff: tools/gpu_validation/tests/gpu_validation_unittest.py

Issue 11668013: Added GPU stress test with multiple tabs in one single window. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Renames run_tests. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/gpu_validation/tests/gpu_validation_unittest.py
diff --git a/tools/gpu_validation/tests/gpu_validation_unittest.py b/tools/gpu_validation/tests/gpu_validation_unittest.py
new file mode 100644
index 0000000000000000000000000000000000000000..92dccc0eeaa43192708bc79ec6f4b8fcad325149
--- /dev/null
+++ b/tools/gpu_validation/tests/gpu_validation_unittest.py
@@ -0,0 +1,66 @@
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import os
+import random
+import unittest
+
+from telemetry.core import browser_finder
+from telemetry.test import options_for_unittests
+
+TOP_DIR = os.path.join(os.path.dirname(__file__), os.pardir)
+DATA_DIR = os.path.join(TOP_DIR, 'unittest_data')
+
+# Number of tabs to open for testing.
+NUM_TABS = 100
+
+
+class GpuValidationUnittest(unittest.TestCase):
+ """Verifies that GPU works properly under stress."""
+
+ def setUp(self):
+ """Gets the test assets and launches browser.
+
+ Test assets are html files from test data directory.
+ """
+
+ # Gets the test assets.
+ self._asset_list = []
+ for _, _, files in os.walk(DATA_DIR):
+ self._asset_list.extend([f for f in files if f.endswith('.html')])
+ self._num_assets = len(self._asset_list)
+
+ # Launches browser.
+ options = options_for_unittests.GetCopy()
+ browser_to_create = browser_finder.FindBrowser(options)
+ self._browser = browser_to_create.Create()
+ self._browser.SetHTTPServerDirectory(DATA_DIR)
+ self._tabs = self._browser.tabs
+
+ def tearDown(self):
+ self._browser.Close()
+
+ def testMultipleTabsInSingleWindow(self):
+ """Tests with multiple tabs opened in a single window."""
+
+ # Opens the tabs and navigates to the asset urls.
+ for i in xrange(NUM_TABS):
+ asset = self._asset_list[i % self._num_assets]
+ tab = self._tabs.New()
+ tab.Navigate(self._GetUrl(asset))
+
+ # Randomly cycles to the tabs.
+ tab_nums = range(1, NUM_TABS + 1)
+ random.shuffle(tab_nums)
+ for num in tab_nums:
+ self._tabs[num].Activate()
+
+ # Randomly closes the tabs.
+ num_tabs = len(self._tabs)
+ while num_tabs > 1:
+ self._tabs[random.randrange(1, num_tabs)].Close()
+ num_tabs -= 1
+
+ def _GetUrl(self, asset):
+ return self._browser.http_server.UrlOf(asset)

Powered by Google App Engine
This is Rietveld 408576698