Add selftests to selftest.c
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 11 Aug 2016 23:36:46 +0000 (23:36 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Thu, 11 Aug 2016 23:36:46 +0000 (23:36 +0000)
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.

From-SVN: r239397

gcc/ChangeLog
gcc/selftest-run-tests.c
gcc/selftest.c
gcc/selftest.h

index 6007f8bf89fbe382b334e5b62862b4c8d473c601..b861721297299f6f002a6b5ab9f70b1228eec6fd 100644 (file)
@@ -1,3 +1,10 @@
+2016-08-11  David Malcolm  <dmalcolm@redhat.com>
+
+       * 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.
+
 2016-08-11  Richard Biener  <rguenther@suse.de>
            Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
 
index 9d75a8e3c31d515e1bda5820712c5700574e0993..6453e31498299da90e5353a87344a63660148dda 100644 (file)
@@ -42,6 +42,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 ();
index 76a4c4149479b041acd134dd8a47fde03b9f8737..2951c3c9bb8ddd102c33c19d1f1c430e0e87d40c 100644 (file)
@@ -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 */
index 397e998048b9ac007701c1da13505211d9f16181..55601efc9f1ae78526c6a4f90123c1d5210cf781 100644 (file)
@@ -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 ();