<div dir="ltr">On 15 October 2013 17:32, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br>
<div class="im"><br>
The utility is that all.tests can do 'sometest -list-subtests' to<br>
automatically get the list of subtests to run.  Since the syntax for<br>
selecting subtests is regularized, this works quite well.<br>
<br>
Signed-off-by: Ian Romanick <<a href="mailto:ian.d.romanick@intel.com">ian.d.romanick@intel.com</a>><br>
Cc: Chad Versace <<a href="mailto:chad.versace@linux.intel.com">chad.versace@linux.intel.com</a>><br>
</div>---<br>
 tests/util/piglit-framework-gl.c | 15 +++++++++++++++<br>
 tests/util/piglit-framework-gl.h |  8 ++++++++<br>
 2 files changed, 23 insertions(+)<br>
<br>
diff --git a/tests/util/piglit-framework-gl.c b/tests/util/piglit-framework-gl.c<br>
index 635b52c..c297a6a 100644<br>
--- a/tests/util/piglit-framework-gl.c<br>
+++ b/tests/util/piglit-framework-gl.c<br>
@@ -140,6 +140,21 @@ process_args(int *argc, char *argv[], unsigned *force_samples,<br>
<div class="im">                        }<br>
                        *argc -= 2;<br>
                        j -= 2;<br>
+               } else if (!strcmp(argv[j], "-list-subtests")) {<br>
+                       unsigned i;<br>
+<br>
</div>+                       if (config->subtests == NULL) {<br>
+                               fprintf(stderr, "Test defines no subtests!\n");<br>
+                               exit(1);<br>
+                       }<br>
<div class="im">+<br>
+                       for (i = 0; config->subtests[i].name != NULL; i++) {<br>
+                               printf("%s: %s\n",<br>
+                                      config->subtests[i].option,<br>
+                                      config->subtests[i].name);<br>
+                       }<br>
+<br>
+                       exit(0);<br></div></blockquote><div><br></div><div>Can we choose a standard way of marking the end of the subtest list, and document it?  This patch uses subtests[i].name == NULL to mark the end of the list, and the previous patch uses subtests[i].subtest_func == NULL.<br>
<br></div><div>With that fixed, this patch is:<br><br>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">
                }<br>
        }<br>
 }<br>
diff --git a/tests/util/piglit-framework-gl.h b/tests/util/piglit-framework-gl.h<br>
</div>index 0aca75c..0eb839e 100644<br>
<div class="im HOEnZb">--- a/tests/util/piglit-framework-gl.h<br>
+++ b/tests/util/piglit-framework-gl.h<br>
@@ -184,6 +184,14 @@ struct piglit_gl_test_config {<br>
        (*display)(void);<br>
<br>
        /**<br>
+        * List of subtests supported by this test case<br>
+        *<br>
+        * This is only used during command line argument parsing to implement<br>
+        * the -list-subtests option.<br>
+        */<br>
+       const struct piglit_gl_subtest *subtests;<br>
+<br>
+       /**<br>
         * Names of subtests supplied on the command line.<br>
         *<br>
         * The paramaters passed to each -subtest command line option is<br>
</div><span class="HOEnZb"><font color="#888888">--<br>
1.8.1.4<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
Piglit mailing list<br>
<a href="mailto:Piglit@lists.freedesktop.org">Piglit@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/piglit" target="_blank">http://lists.freedesktop.org/mailman/listinfo/piglit</a><br>
</div></div></blockquote></div><br></div></div>