public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH 00/17] RFC: Addding a unit testing framework to gcc
@ 2015-06-10 15:10 David Malcolm
  2015-06-10 15:10 ` [PATCH 09/17] Add test-hash-set.c to gcc/unittests David Malcolm
                   ` (18 more replies)
  0 siblings, 19 replies; 176+ messages in thread
From: David Malcolm @ 2015-06-10 15:10 UTC (permalink / raw)
  To: gcc-patches; +Cc: David Malcolm

Our current test suite is rather coarse-grained, acting at the level
of running gcc subprocesses, and verifying externally-visible
properties:
  - Did the compile succeed?
  - Was a particular dumpfile emitted, containing something matching
    some regex?
  - Does the generated code run and exit gracefully?
etc

The strength of this approach is that we have good "integration"
coverage: we know that the compiler runs and generates good code.
However it's slow, and doesn't allow very precise control over what
properties we can assert.

The following patch kit adds a suite of unit tests to gcc, aimed at
giving test coverage for properties that are difficult to test for
in the current system.  For example, there are tests of ggc to
verify that gengtype is doing sane things, of various container
classes (vec, hash_map, hash_set) and of wide-int.  Some of the
tests are rather "placeholdery" e.g. the tests of folding trees,
where there's plenty of room for adding new testcases.

I've split them up into multiple patches for ease of review, but
they all stand together.

I picked the Google Test framework:
  http://code.google.com/p/googletest/

I didn't do a very thorough survey of C++ test frameworks; I picked
this one as it's used by several very large projects (including
LLVM [1]), and is actively maintained.  Working with it has largely been
a pleasant experience: it generates good error messages when tests
fail (e.g. with enough information so that I can click on failures
in Emacs and have it go to the failing test), and is sane to work
with in gdb.  The log is easy to read; I've added an example to
the end of this mail.  It supports parameterizing testcases across
multiple types (I use this for testing wide-int).

The only other "framework" I've used has been the DejaGnu unittest
header, which I use for the jit testsuite; I can't recommend it (it's
a pain to use, and I've had to extend it repeatedly to get basic
functionality like string equality assertions).

The testsuite is intended to be very fast, all in one process, and it
takes less than a second to run; it fact, the time is dominated by a
single very slow test, which takes 300-400ms to run, but which could
be sped up [2]; other than that, it takes about 10ms to run.

Structurally, the patches add a "unittests" frontend: this is rather
analogous to libgccjit.so: it's a dummy frontend.  The
unittests/Make-lang.in builds a libgccunittests.so, which does
nothing, stubbing out the frontend hooks, but provides a DSO holding
the code to be tested.

libgccunittests.so is then linked into a "unittests.exe" binary, which
holds the actual testcases.  An advantage of this separation is that
although linking libgccunittests.so is rather slow (like linking "cc1"
etc), unittests.exe is very fast to link, so that it's very fast to
hack on individual tests without needing to relink "everything" for
each edit.

Of course, this means that we can't unittest the real frontends this
way (but we couldn't before, and maybe we can find a route to doing
this).

I have the Make-lang.in implementing the "unittests" target so that
it builds and *runs* the unit tests i.e. if you do a "make", the
unittests are run (rather than just on a "make check").  Given how
fast they are (especially relative to "make check", the only issue
I can see with this is the output log spew).  One nice thing about
doing it there is that it can be run at each stage of a bootstrap,
so hopefully we fail earlier when we're going to fail.

I marked it in config-lang.in as
  build_by_default="no"
so you have to opt-in to building it by adding "unittests" to the
  --enable-languages=
configure options.

The split of the bulk of the link into a libgccjitunittests.so
means that it also requires the
  --enable-host-shared
configure-time option.

It doesn't yet bootstrap; the link fails with:
test-folding.o: In function `testing::AssertionResult testing::internal::CmpHelperNE<tree_node*, tree_node*>(char const*, char const*, tree_node* const&, tree_node* const&)':
test-folding.c:(.text._ZN7testing8internal11CmpHelperNEIP9tree_nodeS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_[_ZN7testing8internal11CmpHelperNEIP9tree_nodeS3_EENS_15AssertionResultEPKcS6_RKT_RKT0_]+0x26e): undefined reference to `testing::internal::StringStreamToString(std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*)'

though this was using a system copy of gtest
(is this due to the C++ stdlib ABI change?  it seems to only affect
tests using EXPECT_STREQ, and if I hack them out, it seems to work).
(perhaps we'd need to bundle our own copy of gtest?)

Here's a sample log (and it's sanely color-coded if you run it at
a tty):

