From 2fc1fd823115b870aaa1f2dbe3e308737b7ae44b Mon Sep 17 00:00:00 2001 From: "kkania@google.com" <kkania@google.com@0039d316-1c4b-4281-b951-d872f2087c98> Date: Wed, 28 Oct 2009 17:52:29 +0000 Subject: Change from absolute paths to relative paths to allow tests,etc. to be located in any directory, as long as the directory structure is maintained. Review URL: http://codereview.chromium.org/344013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30359 0039d316-1c4b-4281-b951-d872f2087c98 --- o3d/tests/lab/run_lab_test.py | 27 ++---- o3d/tests/lab/runner_constants.py | 191 +++++++++++++++++++------------------- o3d/tests/lab/runner_util.py | 8 +- 3 files changed, 112 insertions(+), 114 deletions(-) (limited to 'o3d/tests') diff --git a/o3d/tests/lab/run_lab_test.py b/o3d/tests/lab/run_lab_test.py index 028c61a..aa795c5 100644 --- a/o3d/tests/lab/run_lab_test.py +++ b/o3d/tests/lab/run_lab_test.py @@ -62,22 +62,21 @@ SCREEN_BPP = 32 join = os.path.join if util.IsWindows(): - IMAGE_DIFF_PATH = join(const.O3D_PATH, 'third_party', 'pdiff', 'files', + IMAGE_DIFF_PATH = join(const.BASE_PATH, 'third_party', 'pdiff', 'files', 'bin', 'win', 'perceptualdiff.exe') elif util.IsMac(): - IMAGE_DIFF_PATH = join(const.O3D_PATH, 'third_party', 'pdiff', 'files', + IMAGE_DIFF_PATH = join(const.BASE_PATH, 'third_party', 'pdiff', 'files', 'bin', 'mac', 'perceptualdiff') else: - IMAGE_DIFF_PATH = join(const.O3D_PATH, 'third_party', 'pdiff', 'files', + IMAGE_DIFF_PATH = join(const.BASE_PATH, 'third_party', 'pdiff', 'files', 'bin', 'linux', 'perceptualdiff') -SELENIUM_TEST_RUNNER_PATH = join(const.O3D_PATH, 'o3d', 'tests', 'selenium', - 'main.py') +SELENIUM_TEST_RUNNER_PATH = join(const.TEST_PATH, 'selenium', 'main.py') -SELENIUM_JAR_PATH = join(const.O3D_PATH, 'third_party', 'selenium_rc', 'files', +SELENIUM_JAR_PATH = join(const.BASE_PATH, 'third_party', 'selenium_rc', 'files', 'selenium-server', 'selenium-server.jar') -O3D_REFERENCE_IMAGES_PATH = join(const.O3D_PATH, 'o3d', 'o3d_assets', 'tests', +O3D_REFERENCE_IMAGES_PATH = join(const.O3D_PATH, 'o3d_assets', 'tests', 'screenshots') SCREENSHOTS_PATH = join(const.RESULTS_PATH,'screenshots') @@ -193,23 +192,17 @@ def RunTest(browser): Returns: True on success. """ - # Run selenium test. - os.chdir(const.AUTO_PATH) - if util.IsWindows(): if not run_util.EnsureWindowsScreenResolution(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_BPP): - logging.error('Failed to configure screen resolution.') - return 1 + logging.warn('Could not detect/change screen resolution.') - - # Clear all screenshots. logging.info('** Deleting previous screenshots.') if os.path.exists(SCREENSHOTS_PATH): shutil.rmtree(SCREENSHOTS_PATH) - - os.makedirs(SCREENSHOTS_PATH) + + os.makedirs(SCREENSHOTS_PATH) logging.info('** Running selenium tests...') @@ -263,7 +256,7 @@ def main(argv): config_path = argv[1] else: # Use default config file. - config_path = os.path.join(const.HOME_PATH, 'test_config.txt') + config_path = os.path.join(const.HOME, 'test_config.txt') # Uninstall/Install plugin. if not run_util.UninstallO3DPlugin(): diff --git a/o3d/tests/lab/runner_constants.py b/o3d/tests/lab/runner_constants.py index c0e2d0d..697a7d5 100644 --- a/o3d/tests/lab/runner_constants.py +++ b/o3d/tests/lab/runner_constants.py @@ -1,94 +1,97 @@ -#!/usr/bin/python2.6.2 -# Copyright 2009, Google Inc. -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: -# -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above -# copyright notice, this list of conditions and the following disclaimer -# in the documentation and/or other materials provided with the -# distribution. -# * Neither the name of Google Inc. nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -"""Defines common O3D test runner constants. - -""" - -import os -import sys - -import util - -join = os.path.join - -if util.IsWindows(): - AUTO_PATH = r'C:\auto' - PYTHON = r'C:\Python24\python.exe' - if util.IsXP(): - HOME_PATH = r'C:\Documents and Settings\testing' - else: - HOME_PATH = r'C:\Users\testing' - -elif util.IsMac(): - AUTO_PATH = '/Users/testing/auto' - PYTHON = 'python' - HOME_PATH = '/Users/testing' - -elif util.IsLinux(): - AUTO_PATH = '/home/testing/auto' - PYTHON = 'python' - HOME_PATH = '/home/testing' - -else: - print 'Only Windows, Mac, and Linux are supported.' - sys.exit(1) - -O3D_PATH = join(AUTO_PATH, 'o3d') -SCRIPTS_PATH = join(AUTO_PATH, 'scripts') -RESULTS_PATH = join(AUTO_PATH, 'results') -SOFTWARE_PATH = join(AUTO_PATH, 'software') - -# Build directories. -if util.IsWindows(): - BUILD_PATH = join(O3D_PATH, 'o3d', 'build') -elif util.IsMac(): - BUILD_PATH = join(O3D_PATH, 'xcodebuild') -else: - BUILD_PATH = join(O3D_PATH, 'sconsbuild') - -if os.path.exists(join(BUILD_PATH, 'Debug')): - PRODUCT_DIR_PATH = join(BUILD_PATH, 'Debug') -else: - PRODUCT_DIR_PATH = join(BUILD_PATH, 'Release') - -# Plugin locations. -INSTALL_PATHS = [] -if util.IsWindows(): - INSTALL_PATHS += [join(HOME_PATH, 'Application Data', 'Mozilla', - 'plugins', 'npo3dautoplugin.dll')] - INSTALL_PATHS += [join(HOME_PATH, 'Application Data', 'Google', 'O3D', - 'o3d_host.dll')] -elif util.IsMac(): - INSTALL_PATHS += ['/Library/Internet Plug-Ins/O3D.plugin'] -else: - INSTALL_PATHS += [join(HOME_PATH, '.mozilla', 'plugins', - 'libnpo3dautoplugin.so')] +#!/usr/bin/python2.6.2 +# Copyright 2009, Google Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following disclaimer +# in the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +"""Defines common O3D test runner constants. This file determines paths to +other O3D components relatively, so it must be placed in the right location. + +""" + +import os +import sys + +import util + +join = os.path.join + +# Make sure OS is supported. +if not util.IsWindows() and not util.IsMac() and not util.IsLinux(): + print 'Only Windows, Mac, and Linux are supported.' + sys.exit(1) + +# This path should be root/o3d/tests. +TEST_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +# This path should be root/o3d. +O3D_PATH = os.path.dirname(TEST_PATH) +# This path should be root, i.e., the checkout location. +BASE_PATH = os.path.dirname(O3D_PATH) + + +HOME = os.path.expanduser('~') +if HOME == '~': + print 'Cannot find user home directory.' + sys.exit(1) + +if util.IsWindows(): + PYTHON = r'C:\Python24\python.exe' +else: + PYTHON = 'python' + +# Note: this path may or may not exist. +RESULTS_PATH = join(TEST_PATH, 'results') + +# Build directories. +if util.IsWindows(): + BUILD_PATH = join(O3D_PATH, 'build') +elif util.IsMac(): + BUILD_PATH = join(BASE_PATH, 'xcodebuild') +else: + BUILD_PATH = join(BASE_PATH, 'sconsbuild') + +if os.path.exists(join(BUILD_PATH, 'Debug')): + PRODUCT_DIR_PATH = join(BUILD_PATH, 'Debug') +elif os.path.exists(join(BUILD_PATH, 'Release')): + PRODUCT_DIR_PATH = join(BUILD_PATH, 'Release') +else: + print 'Cannot find Debug or Release folder in ' + BUILD_PATH + sys.exit(1) + +# Plugin locations. +INSTALL_PATHS = [] +if util.IsWindows(): + INSTALL_PATHS += [join(HOME, 'Application Data', 'Mozilla', + 'plugins', 'npo3dautoplugin.dll')] + INSTALL_PATHS += [join(HOME, 'Application Data', 'Google', 'O3D', + 'o3d_host.dll')] +elif util.IsMac(): + INSTALL_PATHS += ['/Library/Internet Plug-Ins/O3D.plugin'] +else: + INSTALL_PATHS += [join(HOME, '.mozilla', 'plugins', + 'libnpo3dautoplugin.so')] diff --git a/o3d/tests/lab/runner_util.py b/o3d/tests/lab/runner_util.py index 46bd32e..46a9ba7 100644 --- a/o3d/tests/lab/runner_util.py +++ b/o3d/tests/lab/runner_util.py @@ -42,8 +42,9 @@ import sys import runner_constants as const import util -CHANGE_RESOLUTION_PATH = (const.O3D_PATH + '/o3d/tests/lab' - '/ChangeResolution/Debug/changeresolution.exe') +CHANGE_RESOLUTION_PATH = os.path.join(const.TEST_PATH, 'lab', + 'ChangeResolution','Debug', + 'changeresolution.exe') def EnsureWindowsScreenResolution(width, height, bpp): """Performs all steps needed to configure system for testing on Windows. @@ -55,7 +56,8 @@ def EnsureWindowsScreenResolution(width, height, bpp): Returns: True on success. """ - + if not os.path.exists(CHANGE_RESOLUTION_PATH): + return False command = 'call "%s" %d %d %d' % (CHANGE_RESOLUTION_PATH, width, height, bpp) -- cgit v1.1