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

Unified Diff: tools/resource_prefetch_predictor/generate_database.py

Issue 2508933002: tools: Local tests for the speculative prefetch predictor. (Closed)
Patch Set: . Created 4 years, 1 month 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/resource_prefetch_predictor/generate_database.py
diff --git a/tools/resource_prefetch_predictor/generate_database.py b/tools/resource_prefetch_predictor/generate_database.py
index 9c3aa677e610f9e2bf81b41d5bae0ca83fbbae6f..5d12cffb260ed4e118d410e3b583830c00f59e19 100755
--- a/tools/resource_prefetch_predictor/generate_database.py
+++ b/tools/resource_prefetch_predictor/generate_database.py
@@ -13,6 +13,8 @@ import logging
import os
import sys
+import prefetch_predictor_common
+
_SRC_PATH = os.path.abspath(os.path.join(
os.path.dirname(__file__), os.pardir, os.pardir))
@@ -24,10 +26,11 @@ sys.path.append(os.path.join(_SRC_PATH, 'build', 'android'))
import devil_chromium
sys.path.append(os.path.join(_SRC_PATH, 'tools', 'android', 'loading'))
-import controller
from options import OPTIONS
import page_track
+import prefetch_predictor_common
+
_PAGE_LOAD_TIMEOUT = 20
@@ -35,9 +38,8 @@ _PAGE_LOAD_TIMEOUT = 20
def _CreateArgumentParser():
"""Creates and returns the argument parser."""
parser = argparse.ArgumentParser(
- description=('Loads a set of web pages several times on a device, and '
- 'extracts the predictor database.'),
- parents=[OPTIONS.GetParentParser()])
+ ('Loads a set of web pages several times on a device, and extracts the '
+ 'predictor database.'), parents=[OPTIONS.GetParentParser()])
parser.add_argument('--device', help='Device ID')
parser.add_argument('--urls_filename', help='File containing a list of URLs '
'(one per line). URLs can be repeated.')
@@ -50,27 +52,6 @@ def _CreateArgumentParser():
return parser
-def _FindDevice(device_id):
- """Returns a device matching |device_id| or the first one if None, or None."""
- devices = device_utils.DeviceUtils.HealthyDevices()
- if device_id is None:
- return devices[0]
- matching_devices = [d for d in devices if str(d) == device_id]
- if not matching_devices:
- return None
- return matching_devices[0]
-
-
-def _Setup(device):
- """Sets up a device and returns an instance of RemoteChromeController."""
- chrome_controller = controller.RemoteChromeController(device)
- device.ForceStop(OPTIONS.ChromePackage().package)
- chrome_controller.AddChromeArguments(
- ['--speculative-resource-prefetching=learning'])
- chrome_controller.ResetBrowserState()
- return chrome_controller
-
-
def _Go(chrome_controller, urls_filename, output_filename, repeats):
urls = []
with open(urls_filename) as f:
@@ -87,23 +68,25 @@ def _Go(chrome_controller, urls_filename, output_filename, repeats):
device = chrome_controller.GetDevice()
device.ForceStop(OPTIONS.ChromePackage().package)
- database_filename = (
- '/data/user/0/%s/app_chrome/Default/Network Action Predictor' %
- OPTIONS.ChromePackage().package)
- device.PullFile(database_filename, output_filename)
+ device.PullFile(prefetch_predictor_common.DatabaseDevicePath(),
+ output_filename)
def main():
+ devil_chromium.Initialize()
logging.basicConfig(level=logging.INFO)
+
parser = _CreateArgumentParser()
args = parser.parse_args()
OPTIONS.SetParsedArgs(args)
- devil_chromium.Initialize()
- device = _FindDevice(args.device)
+
+ device = prefetch_predictor_common.FindDevice(args.device)
if device is None:
logging.error('Could not find device: %s.', args.device)
sys.exit(1)
- chrome_controller = _Setup(device)
+
+ chrome_controller = prefetch_predictor_common.Setup(
+ device, ['--speculative-resource-prefetching=learning'])
_Go(chrome_controller, args.urls_filename, args.output_filename,
int(args.url_repeat))

Powered by Google App Engine
This is Rietveld 408576698