public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jakub Jelinek <jakub@redhat.com>
To: David Malcolm <dmalcolm@redhat.com>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH 00/17] RFC: Addding a unit testing framework to gcc
Date: Wed, 10 Jun 2015 23:42:00 -0000	[thread overview]
Message-ID: <20150610221817.GQ10247@tucnak.redhat.com> (raw)
In-Reply-To: <1433956580.12727.194.camel@surprise>

On Wed, Jun 10, 2015 at 01:16:20PM -0400, David Malcolm wrote:
> On Wed, 2015-06-10 at 17:34 +0200, Jakub Jelinek wrote:
> > On Wed, Jun 10, 2015 at 11:24:41AM -0400, David Malcolm wrote:
> > > I picked the Google Test framework:
> > >   http://code.google.com/p/googletest/
> > 
> > I must say I'm not very excited about using this, it won't integrate
> > very well with dejagnu
> 
> Why is that a goal?  I've been using DejaGnu's unittesting API for
> testing the jit, and it is... suboptimal, to put it mildly.

Primarily consistency, people want consistent output of the testresults from
the compiler, not to have to pass one set of magic options to dejagnu to do
something and then mirror them to something completely different to make
gtest happy.  Similarly, there are all kinds of scripts that analyze gcc
testresults, having to parse a completely different format because a tiny
percentage of tests runs something different isn't a very good idea.
Plus, by using googletest, you add another build requirement, we already
have quite a lot of them.

