diff options
author | apatrick@google.com <apatrick@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 19:56:24 +0000 |
---|---|---|
committer | apatrick@google.com <apatrick@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-12 19:56:24 +0000 |
commit | ccf02ac9bd67d4d49ad8264ae7fc6098e361ff4b (patch) | |
tree | fc6e4a0552431c7297798fad46f57fb76c35a3b3 /o3d/tests | |
parent | dfe9d1d2de7fd8d244599b79a22898cce8df7c81 (diff) | |
download | chromium_src-ccf02ac9bd67d4d49ad8264ae7fc6098e361ff4b.zip chromium_src-ccf02ac9bd67d4d49ad8264ae7fc6098e361ff4b.tar.gz chromium_src-ccf02ac9bd67d4d49ad8264ae7fc6098e361ff4b.tar.bz2 |
Made all line endings consistently LF and added svn:eol-style=LF property to files with these names / extensions.
c
cc
h
mm
txt
idl
py
js
html
css
gyp
gypi
xml
shader
json
htm
README
DEPS
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31811 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/tests')
-rw-r--r-- | o3d/tests/lab/runner_constants.py | 2 | ||||
-rw-r--r-- | o3d/tests/selenium/pdiff_test.py | 264 | ||||
-rw-r--r-- | o3d/tests/selenium/tests/render-target-clear-test.html | 312 |
3 files changed, 289 insertions, 289 deletions
diff --git a/o3d/tests/lab/runner_constants.py b/o3d/tests/lab/runner_constants.py index a7ec00b..33afbe5 100644 --- a/o3d/tests/lab/runner_constants.py +++ b/o3d/tests/lab/runner_constants.py @@ -74,7 +74,7 @@ elif util.IsMac(): BUILD_PATH = join(BASE_PATH, 'xcodebuild') else: BUILD_PATH = join(BASE_PATH, 'sconsbuild') -
+ # Product directory. if os.path.exists(join(BUILD_PATH, 'Debug')): PRODUCT_DIR_PATH = join(BUILD_PATH, 'Debug') diff --git a/o3d/tests/selenium/pdiff_test.py b/o3d/tests/selenium/pdiff_test.py index d1d4940..0a91f55 100644 --- a/o3d/tests/selenium/pdiff_test.py +++ b/o3d/tests/selenium/pdiff_test.py @@ -1,132 +1,132 @@ -import os
-import re
-import subprocess
-import unittest
-import sys
-
-import selenium_utilities
-import selenium_constants
-
-class PDiffTest(unittest.TestCase):
- """A perceptual diff test class, for running perceptual diffs on any
- number of screenshots."""
-
- def __init__(self, name, num_screenshots, screenshot_name, pdiff_path,
- gen_dir, ref_dir, options):
- unittest.TestCase.__init__(self, name)
- self.name = name
- self.num_screenshots = num_screenshots
- self.screenshot_name = screenshot_name
- self.pdiff_path = pdiff_path
- self.gen_dir = gen_dir
- self.ref_dir = ref_dir
- self.options = options
-
- def shortDescription(self):
- """override unittest.TestCase shortDescription for our own descriptions."""
- return "Screenshot comparison for: " + self.name
-
- def PDiffTest(self):
- """Runs a generic Perceptual Diff test."""
- # Get arguments for perceptual diff.
- pixel_threshold = "10"
- alpha_threshold = "1.0"
- use_colorfactor = False
- use_downsample = False
- use_edge = True
- edge_threshold = "5"
-
- for opt in self.options:
- if opt.startswith("pdiff_threshold"):
- pixel_threshold = selenium_utilities.GetArgument(opt)
- elif (opt.startswith("pdiff_threshold_mac") and
- sys.platform == "darwin"):
- pixel_threshold = selenium_utilities.GetArgument(opt)
- elif (opt.startswith("pdiff_threshold_win") and
- sys.platform == 'win32' or sys.platform == "cygwin"):
- pixel_threshold = selenium_utilities.GetArgument(opt)
- elif (opt.startswith("pdiff_threshold_linux") and
- sys.platform[:5] == "linux"):
- pixel_threshold = selenium_utilities.GetArgument(opt)
- elif (opt.startswith("colorfactor")):
- colorfactor = selenium_utilities.GetArgument(opt)
- use_colorfactor = True
- elif (opt.startswith("downsample")):
- downsample_factor = selenium_utilities.GetArgument(opt)
- use_downsample = True
- elif (opt.startswith("pdiff_edge_ignore_off")):
- use_edge = False
- elif (opt.startswith("pdiff_edge_threshold")):
- edge_threshold = selenium_utilities.GetArgument(opt)
-
- results = []
- # Loop over number of screenshots.
- for screenshot_no in range(self.num_screenshots):
- # Find reference image.
- shotname = self.screenshot_name + str(screenshot_no + 1)
- J = os.path.join
- platform_img_path = J(self.ref_dir,
- selenium_constants.PLATFORM_SCREENSHOT_DIR,
- shotname + '_reference.png')
- reg_img_path = J(self.ref_dir,
- selenium_constants.DEFAULT_SCREENSHOT_DIR,
- shotname + '_reference.png')
-
- if os.path.exists(platform_img_path):
- ref_img_path = platform_img_path
- elif os.path.exists(reg_img_path):
- ref_img_path = reg_img_path
- else:
- self.fail('Reference image for ' + shotname + ' not found.')
-
- # Find generated image.
- gen_img_path = J(self.gen_dir, shotname + '.png')
- diff_img_path = J(self.gen_dir, 'cmp_' + shotname + '.png')
-
- self.assertTrue(os.path.exists(gen_img_path),
- 'Generated screenshot for ' + shotname + ' not found.\n')
-
- # Run perceptual diff
- arguments = [self.pdiff_path,
- ref_img_path,
- gen_img_path,
- "-output", diff_img_path,
- "-fov", "45",
- "-alphaThreshold", alpha_threshold,
- # Turn on verbose output for the percetual diff so we
- # can see how far off we are on the threshold.
- "-verbose",
- # Set the threshold to zero so we can get a count
- # of the different pixels. This causes the program
- # to return failure for most images, but we can compare
- # the values ourselves below.
- "-threshold", "0"]
- if use_colorfactor:
- arguments += ["-colorfactor", colorfactor]
- if use_downsample:
- arguments += ["-downsample", downsample_factor]
- if use_edge:
- arguments += ["-ignoreEdges", edge_threshold]
-
- pdiff_pipe = subprocess.Popen(arguments,
- stdout=subprocess.PIPE,
- stderr=subprocess.PIPE)
- (pdiff_stdout, pdiff_stderr) = pdiff_pipe.communicate()
- result = pdiff_pipe.returncode
- # Find out how many pixels were different by looking at the output.
- pixel_re = re.compile("(\d+) pixels are different", re.DOTALL)
- pixel_match = pixel_re.search(pdiff_stdout)
- different_pixels = "0"
- if pixel_match:
- different_pixels = pixel_match.group(1)
-
- results += [(shotname, int(different_pixels))]
-
- all_tests_passed = True
- msg = "Pixel threshold is %s. Failing screenshots:\n" % pixel_threshold
- for name, pixels in results:
- if pixels >= int(pixel_threshold):
- all_tests_passed = False
- msg += " %s, differing by %s\n" % (name, str(pixels))
-
- self.assertTrue(all_tests_passed, msg)
+import os +import re +import subprocess +import unittest +import sys + +import selenium_utilities +import selenium_constants + +class PDiffTest(unittest.TestCase): + """A perceptual diff test class, for running perceptual diffs on any + number of screenshots.""" + + def __init__(self, name, num_screenshots, screenshot_name, pdiff_path, + gen_dir, ref_dir, options): + unittest.TestCase.__init__(self, name) + self.name = name + self.num_screenshots = num_screenshots + self.screenshot_name = screenshot_name + self.pdiff_path = pdiff_path + self.gen_dir = gen_dir + self.ref_dir = ref_dir + self.options = options + + def shortDescription(self): + """override unittest.TestCase shortDescription for our own descriptions.""" + return "Screenshot comparison for: " + self.name + + def PDiffTest(self): + """Runs a generic Perceptual Diff test.""" + # Get arguments for perceptual diff. + pixel_threshold = "10" + alpha_threshold = "1.0" + use_colorfactor = False + use_downsample = False + use_edge = True + edge_threshold = "5" + + for opt in self.options: + if opt.startswith("pdiff_threshold"): + pixel_threshold = selenium_utilities.GetArgument(opt) + elif (opt.startswith("pdiff_threshold_mac") and + sys.platform == "darwin"): + pixel_threshold = selenium_utilities.GetArgument(opt) + elif (opt.startswith("pdiff_threshold_win") and + sys.platform == 'win32' or sys.platform == "cygwin"): + pixel_threshold = selenium_utilities.GetArgument(opt) + elif (opt.startswith("pdiff_threshold_linux") and + sys.platform[:5] == "linux"): + pixel_threshold = selenium_utilities.GetArgument(opt) + elif (opt.startswith("colorfactor")): + colorfactor = selenium_utilities.GetArgument(opt) + use_colorfactor = True + elif (opt.startswith("downsample")): + downsample_factor = selenium_utilities.GetArgument(opt) + use_downsample = True + elif (opt.startswith("pdiff_edge_ignore_off")): + use_edge = False + elif (opt.startswith("pdiff_edge_threshold")): + edge_threshold = selenium_utilities.GetArgument(opt) + + results = [] + # Loop over number of screenshots. + for screenshot_no in range(self.num_screenshots): + # Find reference image. + shotname = self.screenshot_name + str(screenshot_no + 1) + J = os.path.join + platform_img_path = J(self.ref_dir, + selenium_constants.PLATFORM_SCREENSHOT_DIR, + shotname + '_reference.png') + reg_img_path = J(self.ref_dir, + selenium_constants.DEFAULT_SCREENSHOT_DIR, + shotname + '_reference.png') + + if os.path.exists(platform_img_path): + ref_img_path = platform_img_path + elif os.path.exists(reg_img_path): + ref_img_path = reg_img_path + else: + self.fail('Reference image for ' + shotname + ' not found.') + + # Find generated image. + gen_img_path = J(self.gen_dir, shotname + '.png') + diff_img_path = J(self.gen_dir, 'cmp_' + shotname + '.png') + + self.assertTrue(os.path.exists(gen_img_path), + 'Generated screenshot for ' + shotname + ' not found.\n') + + # Run perceptual diff + arguments = [self.pdiff_path, + ref_img_path, + gen_img_path, + "-output", diff_img_path, + "-fov", "45", + "-alphaThreshold", alpha_threshold, + # Turn on verbose output for the percetual diff so we + # can see how far off we are on the threshold. + "-verbose", + # Set the threshold to zero so we can get a count + # of the different pixels. This causes the program + # to return failure for most images, but we can compare + # the values ourselves below. + "-threshold", "0"] + if use_colorfactor: + arguments += ["-colorfactor", colorfactor] + if use_downsample: + arguments += ["-downsample", downsample_factor] + if use_edge: + arguments += ["-ignoreEdges", edge_threshold] + + pdiff_pipe = subprocess.Popen(arguments, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + (pdiff_stdout, pdiff_stderr) = pdiff_pipe.communicate() + result = pdiff_pipe.returncode + # Find out how many pixels were different by looking at the output. + pixel_re = re.compile("(\d+) pixels are different", re.DOTALL) + pixel_match = pixel_re.search(pdiff_stdout) + different_pixels = "0" + if pixel_match: + different_pixels = pixel_match.group(1) + + results += [(shotname, int(different_pixels))] + + all_tests_passed = True + msg = "Pixel threshold is %s. Failing screenshots:\n" % pixel_threshold + for name, pixels in results: + if pixels >= int(pixel_threshold): + all_tests_passed = False + msg += " %s, differing by %s\n" % (name, str(pixels)) + + self.assertTrue(all_tests_passed, msg) diff --git a/o3d/tests/selenium/tests/render-target-clear-test.html b/o3d/tests/selenium/tests/render-target-clear-test.html index 91c50b7..65ccbb1 100644 --- a/o3d/tests/selenium/tests/render-target-clear-test.html +++ b/o3d/tests/selenium/tests/render-target-clear-test.html @@ -1,156 +1,156 @@ -<!--
-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.
--->
-<!--
-Tests that Render Targets clear correctly.
--->
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="content-type" content="text/html; charset=UTF-8">
-<title>
-Render Target Clear Test.
-</title>
-<link rel="stylesheet" type="text/css" href="assets/style.css" />
-<!-- Include sample javascript library functions-->
-<script type="text/javascript" src="../../../samples/o3djs/base.js"></script>
-
-<!-- Our javascript code -->
-<script type="text/javascript" id="o3dscript">
-o3djs.require('o3djs.util');
-o3djs.require('o3djs.math');
-o3djs.require('o3djs.rendergraph');
-o3djs.require('o3djs.primitives');
-o3djs.require('o3djs.material');
-
-// Events
-// init() once the page has finished loading.
-// unload() when the page is unloaded.
-window.onload = init;
-window.onunload = unload;
-
-// global variables
-var g_o3dElement;
-var g_o3d;
-var g_math;
-var g_client;
-var g_viewInfo;
-var g_pack;
-var g_root;
-var g_o3dElement;
-
-/**
- * Creates the client area.
- */
-function init() {
- o3djs.util.makeClients(initStep2);
-}
-
-/**
- * Initializes O3D and creates one shape.
- * @param {Array} clientElements Array of o3d object elements.
- */
-function initStep2(clientElements) {
- // Initializes global variables and libraries.
- g_o3dElement = clientElements[0];
- g_o3d = g_o3dElement.o3d;
- g_math = o3djs.math;
- g_client = g_o3dElement.client;
-
- // Creates a pack to manage our resources/assets
- g_pack = g_client.createPack();
-
- g_root = g_pack.createObject('Transform');
-
- g_viewInfo = o3djs.rendergraph.createBasicView(
- g_pack,
- g_root,
- g_client.renderGraphRoot,
- [0.2, 0.3, 0.4, 1]);
-
- var clientWidth = g_client.width;
- var clientHeight = g_client.height;
- g_viewInfo.drawContext.projection = g_math.matrix4.orthographic(
- -clientWidth * 0.5 + 0.5,
- clientWidth * 0.5 + 0.5,
- -clientHeight * 0.5 + 0.5,
- clientHeight * 0.5 + 0.5,
- 0.001,
- 1000);
- g_viewInfo.drawContext.view = g_math.matrix4.lookAt(
- [0, 500, 0], // eye
- [0, 0, 0], // target
- [0, 0, -1]); // up
-
- for (var ii = 0; ii < 3; ++ii) {
- var texture = g_pack.createTexture2D(
- 256, 256, g_o3d.Texture.ARGB8, 1, true);
- var surface = texture.getRenderSurface(0);
- var renderSet = g_pack.createObject('RenderSurfaceSet');
- renderSet.renderSurface = surface;
- // Make render before the main display.
- renderSet.priority = -10 + ii;
-
- var material = o3djs.material.createConstantMaterial(
- g_pack, g_viewInfo, texture);
- var shape = o3djs.primitives.createPlane(g_pack, material, 128, 128, 1, 1);
- var transform = g_pack.createObject("Transform");
- transform.translate(-200 + 150 * ii, 0, 0);
- transform.parent = g_root;
- transform.addShape(shape);
- var clearColor = [0, 0, 0, 1];
- clearColor[ii] = 1;
- var viewInfo = o3djs.rendergraph.createBasicView(
- g_pack, null, renderSet, clearColor);
- // Splice it into the render graph AFTER everything is setup.
- renderSet.parent = g_client.renderGraphRoot;
- }
-
- window.g_testResult = true;
-}
-
-/**
- * Remove any callbacks so they don't get called after the page has unloaded.
- */
-function unload() {
- if (g_client) {
- g_client.cleanup();
- }
-}
-</script>
-</head>
-<body>
-<h1>Tests that render targets clear correctly.</h1>
-Should be red, green, blue on dark blue background.
-<div id="o3d" style="width: 600px; height: 600px"></div>
-</body>
-</html>
-
+<!-- +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. +--> +<!-- +Tests that Render Targets clear correctly. +--> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" + "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<head> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> +<title> +Render Target Clear Test. +</title> +<link rel="stylesheet" type="text/css" href="assets/style.css" /> +<!-- Include sample javascript library functions--> +<script type="text/javascript" src="../../../samples/o3djs/base.js"></script> + +<!-- Our javascript code --> +<script type="text/javascript" id="o3dscript"> +o3djs.require('o3djs.util'); +o3djs.require('o3djs.math'); +o3djs.require('o3djs.rendergraph'); +o3djs.require('o3djs.primitives'); +o3djs.require('o3djs.material'); + +// Events +// init() once the page has finished loading. +// unload() when the page is unloaded. +window.onload = init; +window.onunload = unload; + +// global variables +var g_o3dElement; +var g_o3d; +var g_math; +var g_client; +var g_viewInfo; +var g_pack; +var g_root; +var g_o3dElement; + +/** + * Creates the client area. + */ +function init() { + o3djs.util.makeClients(initStep2); +} + +/** + * Initializes O3D and creates one shape. + * @param {Array} clientElements Array of o3d object elements. + */ +function initStep2(clientElements) { + // Initializes global variables and libraries. + g_o3dElement = clientElements[0]; + g_o3d = g_o3dElement.o3d; + g_math = o3djs.math; + g_client = g_o3dElement.client; + + // Creates a pack to manage our resources/assets + g_pack = g_client.createPack(); + + g_root = g_pack.createObject('Transform'); + + g_viewInfo = o3djs.rendergraph.createBasicView( + g_pack, + g_root, + g_client.renderGraphRoot, + [0.2, 0.3, 0.4, 1]); + + var clientWidth = g_client.width; + var clientHeight = g_client.height; + g_viewInfo.drawContext.projection = g_math.matrix4.orthographic( + -clientWidth * 0.5 + 0.5, + clientWidth * 0.5 + 0.5, + -clientHeight * 0.5 + 0.5, + clientHeight * 0.5 + 0.5, + 0.001, + 1000); + g_viewInfo.drawContext.view = g_math.matrix4.lookAt( + [0, 500, 0], // eye + [0, 0, 0], // target + [0, 0, -1]); // up + + for (var ii = 0; ii < 3; ++ii) { + var texture = g_pack.createTexture2D( + 256, 256, g_o3d.Texture.ARGB8, 1, true); + var surface = texture.getRenderSurface(0); + var renderSet = g_pack.createObject('RenderSurfaceSet'); + renderSet.renderSurface = surface; + // Make render before the main display. + renderSet.priority = -10 + ii; + + var material = o3djs.material.createConstantMaterial( + g_pack, g_viewInfo, texture); + var shape = o3djs.primitives.createPlane(g_pack, material, 128, 128, 1, 1); + var transform = g_pack.createObject("Transform"); + transform.translate(-200 + 150 * ii, 0, 0); + transform.parent = g_root; + transform.addShape(shape); + var clearColor = [0, 0, 0, 1]; + clearColor[ii] = 1; + var viewInfo = o3djs.rendergraph.createBasicView( + g_pack, null, renderSet, clearColor); + // Splice it into the render graph AFTER everything is setup. + renderSet.parent = g_client.renderGraphRoot; + } + + window.g_testResult = true; +} + +/** + * Remove any callbacks so they don't get called after the page has unloaded. + */ +function unload() { + if (g_client) { + g_client.cleanup(); + } +} +</script> +</head> +<body> +<h1>Tests that render targets clear correctly.</h1> +Should be red, green, blue on dark blue background. +<div id="o3d" style="width: 600px; height: 600px"></div> +</body> +</html> + |