From ddffd2052f876a94e73f9b7c2c341114d764c097 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Tue, 2 Aug 2016 17:23:02 -0400 Subject: [PATCH 02/35] Add selftests to selftest.c This patch adds some initial selftesting of selftest.c/h itself. This may seem like overdoing it, but some of the followup patches add non-trivial logic to selftest.c, which we should verify, so it makes sense to test the existing functionality. gcc/ChangeLog: * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests. * selftest.c (selftest::test_assertions): New function. (selftest::selftest_c_tests): New function. * selftest.h (selftest::selftest_c_tests): New declaration. --- gcc/selftest-run-tests.c | 3 +++ gcc/selftest.c | 28 ++++++++++++++++++++++++++++ gcc/selftest.h | 1 + 3 files changed, 32 insertions(+) diff --git a/gcc/selftest-run-tests.c b/gcc/selftest-run-tests.c index 85e101d..cb92036 100644 --- a/gcc/selftest-run-tests.c +++ b/gcc/selftest-run-tests.c @@ -40,6 +40,9 @@ selftest::run_tests () /* Run all the tests, in hand-coded order of (approximate) dependencies: run the tests for lowest-level code first. */ + /* Sanity-check for selftests themselves. */ + selftest_c_tests (); + /* Low-level data structures. */ bitmap_c_tests (); et_forest_c_tests (); diff --git a/gcc/selftest.c b/gcc/selftest.c index 76a4c41..2951c3c 100644 --- a/gcc/selftest.c +++ b/gcc/selftest.c @@ -88,4 +88,32 @@ selftest::assert_streq (const location &loc, } +/* Selftests for the selftest system itself. */ + +namespace selftest { + +/* Sanity-check the ASSERT_ macros with various passing cases. */ + +static void +test_assertions () +{ + ASSERT_TRUE (true); + ASSERT_FALSE (false); + ASSERT_EQ (1, 1); + ASSERT_EQ_AT (SELFTEST_LOCATION, 1, 1); + ASSERT_NE (1, 2); + ASSERT_STREQ ("test", "test"); + ASSERT_STREQ_AT (SELFTEST_LOCATION, "test", "test"); +} + +/* Run all of the selftests within this file. */ + +void +selftest_c_tests () +{ + test_assertions (); +} + +} // namespace selftest + #endif /* #if CHECKING_P */ diff --git a/gcc/selftest.h b/gcc/selftest.h index 0bee476..173b72a 100644 --- a/gcc/selftest.h +++ b/gcc/selftest.h @@ -85,6 +85,7 @@ extern void hash_set_tests_c_tests (); extern void input_c_tests (); extern void pretty_print_c_tests (); extern void rtl_tests_c_tests (); +extern void selftest_c_tests (); extern void spellcheck_c_tests (); extern void spellcheck_tree_c_tests (); extern void sreal_c_tests (); -- 1.8.5.3