]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/selftest-run-tests.c
Update copyright years.
[thirdparty/gcc.git] / gcc / selftest-run-tests.c
CommitLineData
d9b950dd 1/* Implementation of selftests.
7adcbafe 2 Copyright (C) 2015-2022 Free Software Foundation, Inc.
d9b950dd
DM
3
4This file is part of GCC.
5
6GCC is free software; you can redistribute it and/or modify it under
7the terms of the GNU General Public License as published by the Free
8Software Foundation; either version 3, or (at your option) any later
9version.
10
11GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or
13FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14for more details.
15
16You should have received a copy of the GNU General Public License
17along with GCC; see the file COPYING3. If not see
18<http://www.gnu.org/licenses/>. */
19
20#include "config.h"
21#include "system.h"
22#include "coretypes.h"
23#include "selftest.h"
895aa8e1 24#include "tree.h"
40af5894 25#include "target.h"
895aa8e1 26#include "langhooks.h"
ecfc21ff 27#include "options.h"
5d9ae53d
MS
28#include "stringpool.h"
29#include "attribs.h"
757bf1df 30#include "analyzer/analyzer-selftests.h"
d9b950dd
DM
31
32/* This function needed to be split out from selftest.c as it references
33 tests from the whole source tree, and so is within
34 OBJS in Makefile.in, whereas selftest.o is within OBJS-libcommon.
35 This allows us to embed tests within files in OBJS-libcommon without
36 introducing a dependency on objects within OBJS. */
37
38#if CHECKING_P
39
40/* Run all tests, aborting if any fail. */
41
42void
43selftest::run_tests ()
44{
ecfc21ff
DM
45 /* Makefile.in has -fself-test=$(srcdir)/testsuite/selftests, so that
46 flag_self_test contains the path to the selftest subdirectory of the
47 source tree (without a trailing slash). Copy it up to
48 path_to_selftest_files, to avoid selftest.c depending on
49 option-handling. */
50 path_to_selftest_files = flag_self_test;
51
421b29d6 52 test_runner r ("-fself-test");
d9b950dd
DM
53
54 /* Run all the tests, in hand-coded order of (approximate) dependencies:
55 run the tests for lowest-level code first. */
56
5714dbda
DM
57 /* Sanity-check for selftests themselves. */
58 selftest_c_tests ();
59
d9b950dd
DM
60 /* Low-level data structures. */
61 bitmap_c_tests ();
0af377c1 62 sbitmap_c_tests ();
4f5b9c80 63 dumpfile_c_tests ();
d9b950dd
DM
64 et_forest_c_tests ();
65 hash_map_tests_c_tests ();
66 hash_set_tests_c_tests ();
67 vec_c_tests ();
4ccab56d 68 pretty_print_c_tests ();
d9b950dd 69 wide_int_cc_tests ();
8c4294b2 70 ggc_tests_c_tests ();
dcbdb17a 71 sreal_c_tests ();
ba1a7a0f 72 fibonacci_heap_c_tests ();
950f6c85 73 typed_splay_tree_c_tests ();
d86c7648 74 opt_proposer_c_tests ();
fa29cf0c 75 opts_c_tests ();
4a4412b9 76 json_cc_tests ();
212755ff 77 cgraph_c_tests ();
4a4412b9 78 optinfo_emit_json_cc_tests ();
f4ebbd24 79 opt_problem_cc_tests ();
757bf1df 80 ordered_hash_map_tests_cc_tests ();
9a0882ef 81 splay_tree_cc_tests ();
d9b950dd
DM
82
83 /* Mid-level data structures. */
84 input_c_tests ();
1a1c441d 85 vec_perm_indices_c_tests ();
d9b950dd 86 tree_c_tests ();
dfd7fdca 87 convert_c_tests ();
d9b950dd
DM
88 gimple_c_tests ();
89 rtl_tests_c_tests ();
51b86113 90 read_rtl_function_c_tests ();
757bf1df
DM
91 digraph_cc_tests ();
92 tristate_cc_tests ();
39b3b1bd 93 ipa_modref_tree_c_tests ();
d9b950dd
DM
94
95 /* Higher-level tests, or for components that other selftests don't
96 rely on. */
97 diagnostic_show_locus_c_tests ();
a93eac6a 98 diagnostic_c_tests ();
30d3ba51 99 diagnostic_format_json_cc_tests ();
c65236d6 100 edit_context_c_tests ();
d9b950dd
DM
101 fold_const_c_tests ();
102 spellcheck_c_tests ();
f254671f 103 spellcheck_tree_c_tests ();
d9b950dd 104 tree_cfg_c_tests ();
4bc1899b 105 tree_diagnostic_path_cc_tests ();
5d9ae53d 106 attribute_c_tests ();
d9b950dd
DM
107
108 /* This one relies on most of the above. */
109 function_tests_c_tests ();
110
40af5894
DM
111 /* Run any target-specific selftests. */
112 if (targetm.run_target_selftests)
113 targetm.run_target_selftests ();
114
c22d8787 115 store_merging_c_tests ();
d8838217 116 predict_c_tests ();
9b1de7e2 117 simplify_rtx_c_tests ();
5024c8bb 118 dbgcnt_c_tests ();
c22d8787 119
895aa8e1
DM
120 /* Run any lang-specific selftests. */
121 lang_hooks.run_lang_selftests ();
122
757bf1df 123 /* Run the analyzer selftests (if enabled). */
75038aa6 124 ana::selftest::run_analyzer_selftests ();
757bf1df 125
6c3b5bf0
DM
126 /* Force a GC at the end of the selftests, to shake out GC-related
127 issues. For example, if any GC-managed items have buggy (or missing)
128 finalizers, this last collection will ensure that things that were
129 failed to be finalized can be detected by valgrind. */
602fca42 130 ggc_collect (GGC_COLLECT_FORCE);
6c3b5bf0 131
421b29d6 132 /* Finished running tests; the test_runner dtor will print a summary. */
d9b950dd
DM
133}
134
135#endif /* #if CHECKING_P */