summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2009-03-30 17:51:55 +0100
committerJosé Fonseca <[email protected]>2009-03-30 17:51:55 +0100
commita8251d041ac323712a00d5fed3e51fa5ad7bc987 (patch)
tree1f09b6fd2589b3f896601de0c15c47fe96380c6c
parentaf25470a5430c68e157489ff095baa5d548d8783 (diff)
python/test: Move the image comparison logic to the base test class.
-rw-r--r--src/gallium/state_trackers/python/tests/base.py21
-rw-r--r--src/gallium/state_trackers/python/tests/texture.py18
2 files changed, 21 insertions, 18 deletions
diff --git a/src/gallium/state_trackers/python/tests/base.py b/src/gallium/state_trackers/python/tests/base.py
index 8477aa5fc9b..2df2af0cdf2 100644
--- a/src/gallium/state_trackers/python/tests/base.py
+++ b/src/gallium/state_trackers/python/tests/base.py
@@ -33,6 +33,8 @@ Loosely inspired on Python's unittest module.
"""
+import sys
+
from gallium import *
@@ -115,6 +117,23 @@ class Test:
self._run(result)
result.summary()
+ def assert_rgba(self, surface, x, y, w, h, expected_rgba, pixel_tol=4.0/256, surface_tol=0.85):
+ total = h*w
+ different = surface.compare_tile_rgba(x, y, w, h, expected_rgba, tol=pixel_tol)
+ if different:
+ sys.stderr.write("%u out of %u pixels differ\n" % (different, total))
+
+ if float(total - different)/float(total) < surface_tol:
+ if 0:
+ rgba = FloatArray(h*w*4)
+ surface.get_tile_rgba(x, y, w, h, rgba)
+ show_image(w, h, Result=rgba, Expected=expected_rgba)
+ save_image(w, h, rgba, "result.png")
+ save_image(w, h, expected_rgba, "expected.png")
+ #sys.exit(0)
+
+ raise TestFailure
+
class TestCase(Test):
@@ -190,4 +209,4 @@ class TestResult:
print "%u tests, %u passed, %u skipped, %u failed" % (self.tests, self.passed, self.skipped, self.failed)
for description in self.failed_descriptions:
print " %s" % description
- \ No newline at end of file
+
diff --git a/src/gallium/state_trackers/python/tests/texture.py b/src/gallium/state_trackers/python/tests/texture.py
index bd95f734fe7..58b7e1c1246 100644
--- a/src/gallium/state_trackers/python/tests/texture.py
+++ b/src/gallium/state_trackers/python/tests/texture.py
@@ -27,7 +27,6 @@
##########################################################################
-import sys
from gallium import *
from base import *
@@ -291,22 +290,7 @@ class TextureTest(TestCase):
cbuf = cbuf_tex.get_surface()
- total = h*w
- different = cbuf.compare_tile_rgba(x, y, w, h, expected_rgba, tol=4.0/256)
- if different:
- sys.stderr.write("%u out of %u pixels differ\n" % (different, total))
-
- if float(total - different)/float(total) < 0.85:
-
- if 0:
- rgba = FloatArray(h*w*4)
- cbuf.get_tile_rgba(x, y, w, h, rgba)
- show_image(w, h, Result=rgba, Expected=expected_rgba)
- save_image(w, h, rgba, "result.png")
- save_image(w, h, expected_rgba, "expected.png")
- #sys.exit(0)
-
- raise TestFailure
+ self.assert_rgba(cbuf, x, y, w, h, expected_rgba, 4.0/256, 0.85)
del ctx