This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 15 Jun 2016 08:50, Florian Weimer wrote: > On 06/15/2016 07:37 AM, Mike Frysinger wrote: > >> +#define FAIL() \ > >> + do { printf ("error: failure on line %d\n", __LINE__); return 1; } while (0) > >> ... > >> + ret = pwritev (temp_fd, iov, 2, 0); > >> + if (ret == -1) > >> + FAIL (); > > > > as a personal stance, never been a big fan of messages that just have a > > line number. when you get reports/logs, you end having to chase down the > > exact same source tree as the reporter. > > At least there is a line number. Many existing tests do not even have that. > > > why can't we just assert() everywhere ? we rely on that in tests already > > and we wouldn't have to do any checking otherwise. > > ret = pwritev (temp_fd, iov, 2, 0); > > assert (ret == sizeof buf1 + sizeof buf2); > > assert writes to standard error, not standard output, where it will be > captured. I don't know why we don't capture both. we keep running into this issue. rather than try to be super vigilent all the time, why don't we simply: --- a/test-skeleton.c +++ b/test-skeleton.c @@ -343,6 +343,10 @@ main (int argc, char *argv[]) setbuf (stdout, NULL); #endif + fclose (stderr); + dup2 (STDOUT_FILENO, STDERR_FILENO); + stderr = fdopen (STDERR_FILENO, "w"); + while ((opt = getopt_long (argc, argv, "+", options, NULL)) != -1) switch (opt) { > There seems to be a policy against tests aborting on failure, too, but > we are not very consistent about that. In my experience, people who > build and test glibc are more likely to shrug off tests with non-zero > exit status than to ignore tests with aborts, although they really > should treat them the same. we've actively been adding tests with abort() usage. i'm not sure there is a policy against it. i'm not sure i agree on the non-zero-vs-abort issue, but i'm not everyone. i look at all tests that fail regardless of reason. > I think we should really have some sort of libtest.a, which provides > test helpers, error-checking functions such as xmalloc, and general > helpers for setting up special test environments. I'm a bit worried > about figuring out the proper dependencies, so that libtest.a is built > before all the tests are linked. isn't this what test-skeleton.c does for us now ? and we all agree that all tests should be using that. the only downside is the inclusion ordering ... a lot of tests do either: (1) at top (allows helper funcs to be used in the test) static int do_test (void); #define TEST_FUNCTION do_test () #include "../test-skeleton.c" (2) at bottom (does not allow access to helper funcs) #define TEST_FUNCTION do_test () #include "../test-skeleton.c" imo we should just mandate all tests use the entry point "do_test" and it take argc/argv args (even if they're unused), and then all tests can pull test-skeleton.c in at the top. -mike
Attachment:
signature.asc
Description: Digital signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |