]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/selftest-run-tests.cc
[prange] Reword dispatch error message
[thirdparty/gcc.git] / gcc / selftest-run-tests.cc
CommitLineData
d9b950dd 1/* Implementation of selftests.
a945c346 2 Copyright (C) 2015-2024 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"
4f01ae37 31#include "text-art/selftests.h"
d9b950dd 32
e53b6e56 33/* This function needed to be split out from selftest.cc as it references
d9b950dd
DM
34 tests from the whole source tree, and so is within
35 OBJS in Makefile.in, whereas selftest.o is within OBJS-libcommon.
36 This allows us to embed tests within files in OBJS-libcommon without
37 introducing a dependency on objects within OBJS. */
38
39#if CHECKING_P
40
41/* Run all tests, aborting if any fail. */
42
43void
44selftest::run_tests ()
45{
ecfc21ff
DM
46 /* Makefile.in has -fself-test=$(srcdir)/testsuite/selftests, so that
47 flag_self_test contains the path to the selftest subdirectory of the
48 source tree (without a trailing slash). Copy it up to
e53b6e56 49 path_to_selftest_files, to avoid selftest.cc depending on
ecfc21ff
DM
50 option-handling. */
51 path_to_selftest_files = flag_self_test;
52
421b29d6 53 test_runner r ("-fself-test");
d9b950dd
DM
54
55 /* Run all the tests, in hand-coded order of (approximate) dependencies:
56 run the tests for lowest-level code first. */
57
5714dbda 58 /* Sanity-check for selftests themselves. */
d5148d4f 59 selftest_cc_tests ();
5714dbda 60
d9b950dd 61 /* Low-level data structures. */
d5148d4f
DM
62 bitmap_cc_tests ();
63 sbitmap_cc_tests ();
64 dumpfile_cc_tests ();
65 et_forest_cc_tests ();
66 hash_map_tests_cc_tests ();
67 hash_set_tests_cc_tests ();
68 vec_cc_tests ();
69 pretty_print_cc_tests ();
d9b950dd 70 wide_int_cc_tests ();
d5148d4f
DM
71 ggc_tests_cc_tests ();
72 sreal_cc_tests ();
73 fibonacci_heap_cc_tests ();
74 typed_splay_tree_cc_tests ();
75 opt_suggestions_cc_tests ();
76 opts_cc_tests ();
4a4412b9 77 json_cc_tests ();
d5148d4f 78 cgraph_cc_tests ();
4a4412b9 79 optinfo_emit_json_cc_tests ();
757bf1df 80 ordered_hash_map_tests_cc_tests ();
9a0882ef 81 splay_tree_cc_tests ();
d9b950dd
DM
82
83 /* Mid-level data structures. */
d5148d4f
DM
84 input_cc_tests ();
85 vec_perm_indices_cc_tests ();
86 tree_cc_tests ();
87 convert_cc_tests ();
88 gimple_cc_tests ();
89 rtl_tests_cc_tests ();
90 read_rtl_function_cc_tests ();
757bf1df
DM
91 digraph_cc_tests ();
92 tristate_cc_tests ();
d5148d4f 93 ipa_modref_tree_cc_tests ();
d9b950dd
DM
94
95 /* Higher-level tests, or for components that other selftests don't
96 rely on. */
d5148d4f 97 diagnostic_show_locus_cc_tests ();
30d3ba51 98 diagnostic_format_json_cc_tests ();
d5148d4f
DM
99 edit_context_cc_tests ();
100 fold_const_cc_tests ();
101 spellcheck_cc_tests ();
102 spellcheck_tree_cc_tests ();
103 tree_cfg_cc_tests ();
4bc1899b 104 tree_diagnostic_path_cc_tests ();
d5148d4f 105 attribs_cc_tests ();
d9b950dd
DM
106
107 /* This one relies on most of the above. */
d5148d4f 108 function_tests_cc_tests ();
d9b950dd 109
40af5894
DM
110 /* Run any target-specific selftests. */
111 if (targetm.run_target_selftests)
112 targetm.run_target_selftests ();
113
d5148d4f
DM
114 store_merging_cc_tests ();
115 predict_cc_tests ();
116 simplify_rtx_cc_tests ();
117 dbgcnt_cc_tests ();
c22d8787 118
895aa8e1
DM
119 /* Run any lang-specific selftests. */
120 lang_hooks.run_lang_selftests ();
121
4f01ae37 122 text_art_tests ();
c5db4d8b 123 gcc_urlifier_cc_tests ();
4f01ae37 124
757bf1df 125 /* Run the analyzer selftests (if enabled). */
75038aa6 126 ana::selftest::run_analyzer_selftests ();
757bf1df 127
6c3b5bf0
DM
128 /* Force a GC at the end of the selftests, to shake out GC-related
129 issues. For example, if any GC-managed items have buggy (or missing)
130 finalizers, this last collection will ensure that things that were
131 failed to be finalized can be detected by valgrind. */
602fca42 132 ggc_collect (GGC_COLLECT_FORCE);
6c3b5bf0 133
421b29d6 134 /* Finished running tests; the test_runner dtor will print a summary. */
d9b950dd
DM
135}
136
137#endif /* #if CHECKING_P */