comparison gcc/selftest-run-tests.c @ 132:d34655255c78

update gcc-8.2
author mir3636
date Thu, 25 Oct 2018 10:21:07 +0900
parents 84e7813d76e9
children 1830386684a0
comparison
equal deleted inserted replaced
130:e108057fa461 132:d34655255c78
1 /* Implementation of selftests. 1 /* Implementation of selftests.
2 Copyright (C) 2015-2017 Free Software Foundation, Inc. 2 Copyright (C) 2015-2018 Free Software Foundation, Inc.
3 3
4 This file is part of GCC. 4 This file is part of GCC.
5 5
6 GCC is free software; you can redistribute it and/or modify it under 6 GCC is free software; you can redistribute it and/or modify it under
7 the terms of the GNU General Public License as published by the Free 7 the terms of the GNU General Public License as published by the Free
23 #include "selftest.h" 23 #include "selftest.h"
24 #include "tree.h" 24 #include "tree.h"
25 #include "target.h" 25 #include "target.h"
26 #include "langhooks.h" 26 #include "langhooks.h"
27 #include "options.h" 27 #include "options.h"
28 #include "stringpool.h"
29 #include "attribs.h"
28 30
29 /* This function needed to be split out from selftest.c as it references 31 /* This function needed to be split out from selftest.c as it references
30 tests from the whole source tree, and so is within 32 tests from the whole source tree, and so is within
31 OBJS in Makefile.in, whereas selftest.o is within OBJS-libcommon. 33 OBJS in Makefile.in, whereas selftest.o is within OBJS-libcommon.
32 This allows us to embed tests within files in OBJS-libcommon without 34 This allows us to embed tests within files in OBJS-libcommon without
44 source tree (without a trailing slash). Copy it up to 46 source tree (without a trailing slash). Copy it up to
45 path_to_selftest_files, to avoid selftest.c depending on 47 path_to_selftest_files, to avoid selftest.c depending on
46 option-handling. */ 48 option-handling. */
47 path_to_selftest_files = flag_self_test; 49 path_to_selftest_files = flag_self_test;
48 50
49 long start_time = get_run_time (); 51 test_runner r ("-fself-test");
50 52
51 /* Run all the tests, in hand-coded order of (approximate) dependencies: 53 /* Run all the tests, in hand-coded order of (approximate) dependencies:
52 run the tests for lowest-level code first. */ 54 run the tests for lowest-level code first. */
53 55
54 /* Sanity-check for selftests themselves. */ 56 /* Sanity-check for selftests themselves. */
55 selftest_c_tests (); 57 selftest_c_tests ();
56 58
57 /* Low-level data structures. */ 59 /* Low-level data structures. */
58 bitmap_c_tests (); 60 bitmap_c_tests ();
59 sbitmap_c_tests (); 61 sbitmap_c_tests ();
62 dumpfile_c_tests ();
60 et_forest_c_tests (); 63 et_forest_c_tests ();
61 hash_map_tests_c_tests (); 64 hash_map_tests_c_tests ();
62 hash_set_tests_c_tests (); 65 hash_set_tests_c_tests ();
63 vec_c_tests (); 66 vec_c_tests ();
64 pretty_print_c_tests (); 67 pretty_print_c_tests ();
66 ggc_tests_c_tests (); 69 ggc_tests_c_tests ();
67 sreal_c_tests (); 70 sreal_c_tests ();
68 fibonacci_heap_c_tests (); 71 fibonacci_heap_c_tests ();
69 typed_splay_tree_c_tests (); 72 typed_splay_tree_c_tests ();
70 unique_ptr_tests_cc_tests (); 73 unique_ptr_tests_cc_tests ();
74 opt_proposer_c_tests ();
75 json_cc_tests ();
76 optinfo_emit_json_cc_tests ();
77 opt_problem_cc_tests ();
71 78
72 /* Mid-level data structures. */ 79 /* Mid-level data structures. */
73 input_c_tests (); 80 input_c_tests ();
81 vec_perm_indices_c_tests ();
74 tree_c_tests (); 82 tree_c_tests ();
75 gimple_c_tests (); 83 gimple_c_tests ();
76 rtl_tests_c_tests (); 84 rtl_tests_c_tests ();
77 read_rtl_function_c_tests (); 85 read_rtl_function_c_tests ();
78 86
83 edit_context_c_tests (); 91 edit_context_c_tests ();
84 fold_const_c_tests (); 92 fold_const_c_tests ();
85 spellcheck_c_tests (); 93 spellcheck_c_tests ();
86 spellcheck_tree_c_tests (); 94 spellcheck_tree_c_tests ();
87 tree_cfg_c_tests (); 95 tree_cfg_c_tests ();
96 attribute_c_tests ();
88 97
89 /* This one relies on most of the above. */ 98 /* This one relies on most of the above. */
90 function_tests_c_tests (); 99 function_tests_c_tests ();
91 100
92 /* Run any target-specific selftests. */ 101 /* Run any target-specific selftests. */
93 if (targetm.run_target_selftests) 102 if (targetm.run_target_selftests)
94 targetm.run_target_selftests (); 103 targetm.run_target_selftests ();
95 104
96 store_merging_c_tests (); 105 store_merging_c_tests ();
97 predict_c_tests (); 106 predict_c_tests ();
107 simplify_rtx_c_tests ();
98 108
99 /* Run any lang-specific selftests. */ 109 /* Run any lang-specific selftests. */
100 lang_hooks.run_lang_selftests (); 110 lang_hooks.run_lang_selftests ();
101 111
102 /* Force a GC at the end of the selftests, to shake out GC-related 112 /* Force a GC at the end of the selftests, to shake out GC-related
103 issues. For example, if any GC-managed items have buggy (or missing) 113 issues. For example, if any GC-managed items have buggy (or missing)
104 finalizers, this last collection will ensure that things that were 114 finalizers, this last collection will ensure that things that were
105 failed to be finalized can be detected by valgrind. */ 115 failed to be finalized can be detected by valgrind. */
106 forcibly_ggc_collect (); 116 forcibly_ggc_collect ();
107 117
108 /* Finished running tests. */ 118 /* Finished running tests; the test_runner dtor will print a summary. */
109 long finish_time = get_run_time ();
110 long elapsed_time = finish_time - start_time;
111
112 fprintf (stderr,
113 "-fself-test: %i pass(es) in %ld.%06ld seconds\n",
114 num_passes,
115 elapsed_time / 1000000, elapsed_time % 1000000);
116 } 119 }
117 120
118 #endif /* #if CHECKING_P */ 121 #endif /* #if CHECKING_P */