Message ID | 201611042247.uA4Ml39C014721@sellcey-lt.caveonetworks.com |
---|---|
State | New |
Headers | show |
On 11/04/2016 11:47 PM, Steve Ellcey wrote: > While working on a patch for math/test-tgmath2.c I learned some information > about do_test and how it should work. Here is my attempt to put that > information into test-skeleton.c. If it looks accurate I could put this > information in the GLIBC Wiki too, in the "Writing a test case" section. > The comments about writing to stdout instead of stderr is already in the Wiki, > but the return value descriptions are not. > > Steve Ellcey > sellcey@caviumnetworks.com > > > > 2016-11-04 Steve Ellcey <sellcey@caviumnetworks.com> > > * test-skeleton.c: Document do_test usage. > > > diff --git a/test-skeleton.c b/test-skeleton.c > index 55841fb..cbd0c2d 100644 > --- a/test-skeleton.c > +++ b/test-skeleton.c > @@ -36,7 +36,22 @@ > > /* The test function is normally called `do_test' and it is called > with argc and argv as the arguments. We nevertheless provide the > - possibility to overwrite this name. */ > + possibility to overwrite this name. > + > + The test function should have a return type of 'int' and should Perhaps “The TEST_FUNCTION expression should have type 'int'”? TEST_FUNCTION is an expression, not the name of a function > + return 0 to indicate a passing test, 1 to indicate a failing test, > + or 77 to indicate an unsupported test. Other result values could be > + used to indicate a failing test but since the result of the test Comma before “but”? > + function is passed to exit and exit only returns the lower 8 bits of > + its input a non-zero return with some values could cause a test to > + incorrectly be considered passing when it really failed. For this > + reason tests should always return 0, 1, or 77. > + > + The test function may print out diagnostic or warning messages as well > + as messages about failures. These messages should be printed to stdout > + and not stderr so that the output is properly ordered with respect to > + the rest of the glibc testsuite run output. */ Rest looks good to me. Thanks, Florian
diff --git a/test-skeleton.c b/test-skeleton.c index 55841fb..cbd0c2d 100644 --- a/test-skeleton.c +++ b/test-skeleton.c @@ -36,7 +36,22 @@ /* The test function is normally called `do_test' and it is called with argc and argv as the arguments. We nevertheless provide the - possibility to overwrite this name. */ + possibility to overwrite this name. + + The test function should have a return type of 'int' and should + return 0 to indicate a passing test, 1 to indicate a failing test, + or 77 to indicate an unsupported test. Other result values could be + used to indicate a failing test but since the result of the test + function is passed to exit and exit only returns the lower 8 bits of + its input a non-zero return with some values could cause a test to + incorrectly be considered passing when it really failed. For this + reason tests should always return 0, 1, or 77. + + The test function may print out diagnostic or warning messages as well + as messages about failures. These messages should be printed to stdout + and not stderr so that the output is properly ordered with respect to + the rest of the glibc testsuite run output. */ + #ifndef TEST_FUNCTION # define TEST_FUNCTION do_test (argc, argv) #endif