From cfb133d5f5caa1eeecebe51a2a085b0df1774eb4 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Sun, 12 Aug 2012 19:42:35 -0700 Subject: [PATCH] trim-head: New test to ensure "apitrace trim" drops all calls after range This test ensures that all calls beyond the user-specified range are correctly dropped. It also ensures that uninteresting calls are trimmed, (since the glxsimple trace includes many of those). --- traces/.gitignore | 1 + traces/README.markdown | 3 +++ traces/glxsimple.trace | Bin 0 -> 58475 bytes traces/trim-head.script | 14 ++++++++++++++ 4 files changed, 18 insertions(+) create mode 100644 traces/glxsimple.trace create mode 100644 traces/trim-head.script diff --git a/traces/.gitignore b/traces/.gitignore index a0f8a41..4f72b30 100644 --- a/traces/.gitignore +++ b/traces/.gitignore @@ -1,2 +1,3 @@ !*.trace *.src.trace +*-trim.trace diff --git a/traces/README.markdown b/traces/README.markdown index 2d5d675..805ab98 100644 --- a/traces/README.markdown +++ b/traces/README.markdown @@ -24,3 +24,6 @@ are used by the test scripts: any data from it. * incomplete-call.trace: trace with an incomplete call, with missing arguments + +* glxsimple.trace: trace from a simple program showing drawing with + glClear, with GLSL shader, and with texture. See ../cli/src \ No newline at end of file diff --git a/traces/glxsimple.trace b/traces/glxsimple.trace new file mode 100644 index 0000000000000000000000000000000000000000..8726260e3ba241b81bd932fbcf254078f696ef6b GIT binary patch literal 58475 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 GDew4N% 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 literal 0 HcmV?d00001 diff --git a/traces/trim-head.script b/traces/trim-head.script new file mode 100644 index 0000000..70e8ef5 --- /dev/null +++ b/traces/trim-head.script @@ -0,0 +1,14 @@ +trim --calls=0-843 glxsimple.trace +dump --verbose glxsimple-trim.trace +0 glXChooseVisual(dpy = 0x236a280, screen = 0, attribList = {GLX_RGBA, GLX_RED_SIZE, GLX_RED_SIZE, GLX_GREEN_SIZE, GLX_RED_SIZE, GLX_BLUE_SIZE, GLX_RED_SIZE, GLX_ALPHA_SIZE, GLX_RED_SIZE, GLX_DOUBLEBUFFER, GLX_DEPTH_SIZE, 24, GLX_STENCIL_SIZE, GLX_RED_SIZE, GLX_X_VISUAL_TYPE, GLX_DIRECT_COLOR, 0}) = &{visual = 0x2374ef8, visualid = 34, screen = 0, depth = 24, c_class = 5, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8} +1 glXCreateContext(dpy = 0x236a280, vis = &{visual = 0x2374ef8, visualid = 34, screen = 0, depth = 24, c_class = 5, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0x2384330 +2 glXMakeCurrent(dpy = 0x236a280, drawable = 41943041, ctx = 0x2384330) = True +3 glViewport(x = 0, y = 0, width = 64, height = 64) +4 glMatrixMode(mode = GL_PROJECTION) +5 glLoadIdentity() +6 glOrtho(left = 0, right = 64, bottom = 64, top = 0, zNear = 0, zFar = 1) +7 glMatrixMode(mode = GL_MODELVIEW) +8 glClearColor(red = 0, green = 0, blue = 1, alpha = 1) +9 glClear(mask = GL_COLOR_BUFFER_BIT) +10 glXSwapBuffers(dpy = 0x236a280, drawable = 41943041) + -- 2.43.0