| OLD | NEW |
| 1 #!/usr/bin/python2.6.2 | 1 #!/usr/bin/python2.6.2 |
| 2 # Copyright 2009, Google Inc. | 2 # Copyright 2009, Google Inc. |
| 3 # All rights reserved. | 3 # All rights reserved. |
| 4 # | 4 # |
| 5 # Redistribution and use in source and binary forms, with or without | 5 # Redistribution and use in source and binary forms, with or without |
| 6 # modification, are permitted provided that the following conditions are | 6 # modification, are permitted provided that the following conditions are |
| 7 # met: | 7 # met: |
| 8 # | 8 # |
| 9 # * Redistributions of source code must retain the above copyright | 9 # * Redistributions of source code must retain the above copyright |
| 10 # notice, this list of conditions and the following disclaimer. | 10 # notice, this list of conditions and the following disclaimer. |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 55 import util | 55 import util |
| 56 | 56 |
| 57 # Resolution to configure video card to before running tests. | 57 # Resolution to configure video card to before running tests. |
| 58 SCREEN_WIDTH = 1280 | 58 SCREEN_WIDTH = 1280 |
| 59 SCREEN_HEIGHT = 1024 | 59 SCREEN_HEIGHT = 1024 |
| 60 SCREEN_BPP = 32 | 60 SCREEN_BPP = 32 |
| 61 | 61 |
| 62 join = os.path.join | 62 join = os.path.join |
| 63 | 63 |
| 64 if util.IsWindows(): | 64 if util.IsWindows(): |
| 65 IMAGE_DIFF_PATH = join(const.O3D_PATH, 'third_party', 'pdiff', 'files', | 65 IMAGE_DIFF_PATH = join(const.BASE_PATH, 'third_party', 'pdiff', 'files', |
| 66 'bin', 'win', 'perceptualdiff.exe') | 66 'bin', 'win', 'perceptualdiff.exe') |
| 67 elif util.IsMac(): | 67 elif util.IsMac(): |
| 68 IMAGE_DIFF_PATH = join(const.O3D_PATH, 'third_party', 'pdiff', 'files', | 68 IMAGE_DIFF_PATH = join(const.BASE_PATH, 'third_party', 'pdiff', 'files', |
| 69 'bin', 'mac', 'perceptualdiff') | 69 'bin', 'mac', 'perceptualdiff') |
| 70 else: | 70 else: |
| 71 IMAGE_DIFF_PATH = join(const.O3D_PATH, 'third_party', 'pdiff', 'files', | 71 IMAGE_DIFF_PATH = join(const.BASE_PATH, 'third_party', 'pdiff', 'files', |
| 72 'bin', 'linux', 'perceptualdiff') | 72 'bin', 'linux', 'perceptualdiff') |
| 73 | 73 |
| 74 SELENIUM_TEST_RUNNER_PATH = join(const.O3D_PATH, 'o3d', 'tests', 'selenium', | 74 SELENIUM_TEST_RUNNER_PATH = join(const.TEST_PATH, 'selenium', 'main.py') |
| 75 'main.py') | |
| 76 | 75 |
| 77 SELENIUM_JAR_PATH = join(const.O3D_PATH, 'third_party', 'selenium_rc', 'files', | 76 SELENIUM_JAR_PATH = join(const.BASE_PATH, 'third_party', 'selenium_rc', 'files', |
| 78 'selenium-server', 'selenium-server.jar') | 77 'selenium-server', 'selenium-server.jar') |
| 79 | 78 |
| 80 O3D_REFERENCE_IMAGES_PATH = join(const.O3D_PATH, 'o3d', 'o3d_assets', 'tests', | 79 O3D_REFERENCE_IMAGES_PATH = join(const.O3D_PATH, 'o3d_assets', 'tests', |
| 81 'screenshots') | 80 'screenshots') |
| 82 | 81 |
| 83 SCREENSHOTS_PATH = join(const.RESULTS_PATH,'screenshots') | 82 SCREENSHOTS_PATH = join(const.RESULTS_PATH,'screenshots') |
| 84 | 83 |
| 85 # Set total test timeout to 90 minutes. | 84 # Set total test timeout to 90 minutes. |
| 86 TEST_TIMEOUT_SECS = 60 * 90.0 | 85 TEST_TIMEOUT_SECS = 60 * 90.0 |
| 87 | 86 |
| 88 SELENIUM_BROWSER_PREFIXES = { | 87 SELENIUM_BROWSER_PREFIXES = { |
| 89 'ie': '*iexplore', | 88 'ie': '*iexplore', |
| 90 'ff': '*firefox', | 89 'ff': '*firefox', |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 | 185 |
| 187 | 186 |
| 188 | 187 |
| 189 def RunTest(browser): | 188 def RunTest(browser): |
| 190 """Runs tests on |browser|. | 189 """Runs tests on |browser|. |
| 191 Args: | 190 Args: |
| 192 browser: the browser to test. | 191 browser: the browser to test. |
| 193 Returns: | 192 Returns: |
| 194 True on success. | 193 True on success. |
| 195 """ | 194 """ |
| 196 # Run selenium test. | |
| 197 os.chdir(const.AUTO_PATH) | |
| 198 | |
| 199 if util.IsWindows(): | 195 if util.IsWindows(): |
| 200 if not run_util.EnsureWindowsScreenResolution(SCREEN_WIDTH, SCREEN_HEIGHT, | 196 if not run_util.EnsureWindowsScreenResolution(SCREEN_WIDTH, SCREEN_HEIGHT, |
| 201 SCREEN_BPP): | 197 SCREEN_BPP): |
| 202 logging.error('Failed to configure screen resolution.') | 198 logging.error('Failed to configure screen resolution.') |
| 203 return 1 | 199 return 1 |
| 204 | 200 |
| 205 | 201 |
| 206 | 202 |
| 207 # Clear all screenshots. | 203 # Clear all screenshots. |
| 208 logging.info('** Deleting previous screenshots.') | 204 logging.info('** Deleting previous screenshots.') |
| 209 if os.path.exists(SCREENSHOTS_PATH): | 205 if os.path.exists(SCREENSHOTS_PATH): |
| 210 shutil.rmtree(SCREENSHOTS_PATH) | 206 shutil.rmtree(SCREENSHOTS_PATH) |
| 211 | 207 |
| 212 os.makedirs(SCREENSHOTS_PATH) | 208 os.makedirs(SCREENSHOTS_PATH) |
| 213 | 209 |
| 214 logging.info('** Running selenium tests...') | 210 logging.info('** Running selenium tests...') |
| 215 | 211 |
| 216 # -u for unbuffered output. | 212 # -u for unbuffered output. |
| 217 # Use Python2.4 for two reasons. First, this is more or less the standard. | 213 # Use Python2.4 for two reasons. First, this is more or less the standard. |
| 218 # Second, if we use Python2.6 or later, we must manually shutdown the | 214 # Second, if we use Python2.6 or later, we must manually shutdown the |
| 219 # httpserver, or the next run will overlap ports, which causes | 215 # httpserver, or the next run will overlap ports, which causes |
| 220 # some strange problems/exceptions. | 216 # some strange problems/exceptions. |
| 221 args = [const.PYTHON, '-u', SELENIUM_TEST_RUNNER_PATH] | 217 args = [const.PYTHON, '-u', SELENIUM_TEST_RUNNER_PATH] |
| 222 | 218 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 | 252 |
| 257 if len(argv) > 2: | 253 if len(argv) > 2: |
| 258 logging.error('Usage: run_lab_test.py [test_config_file]') | 254 logging.error('Usage: run_lab_test.py [test_config_file]') |
| 259 return 1 | 255 return 1 |
| 260 | 256 |
| 261 if len(argv) == 2: | 257 if len(argv) == 2: |
| 262 # Use given config file. | 258 # Use given config file. |
| 263 config_path = argv[1] | 259 config_path = argv[1] |
| 264 else: | 260 else: |
| 265 # Use default config file. | 261 # Use default config file. |
| 266 config_path = os.path.join(const.HOME_PATH, 'test_config.txt') | 262 config_path = os.path.join(const.HOME, 'test_config.txt') |
| 267 | 263 |
| 268 # Uninstall/Install plugin. | 264 # Uninstall/Install plugin. |
| 269 if not run_util.UninstallO3DPlugin(): | 265 if not run_util.UninstallO3DPlugin(): |
| 270 logging.error('Could not successfully uninstall O3D. Tests will not be run.'
) | 266 logging.error('Could not successfully uninstall O3D. Tests will not be run.'
) |
| 271 return 1 | 267 return 1 |
| 272 if not run_util.InstallO3DPlugin(): | 268 if not run_util.InstallO3DPlugin(): |
| 273 logging.error('Unable to install O3D plugin. Tests will not be run.') | 269 logging.error('Unable to install O3D plugin. Tests will not be run.') |
| 274 return 1 | 270 return 1 |
| 275 | 271 |
| 276 # Grab test configuration info from config file. | 272 # Grab test configuration info from config file. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 if all_test_passed: | 313 if all_test_passed: |
| 318 logging.info('All tests passed.') | 314 logging.info('All tests passed.') |
| 319 return 0 | 315 return 0 |
| 320 else: | 316 else: |
| 321 logging.info('Tests failed.') | 317 logging.info('Tests failed.') |
| 322 return 1 | 318 return 1 |
| 323 | 319 |
| 324 if __name__ == '__main__': | 320 if __name__ == '__main__': |
| 325 code = main(sys.argv) | 321 code = main(sys.argv) |
| 326 sys.exit(code) | 322 sys.exit(code) |
| OLD | NEW |