Browse Source

python/test: Move the test description logic to the base class.

tags/mesa_7_5_rc1
José Fonseca 16 years ago
parent
commit
5e815cf26f

+ 42
- 2
src/gallium/state_trackers/python/tests/base.py View File

@@ -137,14 +137,54 @@ class Test:

class TestCase(Test):
tags = ()

def __init__(self, dev, **kargs):
Test.__init__(self)
self.dev = dev
self.__dict__.update(kargs)

def description(self):
raise NotImplementedError
descriptions = []
for tag in self.tags:
try:
method = getattr(self, '_describe_' + tag)
except AttributeError:
description = str(getattr(self, tag, None))
else:
description = method()
if description is not None:
descriptions.append(tag + '=' + description)
return ' '.join(descriptions)

def _describe_target(self):
return {
PIPE_TEXTURE_1D: "1d",
PIPE_TEXTURE_2D: "2d",
PIPE_TEXTURE_3D: "3d",
PIPE_TEXTURE_CUBE: "cube",
}[self.target]

def _describe_format(self):
name = formats[self.format]
if name.startswith('PIPE_FORMAT_'):
name = name[12:]
name = name.lower()
return name

def _describe_face(self):
if self.target == PIPE_TEXTURE_CUBE:
return {
PIPE_TEX_FACE_POS_X: "+x",
PIPE_TEX_FACE_NEG_X: "-x",
PIPE_TEX_FACE_POS_Y: "+y",
PIPE_TEX_FACE_NEG_Y: "-y",
PIPE_TEX_FACE_POS_Z: "+z",
PIPE_TEX_FACE_NEG_Z: "-z",
}[self.face]
else:
return None

def test(self):
raise NotImplementedError

+ 12
- 25
src/gallium/state_trackers/python/tests/texture.py View File

@@ -100,31 +100,18 @@ def is_pot(n):
class TextureTest(TestCase):
def description(self):
target = {
PIPE_TEXTURE_1D: "1d",
PIPE_TEXTURE_2D: "2d",
PIPE_TEXTURE_3D: "3d",
PIPE_TEXTURE_CUBE: "cube",
}[self.target]
format = formats[self.format]
if self.target == PIPE_TEXTURE_CUBE:
face = {
PIPE_TEX_FACE_POS_X: "+x",
PIPE_TEX_FACE_NEG_X: "-x",
PIPE_TEX_FACE_POS_Y: "+y",
PIPE_TEX_FACE_NEG_Y: "-y",
PIPE_TEX_FACE_POS_Z: "+z",
PIPE_TEX_FACE_NEG_Z: "-z",
}[self.face]
else:
face = ""
return "%s %s %ux%ux%u last_level=%u face=%s level=%u zslice=%u" % (
target, format,
self.width, self.height, self.depth, self.last_level,
face, self.level, self.zslice,
)
tags = (
'target',
'format',
'width',
'height',
'depth',
'last_level',
'face',
'level',
'zslice',
)

def test(self):
dev = self.dev

Loading…
Cancel
Save