$ make unittests
[==========] Running 56 tests from 16 test cases.
[----------] Global test environment set-up.
[----------] 6 tests from ggc_test
[ RUN      ] ggc_test.tree_marking
[       OK ] ggc_test.tree_marking (0 ms)
[ RUN      ] ggc_test.custom_struct
[       OK ] ggc_test.custom_struct (0 ms)
[ RUN      ] ggc_test.finalization
[       OK ] ggc_test.finalization (0 ms)
[ RUN      ] ggc_test.deletable_global
[       OK ] ggc_test.deletable_global (1 ms)
[ RUN      ] ggc_test.inheritance
[       OK ] ggc_test.inheritance (0 ms)
[ RUN      ] ggc_test.chain_next
[       OK ] ggc_test.chain_next (326 ms)
[----------] 6 tests from ggc_test (327 ms total)

[----------] 5 tests from bitmap_test
[ RUN      ] bitmap_test.gc_alloc
[       OK ] bitmap_test.gc_alloc (0 ms)
[ RUN      ] bitmap_test.set_range
[       OK ] bitmap_test.set_range (0 ms)
[ RUN      ] bitmap_test.clear_bit_in_middle
[       OK ] bitmap_test.clear_bit_in_middle (0 ms)
[ RUN      ] bitmap_test.copying
[       OK ] bitmap_test.copying (0 ms)
[ RUN      ] bitmap_test.bitmap_single_bit_set_p
[       OK ] bitmap_test.bitmap_single_bit_set_p (0 ms)
[----------] 5 tests from bitmap_test (0 ms total)

[----------] 3 tests from cfg_test
[ RUN      ] cfg_test.linear_chain
[       OK ] cfg_test.linear_chain (1 ms)
[ RUN      ] cfg_test.diamond
[       OK ] cfg_test.diamond (0 ms)
[ RUN      ] cfg_test.fully_connected
[       OK ] cfg_test.fully_connected (0 ms)
[----------] 3 tests from cfg_test (1 ms total)

[----------] 1 test from tree_folding_test
[ RUN      ] tree_folding_test.arithmetic_folding
[       OK ] tree_folding_test.arithmetic_folding (0 ms)
[----------] 1 test from tree_folding_test (0 ms total)

[----------] 2 tests from function_test
[ RUN      ] function_test.fndecl_int_void
[       OK ] function_test.fndecl_int_void (0 ms)
[ RUN      ] function_test.fndecl_float_intchar
[       OK ] function_test.fndecl_float_intchar (0 ms)
[----------] 2 tests from function_test (0 ms total)

[----------] 4 tests from representation_test
[ RUN      ] representation_test.gimplification
[       OK ] representation_test.gimplification (0 ms)
[ RUN      ] representation_test.building_cfg
[       OK ] representation_test.building_cfg (0 ms)
[ RUN      ] representation_test.conversion_to_ssa
[       OK ] representation_test.conversion_to_ssa (0 ms)
[ RUN      ] representation_test.expansion_to_rtl
[       OK ] representation_test.expansion_to_rtl (6 ms)
[----------] 4 tests from representation_test (6 ms total)

[----------] 5 tests from gimple_test
[ RUN      ] gimple_test.assign_single
[       OK ] gimple_test.assign_single (0 ms)
[ RUN      ] gimple_test.assign_binop
[       OK ] gimple_test.assign_binop (0 ms)
[ RUN      ] gimple_test.nop_stmt
[       OK ] gimple_test.nop_stmt (0 ms)
[ RUN      ] gimple_test.return_stmt
[       OK ] gimple_test.return_stmt (0 ms)
[ RUN      ] gimple_test.return_without_value
[       OK ] gimple_test.return_without_value (0 ms)
[----------] 5 tests from gimple_test (0 ms total)

[----------] 1 test from hash_map_test
[ RUN      ] hash_map_test.map_of_strings_to_int
[       OK ] hash_map_test.map_of_strings_to_int (0 ms)
[----------] 1 test from hash_map_test (0 ms total)

[----------] 1 test from hash_set_test
[ RUN      ] hash_set_test.set_of_strings
[       OK ] hash_set_test.set_of_strings (0 ms)
[----------] 1 test from hash_set_test (0 ms total)

[----------] 4 tests from location_test
[ RUN      ] location_test.accessing_ordinary_linemaps
[       OK ] location_test.accessing_ordinary_linemaps (0 ms)
[ RUN      ] location_test.unknown_location
[       OK ] location_test.unknown_location (0 ms)
[ RUN      ] location_test.builtins
[       OK ] location_test.builtins (0 ms)
[ RUN      ] location_test.reading_source_line
[       OK ] location_test.reading_source_line (0 ms)
[----------] 4 tests from location_test (0 ms total)

[----------] 2 tests from rtl_test
[ RUN      ] rtl_test.test_single_set
[       OK ] rtl_test.test_single_set (0 ms)
[ RUN      ] rtl_test.uncond_jump
[       OK ] rtl_test.uncond_jump (0 ms)
[----------] 2 tests from rtl_test (0 ms total)