> > whether talking about results (will it provide
> > some *.log/*.sum file with FAIL/XFAIL/PASS/XPASS etc. lines?),
> 
> It doesn't have an output formatter for the DejaGnu format, but I guess
> I could write one.  The gtest standard output format is IMHO superior to
> DejaGnu's since it tells you start-of-test/end-of-test on separate
> lines, so you can see which test killed things in the event of total

I find the dejagnu log files quite readable, unlike the gtest stuff, so
supposedly this is quite subjective.

> > etc.
> > E.g. for asan.exp testing, I just wrote a gtest emulation using
> > dejagnu, see testsuite/g++.dg/asan/dejagnu-gtest.h and
> > testsuite/lib/asan-dg.exp
> 
> ...which doesn't have things like EXPECT_STREQ, or custom comparators,
> doesn't appear to support fixtures, type-parameterized tests,
> value-parameterized tests, etc, my point being that a unit-testing
> framework is a non-trivial amount of code that could do useful things
> for us.

The question is why you really need it, or if it is more than a few lines of
macros.

> > but that was mainly meant for cases where
> > many routines are expected to crash the process.
> 
> FWIW, if I'm reading testsuite/g++.dg/asan/dejagnu-gtest.h and
> testsuite/lib/asan-dg.exp correctly, it looks like you're spawning the
> tool once per EXPECT_DEATH instance in the testsuite.  That seems
> suboptimal, gtest uses fork without exec
> to do it all directly at the point of the test without lots of extra
> work, where the parent verifies the death of the child.

That was a design choice, makes it much easier to debug the individual
tests, especially for asan where for gtest there are just way too many forks
and way too many (expected) crashes.
For the unittests, I see no problem running numerous tests from within one
process, it can emit multiple PASS/FAIL/XFAIL etc.

	Jakub

  reply	other threads:[~2015-06-10 22:18 UTC|newest]

Thread overview: 176+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-10 15:10 David Malcolm
2015-06-10 15:10 ` [PATCH 05/17] Add test-functions.c to gcc/unittests David Malcolm
2015-06-10 15:10 ` [PATCH 10/17] Add test-locations.c " David Malcolm
2015-06-10 15:10 ` [PATCH 08/17] Add test-hash-map.c " David Malcolm
2015-06-10 15:10 ` [PATCH 12/17] Add test-tree.c " David Malcolm
2015-06-10 15:10 ` [PATCH 07/17] Add test-gimple.c " David Malcolm
2015-06-10 15:10 ` [PATCH 09/17] Add test-hash-set.c " David Malcolm
2015-06-10 15:10 ` [PATCH 01/17] Add Make-lang.in and config-lang.in " David Malcolm
2015-06-10 15:10 ` [PATCH 02/17] Add test-bitmap.c " David Malcolm
2015-06-23 19:17   ` Jeff Law
2015-06-10 15:10 ` [PATCH 11/17] Add test-rtl.c " David Malcolm
2015-06-10 15:10 ` [PATCH 04/17] Add test-folding.c " David Malcolm
2015-06-10 15:17 ` [PATCH 03/17] Add test-cfg.c " David Malcolm
2015-06-23 19:26   ` Jeff Law
2015-06-25 18:13     ` David Malcolm
2015-06-10 15:25 ` [PATCH 17/17] toplev.c: move location_adhoc_data_fini call David Malcolm
2015-06-10 15:26 ` [PATCH 16/17] Add unittests-main.c to gcc/unittests David Malcolm
2015-06-10 15:26 ` [PATCH 13/17] Add test-vec.c " David Malcolm
2015-06-10 15:28 ` [PATCH 06/17] Add test-ggc.c " David Malcolm
2015-06-10 15:28 ` [PATCH 15/17] Add unittests-frontend.c " David Malcolm
2015-06-10 15:34 ` [PATCH 14/17] Add test-wide-int.c " David Malcolm
2015-06-10 16:19 ` [PATCH 00/17] RFC: Addding a unit testing framework to gcc Jakub Jelinek
2015-06-10 16:25   ` Richard Biener
2015-06-10 17:56   ` David Malcolm
2015-06-10 23:42     ` Jakub Jelinek [this message]
2015-06-17 20:36       ` [PATCH/RFC]: unittesting v2: as a plugin (was Re: [PATCH 00/17] RFC: Addding a unit testing framework to gcc) David Malcolm
2015-06-23 19:29         ` Jeff Law
2015-10-27 19:31           ` [PATCH 00/16] Unit tests framework (v3) David Malcolm
2015-10-27 19:31             ` [PATCH 05/16] Add test-et-forest.c to unittests David Malcolm
2015-10-30  4:11               ` Jeff Law
2015-10-27 19:31             ` [PATCH 11/16] Add test-hash-set.c " David Malcolm
2015-10-30  4:54               ` Jeff Law
2015-10-27 19:31             ` [PATCH 03/16] Add test-bitmap.c " David Malcolm
2015-10-29 21:36               ` Jeff Law
2015-10-27 19:31             ` [PATCH 01/16] Add unittest infrastructure David Malcolm
2015-10-30  5:20               ` Jeff Law
2015-10-27 19:31             ` [PATCH 15/16] Add test-vec.c to unittests David Malcolm
2015-10-30  5:10               ` Jeff Law
2015-10-27 19:32             ` [PATCH 04/16] Add test-cfg.c " David Malcolm
2015-10-29 22:23               ` Jeff Law
2015-10-27 19:32             ` [PATCH 07/16] Add test-functions.c " David Malcolm
2015-10-30  5:19               ` Jeff Law
2015-10-27 19:32             ` [PATCH 10/16] Add test-hash-map.c " David Malcolm
2015-10-30  4:57               ` Jeff Law
2015-10-27 19:35             ` [PATCH 06/16] Add test-folding.c " David Malcolm
2015-10-30  5:06               ` Jeff Law
2015-10-27 19:48             ` [PATCH 14/16] Add test-tree.c " David Malcolm
2015-10-30  5:00               ` Jeff Law
2015-10-27 19:49             ` [PATCH 08/16] Add test-ggc.c " David Malcolm
2015-10-30  5:08               ` Jeff Law
2015-10-27 19:49             ` [PATCH 12/16] Add test-locations.c " David Malcolm
2015-10-30  5:09               ` Jeff Law
2015-10-27 19:50             ` [PATCH 13/16] Add test-rtl.c " David Malcolm
2015-10-30  4:58               ` Jeff Law
2015-10-31 20:36                 ` Segher Boessenkool
2015-10-27 19:51             ` [PATCH 16/16] Add test-wide-int.c " David Malcolm
2015-10-30  5:15               ` Jeff Law
2015-10-27 19:58             ` [PATCH 09/16] Add test-gimple.c " David Malcolm
2015-10-28 12:39               ` Richard Biener
2015-10-28 12:44                 ` Richard Biener
2015-10-28 16:22                   ` Jeff Law
2015-10-30  5:02               ` Jeff Law
2015-10-27 20:16             ` [PATCH 00/16] Unit tests framework (v3) David Malcolm
2015-10-30  5:28               ` Jeff Law
2015-10-28 11:53             ` Bernd Schmidt
2015-10-28 13:02               ` Bernd Schmidt
2015-10-29 16:20               ` David Malcolm
2015-10-29 19:38                 ` Jeff Law
2015-10-29 22:32                   ` Mike Stump
2015-10-30  3:59                     ` Jeff Law
2015-10-29 19:21               ` Jeff Law
2015-10-30 10:54                 ` Bernd Schmidt
2015-10-30 16:08                   ` Jeff Law
2015-11-16 18:17                     ` Bernd Schmidt
2015-11-16 18:48                       ` David Malcolm
2015-11-16 21:22                         ` Bernd Schmidt
2015-11-16 23:12                         ` Jeff Law
2015-11-17  1:54                           ` Mike Stump
2015-11-17 12:51                             ` Bernd Schmidt
2015-11-17 18:06                               ` Jeff Law
2015-11-19 16:46                       ` [PATCH 00/15] Unittests framework v4: -fself-test David Malcolm
2015-11-19 16:46                         ` [PATCH 01/15] Selftest framework (unittests v4) David Malcolm
2015-11-19 17:35                           ` Bernd Schmidt
2015-11-19 18:08                             ` David Malcolm
2015-11-19 18:15                               ` Mike Stump
2015-11-19 18:44                               ` Bernd Schmidt
2015-11-19 20:04                                 ` Mikhail Maltsev
2015-11-24 20:45                                 ` Jeff Law
2015-11-25  2:43                                   ` David Malcolm
2015-11-25 10:56                                     ` Bernd Schmidt
2015-11-25 16:57                                       ` Mike Stump
2015-11-29 18:10                                         ` Jeff Law
2015-11-25 22:58                                       ` David Malcolm
2015-11-25  7:43                                   ` Trevor Saunders
2015-11-25 22:53                                 ` David Malcolm
2015-11-26 13:00                                   ` Bernd Schmidt
2015-11-30 23:05                                     ` Jeff Law
2015-11-24 20:29                             ` Jeff Law
2015-11-24 22:43                           ` Jeff Law
2015-11-19 16:46                         ` [PATCH 04/15] Add selftests to et-forest.c David Malcolm
2015-11-19 16:46                         ` [PATCH 15/15] RFC: Add ggc-tests.c David Malcolm
2015-11-19 16:46                         ` [PATCH 13/15] Add selftests to tree.c David Malcolm
2015-11-19 16:46                         ` [PATCH 14/15] Add selftests to vec.c David Malcolm
2015-11-19 16:46                         ` [PATCH 06/15] Add function-tests.c David Malcolm
2015-11-19 16:46                         ` [PATCH 10/15] Add hash-set-tests.c David Malcolm
2015-11-19 16:46                         ` [PATCH 05/15] Add selftests to fold-const.c David Malcolm
2015-11-19 16:46                         ` [PATCH 09/15] Add hash-map-tests.c David Malcolm
2015-11-19 16:46                         ` [PATCH 02/15] Add selftests to bitmap.c David Malcolm
2015-11-20 10:41                           ` Richard Biener
2015-11-24 21:13                           ` Jeff Law
2015-11-19 16:46                         ` [PATCH 08/15] Add selftests to gimple.c David Malcolm
2015-11-19 16:46                         ` [PATCH 03/15] Add selftests to tree-cfg.c David Malcolm
2015-11-19 16:46                         ` [PATCH 07/15] Fix warning in function-tests.c David Malcolm
2015-11-19 17:03                         ` [PATCH 11/15] Add selftests to input.c David Malcolm
2015-11-19 17:03                         ` [PATCH 12/15] Add rtl-tests.c David Malcolm
2016-06-01 20:54                         ` [PATCH 00/21] Add -fself-test framework for fast, early unit-testing (unittests v5) David Malcolm
2016-06-01 20:54                           ` [PATCH 17/21] Add hash-set-tests.c David Malcolm
2016-06-01 20:54                           ` [PATCH 03/21] Various selftest::runner tweaks David Malcolm
2016-06-01 20:54                           ` [PATCH 09/21] Add selftests to et-forest.c David Malcolm
2016-06-01 20:54                           ` [PATCH 02/21] Makefile.in integration David Malcolm
2016-06-01 20:54                           ` [PATCH 04/21] Add -fself-test-regex= David Malcolm
2016-06-01 20:54                           ` [PATCH 07/21] Add selftests to bitmap.c David Malcolm
2016-06-01 20:54                           ` [PATCH 10/21] Add selftests to fold-const.c David Malcolm
2016-06-01 20:54                           ` [PATCH 01/21] Selftest framework (unittests v5) David Malcolm
2016-06-01 20:54                           ` [PATCH 20/21] Add selftests to tree.c David Malcolm
2016-06-01 20:54                           ` [PATCH 18/21] Add selftests to input.c David Malcolm
2016-06-01 21:09                           ` [PATCH 12/21] Fix warning in function-tests.c David Malcolm
2016-06-01 21:10                           ` [PATCH 21/21] Add selftests to vec.c David Malcolm
2016-06-01 21:10                           ` [PATCH 11/21] Add function-tests.c David Malcolm
2016-06-01 21:10                           ` [PATCH 08/21] Add selftests to tree-cfg.c David Malcolm
2016-06-01 21:10                           ` [PATCH 06/21] Convert Levenshtein test from a plugin to a selftest David Malcolm
2016-06-01 21:11                           ` [PATCH 16/21] Add hash-map-tests.c David Malcolm
2016-06-01 21:20                           ` [PATCH 00/21] Add -fself-test framework for fast, early unit-testing (unittests v5) Sandra Loosemore
2016-06-02 13:08                             ` David Malcolm
2016-06-01 21:21                           ` [PATCH 05/21] Add selftests for diagnostic-show-locus.c David Malcolm
2016-06-01 21:22                           ` [PATCH 19/21] Add rtl-tests.c David Malcolm
2016-06-01 21:23                           ` [PATCH 15/21] Add selftests to gimple.c David Malcolm
2016-06-01 21:26                           ` [PATCH 14/21] Remove x86_64-isms in function-tests.c David Malcolm
2016-06-01 21:29                           ` [PATCH 13/21] Fixup to function-tests.c David Malcolm
2016-06-02 10:30                           ` [PATCH 00/21] Add -fself-test framework for fast, early unit-testing (unittests v5) Bernd Schmidt
2016-06-02 13:41                             ` David Malcolm
2016-06-02 20:41                               ` [PATCH 00/16] v6 of -fself-test/unit-testing patch David Malcolm
2016-06-02 20:41                                 ` [PATCH 05/16] tree-cfg.c: add selftests David Malcolm
2016-06-02 20:41                                 ` [PATCH 09/16] gimple.c: " David Malcolm
2016-06-02 20:41                                 ` [PATCH 04/16] bitmap.c: " David Malcolm
2016-06-02 20:41                                 ` [PATCH 03/16] spellcheck.c: convert Levenshtein test from a plugin to a selftest David Malcolm
2016-06-02 20:41                                 ` [PATCH 02/16] diagnostic-show-locus.c: add selftests David Malcolm
2016-06-02 20:41                                 ` [PATCH 10/16] Add hash-map-tests.c David Malcolm
2016-06-02 20:41                                 ` [PATCH 01/16] Core of selftest framework (v6) David Malcolm
2016-06-02 23:21                                   ` Bernd Schmidt
2016-06-03 18:47                                     ` [PATCH] Selftest framework (v7) David Malcolm
2016-06-05 11:38                                       ` Bernd Schmidt
2016-06-06 14:17                                         ` David Malcolm
2016-06-06 14:41                                           ` Bernd Schmidt
2016-06-06 17:18                                             ` [Committed] Selftest framework (v8) David Malcolm
2016-06-06 21:47                                           ` [PATCH] Selftest framework (v7) Trevor Saunders
2016-06-06 21:57                                             ` Jakub Jelinek
2016-06-07  2:07                                               ` Trevor Saunders
2016-06-07 14:18                                                 ` David Malcolm
2016-06-08  0:23                                                   ` Trevor Saunders
2016-06-02 20:57                                 ` [PATCH 08/16] Add function-tests.c David Malcolm
2016-06-02 20:58                                 ` [PATCH 14/16] tree.c: add selftests David Malcolm
2016-06-02 21:03                                 ` [PATCH 16/16] wide-int.cc: " David Malcolm
2016-06-02 21:03                                 ` [PATCH 13/16] Add rtl-tests.c David Malcolm
2016-06-02 21:03                                 ` [PATCH 12/16] input.c: add selftests David Malcolm
2016-06-02 21:06                                 ` [PATCH 15/16] vec.c: " David Malcolm
2016-06-02 21:09                                 ` [PATCH 06/16] et-forest.c: " David Malcolm
2016-06-02 21:09                                 ` [PATCH 11/16] Add hash-set-tests.c David Malcolm
2016-06-02 21:09                                 ` [PATCH 07/16] fold-const.c: add selftests David Malcolm
2015-10-28 16:05             ` [PATCH 00/16] Unit tests framework (v3) Jeff Law
2015-10-28 20:26             ` Mike Stump
2015-06-23 19:06     ` [PATCH 00/17] RFC: Addding a unit testing framework to gcc Jeff Law
2015-06-23 20:04     ` Mike Stump
2015-06-10 18:21   ` David Malcolm
2015-06-10 22:15     ` Jakub Jelinek
2015-06-11 14:49 ` Martin Liška

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150610221817.GQ10247@tucnak.redhat.com \
    --to=jakub@redhat.com \
    --cc=dmalcolm@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).