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

Side by Side Diff: run_jstests.py

Issue 2755503005: Make sure images are loaded before running tests (Closed)
Patch Set: Created 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | war/test.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Runs DomDistillers jstests. 6 """Runs DomDistillers jstests.
7 7
8 This uses ChromeDriver (https://sites.google.com/a/chromium.org/chromedriver/) t o run the jstests. 8 This uses ChromeDriver (https://sites.google.com/a/chromium.org/chromedriver/) t o run the jstests.
9 This requires that the ChromeDriver executable is on the PATH and that Selenium WebDriver is 9 This requires that the ChromeDriver executable is on the PATH and that Selenium WebDriver is
10 installed. 10 installed.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 if options.debug_level: 43 if options.debug_level:
44 params['debug_level'] = int(options.debug_level) 44 params['debug_level'] = int(options.debug_level)
45 45
46 if options.no_console_log: 46 if options.no_console_log:
47 params['console_log'] = '0' 47 params['console_log'] = '0'
48 48
49 if options.shuffle: 49 if options.shuffle:
50 params['shuffle'] = options.shuffle 50 params['shuffle'] = options.shuffle
51 51
52 test_runner = "return org.chromium.distiller.JsTestEntry.run()"; 52 image_loaded = "return window.image_loaded"
53 test_runner = "return org.chromium.distiller.JsTestEntry.run()"
53 test_html = os.path.abspath(os.path.join(os.path.dirname(__file__), "war", "te st.html")) 54 test_html = os.path.abspath(os.path.join(os.path.dirname(__file__), "war", "te st.html"))
54 test_html += "?" + urllib.urlencode(params) 55 test_html += "?" + urllib.urlencode(params)
55 56
56 chrome_options = webdriver.ChromeOptions() 57 chrome_options = webdriver.ChromeOptions()
57 58
58 # Travis-CI uses OpenVZ containers which are incompatible with the sandbox tec hnology. 59 # Travis-CI uses OpenVZ containers which are incompatible with the sandbox tec hnology.
59 # See https://code.google.com/p/chromium/issues/detail?id=31077 for more infor mation. 60 # See https://code.google.com/p/chromium/issues/detail?id=31077 for more infor mation.
60 # Ref: https://github.com/travis-ci/travis-ci/issues/938#issuecomment-16336150 61 # Ref: https://github.com/travis-ci/travis-ci/issues/938#issuecomment-16336150
61 # Drone.io also has issues running newer versions of Chrome. 62 # Drone.io also has issues running newer versions of Chrome.
62 # Ref: http://crbug.com/495254 63 # Ref: http://crbug.com/495254
63 if options.no_sandbox: 64 if options.no_sandbox:
64 chrome_options.add_argument("--no-sandbox") 65 chrome_options.add_argument("--no-sandbox")
65 66
66 driver = webdriver.Chrome(chrome_options=chrome_options) 67 driver = webdriver.Chrome(chrome_options=chrome_options)
67 driver.get("file://" + test_html)
68 for i in range(options.repeat): 68 for i in range(options.repeat):
69 driver.get("file://" + test_html)
70 while not driver.execute_script(image_loaded):
mdjones 2017/03/22 17:35:04 I'd check to see if there is a execute-and-wait ve
wychen 2017/04/11 00:22:55 I gave selenium.webdriver.support.expected_conditi
71 print "Wait for image loading..."
72 time.sleep(0.1)
73
69 start = time.time() 74 start = time.time()
70 result = driver.execute_script(test_runner) 75 result = driver.execute_script(test_runner)
76 end = time.time()
71 77
72 end = time.time()
73 if not result['success'] or options.repeat == i+1: 78 if not result['success'] or options.repeat == i+1:
74 print result['log'].encode('utf-8') 79 print result['log'].encode('utf-8')
75 print 'Tests run: %d, Failures: %d, Skipped: %d, Time elapsed: %0.3f sec' % (result['numTests'], 80 print 'Tests run: %d, Failures: %d, Skipped: %d, Time elapsed: %0.3f sec' % (result['numTests'],
76 result['failed'], result['skipped'], end - start) 81 result['failed'], result['skipped'], end - start)
77 if not result['success']: 82 if not result['success']:
78 driver.quit() 83 driver.quit()
79 if options.repeat > 1: 84 if options.repeat > 1:
80 print 'Failed at run #%d/%d' % (i+1, options.repeat) 85 print 'Failed at run #%d/%d' % (i+1, options.repeat)
81 return 1 86 return 1
82 driver.quit() 87 driver.quit()
83 if options.repeat > 1: 88 if options.repeat > 1:
84 print 'Passed %d runs' % (options.repeat) 89 print 'Passed %d runs' % (options.repeat)
85 return 0 90 return 0
86 91
87 if __name__ == '__main__': 92 if __name__ == '__main__':
88 sys.exit(main(sys.argv[1:])) 93 sys.exit(main(sys.argv[1:]))
89 94
OLDNEW
« no previous file with comments | « no previous file | war/test.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698