[----------] 3 tests from tree_test
[ RUN      ] tree_test.integer_constants
[       OK ] tree_test.integer_constants (0 ms)
[ RUN      ] tree_test.identifiers
[       OK ] tree_test.identifiers (0 ms)
[ RUN      ] tree_test.labels
[       OK ] tree_test.labels (0 ms)
[----------] 3 tests from tree_test (0 ms total)

[----------] 10 tests from vec_test
[ RUN      ] vec_test.quick_push
[       OK ] vec_test.quick_push (0 ms)
[ RUN      ] vec_test.safe_push
[       OK ] vec_test.safe_push (0 ms)
[ RUN      ] vec_test.truncate
[       OK ] vec_test.truncate (0 ms)
[ RUN      ] vec_test.safe_grow_cleared
[       OK ] vec_test.safe_grow_cleared (0 ms)
[ RUN      ] vec_test.pop
[       OK ] vec_test.pop (0 ms)
[ RUN      ] vec_test.safe_insert
[       OK ] vec_test.safe_insert (0 ms)
[ RUN      ] vec_test.ordered_remove
[       OK ] vec_test.ordered_remove (0 ms)
[ RUN      ] vec_test.unordered_remove
[       OK ] vec_test.unordered_remove (0 ms)
[ RUN      ] vec_test.block_remove
[       OK ] vec_test.block_remove (0 ms)
[ RUN      ] vec_test.qsort
[       OK ] vec_test.qsort (0 ms)
[----------] 10 tests from vec_test (1 ms total)

[----------] 3 tests from wide_int_test/0, where TypeParam = <type>
[ RUN      ] wide_int_test/0.test_printing
[       OK ] wide_int_test/0.test_printing (0 ms)
[ RUN      ] wide_int_test/0.test_ops
[       OK ] wide_int_test/0.test_ops (0 ms)
[ RUN      ] wide_int_test/0.test_comparisons
[       OK ] wide_int_test/0.test_comparisons (0 ms)
[----------] 3 tests from wide_int_test/0 (0 ms total)

[----------] 3 tests from wide_int_test/1, where TypeParam = <type>
[ RUN      ] wide_int_test/1.test_printing
[       OK ] wide_int_test/1.test_printing (0 ms)
[ RUN      ] wide_int_test/1.test_ops
[       OK ] wide_int_test/1.test_ops (0 ms)
[ RUN      ] wide_int_test/1.test_comparisons
[       OK ] wide_int_test/1.test_comparisons (0 ms)
[----------] 3 tests from wide_int_test/1 (0 ms total)

[----------] 3 tests from wide_int_test/2, where TypeParam = <type>
[ RUN      ] wide_int_test/2.test_printing
[       OK ] wide_int_test/2.test_printing (0 ms)
[ RUN      ] wide_int_test/2.test_ops
[       OK ] wide_int_test/2.test_ops (0 ms)
[ RUN      ] wide_int_test/2.test_comparisons
[       OK ] wide_int_test/2.test_comparisons (0 ms)
[----------] 3 tests from wide_int_test/2 (0 ms total)

[----------] Global test environment tear-down
[==========] 56 tests from 16 test cases ran. (338 ms total)
[  PASSED  ] 56 tests.

Thoughts?
Dave

[1] though it's not clear to me if LLVM is actually still using it;
see e.g. http://blog.llvm.org/2009/12/lit-it.html
[2] the test of chain_next/chain_prev in test-ggc.c, which needed
a very large linked list in order to reliably overflow the stack on
my box; perhaps this could be eliminated by adding something to
libiberty to shrink the stack size?

