From: José Fonseca Date: Sat, 17 Mar 2012 14:50:04 +0000 (+0000) Subject: Make it easier to add more tests. X-Git-Url: https://git.cworth.org/git?p=apitrace-tests;a=commitdiff_plain;h=f974fba9761c17e6366a36d1171fc607c79daae5 Make it easier to add more tests. --- diff --git a/.gitignore b/.gitignore index 00e5a4e..76d923f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,13 @@ .*.sw? *.a +*.diff.* +*.diff.* *.o *.pyc *.so -*.diff.* -*.thumb.* *.src.* -*.diff.* +*.thumb.* +*.trace index.html CMakeCache.txt CMakeFiles diff --git a/tool_driver.py b/tool_driver.py index 4cc36c6..4cbcc37 100755 --- a/tool_driver.py +++ b/tool_driver.py @@ -37,13 +37,9 @@ from base_driver import * class AsciiComparer: - def __init__(self, srcStream, refFileName, verbose=False): + def __init__(self, srcStream, refStream, verbose=False): self.srcStream = srcStream - self.refFileName = refFileName - if refFileName: - self.refStream = open(refFileName, 'rt') - else: - self.refStream = None + self.refStream = refStream def readLines(self, stream): lines = [] @@ -76,42 +72,29 @@ class AsciiComparer: class ToolDriver(Driver): - def runTool(self): + def runScript(self, refScript): '''Run the application standalone, skipping this test if it fails by some reason.''' - if self.options.ref_dump: - stdout = subprocess.PIPE - else: - stdout = None + refStream = open(refScript, 'rt') - cmd = [self.options.apitrace] + self.args - p = popen(cmd, cwd=options.cwd, stdout=stdout) + args = refStream.readline().split() + cmd = [self.options.apitrace] + args + cwd = os.path.dirname(os.path.abspath(refScript)) + p = popen(cmd, cwd=cwd, stdout=subprocess.PIPE) - if self.options.ref_dump: - comparer = AsciiComparer(p.stdout, self.options.ref_dump, self.options.verbose) - comparer.compare() + comparer = AsciiComparer(p.stdout, refStream, self.options.verbose) + comparer.compare() p.wait() if p.returncode != 0: fail('tool returned code %i' % p.returncode) - def createOptParser(self): - optparser = Driver.createOptParser(self) - - optparser.add_option( - '--ref-dump', metavar='PATH', - type='string', dest='ref_dump', default=None, - help='reference dump') - - return optparser - def run(self): - global options - - (options, args) = self.parseOptions() + self.parseOptions() - self.runTool() + for arg in self.args: + self.runScript(arg) pass_() diff --git a/traces/CMakeLists.txt b/traces/CMakeLists.txt index ab18a52..5262164 100644 --- a/traces/CMakeLists.txt +++ b/traces/CMakeLists.txt @@ -1,16 +1,11 @@ -set (traces - incomplete-call - zlib-no-eof -) +file (GLOB scripts RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.script) -foreach (trace ${traces}) +foreach (script ${scripts}) add_test( - NAME trace_${trace} + NAME ${script} COMMAND python ${CMAKE_SOURCE_DIR}/tool_driver.py --apitrace ${APITRACE_EXECUTABLE} - --ref-dump ${CMAKE_CURRENT_SOURCE_DIR}/${trace}.ref.txt - -- - dump --call-nos=no ${CMAKE_CURRENT_SOURCE_DIR}/${trace}.trace + ${CMAKE_CURRENT_SOURCE_DIR}/${script} ) -endforeach (trace) +endforeach (script) diff --git a/traces/incomplete-call.ref.txt b/traces/incomplete-call.ref.txt deleted file mode 100644 index e277c19..0000000 --- a/traces/incomplete-call.ref.txt +++ /dev/null @@ -1,6 +0,0 @@ -glXChooseFBConfig(dpy = 0xa7d2a0, screen = 0, attribList = {GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, 1, 0}, nitems = &12) = {0xa9c480, 0xa9c570, 0xa9e260, 0xa9e350, 0xa9c750, 0xa9c840, 0xa9ccf0, 0xa9e530, 0xa9e620, 0xa9ead0, 0xa9cde0, 0xa9ebc0} -glXGetVisualFromFBConfig(dpy = 0xa7d2a0, config = 0xa9c480) = &{visual = 0xa88178, visualid = 154, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} -glXCreateNewContext(dpy = 0xa7d2a0, config = 0xa9c480, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0xa95660 -glXMakeContextCurrent(dpy = 0xa7d2a0, draw = 67108866, read = 67108866, ctx = 0xa95660) = True -glXMakeContextCurrent(dpy = 0xa7d2a0, draw = 67108866, read = 67108866, ctx = 0xa95660) = True -glGetIntegerv(pname = GL_RED_BITS, params = ?) // incomplete diff --git a/traces/incomplete-call.script b/traces/incomplete-call.script new file mode 100644 index 0000000..317a22a --- /dev/null +++ b/traces/incomplete-call.script @@ -0,0 +1,7 @@ +dump incomplete-call.trace +1 glXChooseFBConfig(dpy = 0xa7d2a0, screen = 0, attribList = {GLX_RED_SIZE, 1, GLX_GREEN_SIZE, 1, GLX_BLUE_SIZE, 1, GLX_ALPHA_SIZE, 1, GLX_DOUBLEBUFFER, 1, 0}, nitems = &12) = {0xa9c480, 0xa9c570, 0xa9e260, 0xa9e350, 0xa9c750, 0xa9c840, 0xa9ccf0, 0xa9e530, 0xa9e620, 0xa9ead0, 0xa9cde0, 0xa9ebc0} +2 glXGetVisualFromFBConfig(dpy = 0xa7d2a0, config = 0xa9c480) = &{visual = 0xa88178, visualid = 154, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +3 glXCreateNewContext(dpy = 0xa7d2a0, config = 0xa9c480, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0xa95660 +5 glXMakeContextCurrent(dpy = 0xa7d2a0, draw = 67108866, read = 67108866, ctx = 0xa95660) = True +6 glXMakeContextCurrent(dpy = 0xa7d2a0, draw = 67108866, read = 67108866, ctx = 0xa95660) = True +7 glGetIntegerv(pname = GL_RED_BITS, params = ?) // incomplete diff --git a/traces/zlib-no-eof.ref.txt b/traces/zlib-no-eof.ref.txt deleted file mode 100644 index acd3858..0000000 --- a/traces/zlib-no-eof.ref.txt +++ /dev/null @@ -1,28 +0,0 @@ -glXChooseFBConfig(dpy = 0x1da4360, screen = 0, attribList = {GLX_RED_SIZE, GLX_USE_GL, GLX_GREEN_SIZE, GLX_USE_GL, GLX_BLUE_SIZE, GLX_USE_GL, GLX_ALPHA_SIZE, GLX_USE_GL, GLX_DOUBLEBUFFER, GLX_USE_GL, 0}, nitems = &42) = {0x1e36000, 0x1e36700, 0x1e36e00, 0x1e37500, 0x1e37c00, 0x1e38300, 0x1e38a00, 0x1e39100, 0x1e39800, 0x1e39f00, 0x1e35c80, 0x1e36380, 0x1e36a80, 0x1e37180, 0x1e37880, 0x1e37f80, 0x1e38680, 0x1e38d80, 0x1e39480, 0x1e39b80, 0x1e35e40, 0x1e36540, 0x1e36c40, 0x1e37340, 0x1e37a40, 0x1e38140, 0x1e38840, 0x1e38f40, 0x1e39640, 0x1e39d40, 0x1e35ac0, 0x1e361c0, 0x1e368c0, 0x1e36fc0, 0x1e376c0, 0x1e37dc0, 0x1e384c0, 0x1e38bc0, 0x1e392c0, 0x1e399c0, 0x1e3a1a0, 0x1e3a280} -glXGetVisualFromFBConfig(dpy = 0x1da4360, config = 0x1e36000) = &{visual = 0x1daf630, visualid = 41, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} -glXCreateNewContext(dpy = 0x1da4360, config = 0x1e36000, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0x1e1cad0 -glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True -glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True -glClearColor(red = 0.3, green = 0.1, blue = 0.3, alpha = 0) -glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True -glViewport(x = 0, y = 0, width = 250, height = 250) -glMatrixMode(mode = GL_PROJECTION) -glLoadIdentity() -glOrtho(left = -1, right = 1, bottom = -1, top = 1, zNear = -0.5, zFar = 1000) -glMatrixMode(mode = GL_MODELVIEW) -glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True -glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True -glClear(mask = GL_COLOR_BUFFER_BIT) -glBegin(mode = GL_TRIANGLES) -glColor3f(red = 0.8, green = 0, blue = 0) -glVertex3f(x = -0.9, y = -0.9, z = -30) -glColor3f(red = 0, green = 0.9, blue = 0) -glVertex3f(x = 0.9, y = -0.9, z = -30) -glColor3f(red = 0, green = 0, blue = 0.7) -glVertex3f(x = 0, y = 0.9, z = -30) -glEnd() -glFlush() -glFlush() -glXSwapBuffers(dpy = 0x1da4360, drawable = 69206018) - -glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True diff --git a/traces/zlib-no-eof.script b/traces/zlib-no-eof.script new file mode 100644 index 0000000..0e811de --- /dev/null +++ b/traces/zlib-no-eof.script @@ -0,0 +1,29 @@ +dump zlib-no-eof.trace +1 glXChooseFBConfig(dpy = 0x1da4360, screen = 0, attribList = {GLX_RED_SIZE, GLX_USE_GL, GLX_GREEN_SIZE, GLX_USE_GL, GLX_BLUE_SIZE, GLX_USE_GL, GLX_ALPHA_SIZE, GLX_USE_GL, GLX_DOUBLEBUFFER, GLX_USE_GL, 0}, nitems = &42) = {0x1e36000, 0x1e36700, 0x1e36e00, 0x1e37500, 0x1e37c00, 0x1e38300, 0x1e38a00, 0x1e39100, 0x1e39800, 0x1e39f00, 0x1e35c80, 0x1e36380, 0x1e36a80, 0x1e37180, 0x1e37880, 0x1e37f80, 0x1e38680, 0x1e38d80, 0x1e39480, 0x1e39b80, 0x1e35e40, 0x1e36540, 0x1e36c40, 0x1e37340, 0x1e37a40, 0x1e38140, 0x1e38840, 0x1e38f40, 0x1e39640, 0x1e39d40, 0x1e35ac0, 0x1e361c0, 0x1e368c0, 0x1e36fc0, 0x1e376c0, 0x1e37dc0, 0x1e384c0, 0x1e38bc0, 0x1e392c0, 0x1e399c0, 0x1e3a1a0, 0x1e3a280} +2 glXGetVisualFromFBConfig(dpy = 0x1da4360, config = 0x1e36000) = &{visual = 0x1daf630, visualid = 41, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +3 glXCreateNewContext(dpy = 0x1da4360, config = 0x1e36000, renderType = GLX_RGBA_TYPE, shareList = NULL, direct = True) = 0x1e1cad0 +5 glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True +6 glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True +10 glClearColor(red = 0.3, green = 0.1, blue = 0.3, alpha = 0) +11 glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True +12 glViewport(x = 0, y = 0, width = 250, height = 250) +13 glMatrixMode(mode = GL_PROJECTION) +14 glLoadIdentity() +15 glOrtho(left = -1, right = 1, bottom = -1, top = 1, zNear = -0.5, zFar = 1000) +16 glMatrixMode(mode = GL_MODELVIEW) +17 glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True +18 glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True +19 glClear(mask = GL_COLOR_BUFFER_BIT) +20 glBegin(mode = GL_TRIANGLES) +21 glColor3f(red = 0.8, green = 0, blue = 0) +22 glVertex3f(x = -0.9, y = -0.9, z = -30) +23 glColor3f(red = 0, green = 0.9, blue = 0) +24 glVertex3f(x = 0.9, y = -0.9, z = -30) +25 glColor3f(red = 0, green = 0, blue = 0.7) +26 glVertex3f(x = 0, y = 0.9, z = -30) +27 glEnd() +28 glFlush() +29 glFlush() +30 glXSwapBuffers(dpy = 0x1da4360, drawable = 69206018) + +31 glXMakeContextCurrent(dpy = 0x1da4360, draw = 69206018, read = 69206018, ctx = 0x1e1cad0) = True