David Malcolm (17):
  Add Make-lang.in and config-lang.in to gcc/unittests
  Add test-bitmap.c to gcc/unittests
  Add test-cfg.c to gcc/unittests
  Add test-folding.c to gcc/unittests
  Add test-functions.c to gcc/unittests
  Add test-ggc.c to gcc/unittests
  Add test-gimple.c to gcc/unittests
  Add test-hash-map.c to gcc/unittests
  Add test-hash-set.c to gcc/unittests
  Add test-locations.c to gcc/unittests
  Add test-rtl.c to gcc/unittests
  Add test-tree.c to gcc/unittests
  Add test-vec.c to gcc/unittests
  Add test-wide-int.c to gcc/unittests
  Add unittests-frontend.c to gcc/unittests
  Add unittests-main.c to gcc/unittests
  toplev.c: move location_adhoc_data_fini call

 gcc/toplev.c                       |   3 +-
 gcc/unittests/Make-lang.in         | 200 ++++++++++++
 gcc/unittests/config-lang.in       |  34 ++
 gcc/unittests/test-bitmap.c        | 117 +++++++
 gcc/unittests/test-cfg.c           | 319 +++++++++++++++++++
 gcc/unittests/test-folding.c       | 121 +++++++
 gcc/unittests/test-functions.c     | 634 +++++++++++++++++++++++++++++++++++++
 gcc/unittests/test-ggc.c           | 292 +++++++++++++++++
 gcc/unittests/test-gimple.c        | 179 +++++++++++
 gcc/unittests/test-hash-map.c      |  78 +++++
 gcc/unittests/test-hash-set.c      |  54 ++++
 gcc/unittests/test-locations.c     | 148 +++++++++
 gcc/unittests/test-rtl.c           |  94 ++++++
 gcc/unittests/test-tree.c          | 102 ++++++
 gcc/unittests/test-vec.c           | 162 ++++++++++
 gcc/unittests/test-wide-int.c      | 186 +++++++++++
 gcc/unittests/unittests-frontend.c | 250 +++++++++++++++
 gcc/unittests/unittests-main.c     | 108 +++++++
 18 files changed, 3080 insertions(+), 1 deletion(-)
 create mode 100644 gcc/unittests/Make-lang.in
 create mode 100644 gcc/unittests/config-lang.in
 create mode 100644 gcc/unittests/test-bitmap.c
 create mode 100644 gcc/unittests/test-cfg.c
 create mode 100644 gcc/unittests/test-folding.c
 create mode 100644 gcc/unittests/test-functions.c
 create mode 100644 gcc/unittests/test-ggc.c
 create mode 100644 gcc/unittests/test-gimple.c
 create mode 100644 gcc/unittests/test-hash-map.c
 create mode 100644 gcc/unittests/test-hash-set.c
 create mode 100644 gcc/unittests/test-locations.c
 create mode 100644 gcc/unittests/test-rtl.c
 create mode 100644 gcc/unittests/test-tree.c
 create mode 100644 gcc/unittests/test-vec.c
 create mode 100644 gcc/unittests/test-wide-int.c
 create mode 100644 gcc/unittests/unittests-frontend.c
 create mode 100644 gcc/unittests/unittests-main.c

-- 
1.8.5.3

^ permalink raw reply	[flat|nested] 176+ messages in thread

end of thread, other threads:[~2016-06-08  0:23 UTC | newest]

Thread overview: 176+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-10 15:10 [PATCH 00/17] RFC: Addding a unit testing framework to gcc David Malcolm
2015-06-10 15:10 ` [PATCH 09/17] Add test-hash-set.c to gcc/unittests 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:10 ` [PATCH 05/17] Add test-functions.c " 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: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 13/17] Add test-vec.c to gcc/unittests David Malcolm
2015-06-10 15:26 ` [PATCH 16/17] Add unittests-main.c " David Malcolm
2015-06-10 15:28 ` [PATCH 15/17] Add unittests-frontend.c " David Malcolm
2015-06-10 15:28 ` [PATCH 06/17] Add test-ggc.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
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 15/16] Add test-vec.c to unittests David Malcolm
2015-10-30  5:10               ` 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 03/16] Add test-bitmap.c to unittests David Malcolm
2015-10-29 21:36               ` 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 05/16] Add test-et-forest.c " David Malcolm
2015-10-30  4:11               ` 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:32             ` [PATCH 07/16] Add test-functions.c " David Malcolm
2015-10-30  5:19               ` 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: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 12/16] Add test-locations.c " David Malcolm
2015-10-30  5:09               ` 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: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 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 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 06/15] Add function-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 10/15] Add hash-set-tests.c David Malcolm
2015-11-19 16:46                         ` [PATCH 07/15] Fix warning in function-tests.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 08/15] Add selftests to gimple.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 02/21] Makefile.in integration David Malcolm
2016-06-01 20:54                           ` [PATCH 09/21] Add selftests to et-forest.c David Malcolm
2016-06-01 20:54                           ` [PATCH 03/21] Various selftest::runner tweaks David Malcolm
2016-06-01 20:54                           ` [PATCH 17/21] Add hash-set-tests.c 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 01/21] Selftest framework (unittests v5) David Malcolm
2016-06-01 20:54                           ` [PATCH 10/21] Add selftests to fold-const.c David Malcolm
2016-06-01 20:54                           ` [PATCH 18/21] Add selftests to input.c David Malcolm
2016-06-01 20:54                           ` [PATCH 20/21] Add selftests to tree.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 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:41                                 ` [PATCH 04/16] bitmap.c: add selftests David Malcolm
2016-06-02 20:41                                 ` [PATCH 05/16] tree-cfg.c: " David Malcolm
2016-06-02 20:41                                 ` [PATCH 09/16] gimple.c: " David Malcolm
2016-06-02 20:41                                 ` [PATCH 02/16] diagnostic-show-locus.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: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

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).