builtin-test.c (f4c1ea5f2a6b9e1c0aaa874ffb25fe4a4f9f1a3f) | builtin-test.c (2ae828786c65ab8f587647bd0f22f8fe00f1f238) |
---|---|
1/* 2 * builtin-test.c 3 * 4 * Builtin regression testing command: ever growing number of sanity tests 5 */ 6#include "builtin.h" | 1/* 2 * builtin-test.c 3 * 4 * Builtin regression testing command: ever growing number of sanity tests 5 */ 6#include "builtin.h" |
7#include "intlist.h" |
|
7#include "tests.h" 8#include "debug.h" 9#include "color.h" 10#include "parse-options.h" 11#include "symbol.h" 12 13static struct test { 14 const char *desc; --- 85 unchanged lines hidden (view full) --- 100 101 if (strstr(tests[curr].desc, argv[i])) 102 return true; 103 } 104 105 return false; 106} 107 | 8#include "tests.h" 9#include "debug.h" 10#include "color.h" 11#include "parse-options.h" 12#include "symbol.h" 13 14static struct test { 15 const char *desc; --- 85 unchanged lines hidden (view full) --- 101 102 if (strstr(tests[curr].desc, argv[i])) 103 return true; 104 } 105 106 return false; 107} 108 |
108static int __cmd_test(int argc, const char *argv[]) | 109static int __cmd_test(int argc, const char *argv[], struct intlist *skiplist) |
109{ 110 int i = 0; 111 int width = 0; 112 113 while (tests[i].func) { 114 int len = strlen(tests[i].desc); 115 116 if (width < len) --- 4 unchanged lines hidden (view full) --- 121 i = 0; 122 while (tests[i].func) { 123 int curr = i++, err; 124 125 if (!perf_test__matches(curr, argc, argv)) 126 continue; 127 128 pr_info("%2d: %-*s:", i, width, tests[curr].desc); | 110{ 111 int i = 0; 112 int width = 0; 113 114 while (tests[i].func) { 115 int len = strlen(tests[i].desc); 116 117 if (width < len) --- 4 unchanged lines hidden (view full) --- 122 i = 0; 123 while (tests[i].func) { 124 int curr = i++, err; 125 126 if (!perf_test__matches(curr, argc, argv)) 127 continue; 128 129 pr_info("%2d: %-*s:", i, width, tests[curr].desc); |
130 131 if (intlist__find(skiplist, i)) { 132 color_fprintf(stderr, PERF_COLOR_YELLOW, " Skip (user override)\n"); 133 continue; 134 } 135 |
|
129 pr_debug("\n--- start ---\n"); 130 err = tests[curr].func(); 131 pr_debug("---- end ----\n%s:", tests[curr].desc); 132 133 switch (err) { 134 case TEST_OK: 135 pr_info(" Ok\n"); 136 break; --- 27 unchanged lines hidden (view full) --- 164} 165 166int cmd_test(int argc, const char **argv, const char *prefix __maybe_unused) 167{ 168 const char * const test_usage[] = { 169 "perf test [<options>] [{list <test-name-fragment>|[<test-name-fragments>|<test-numbers>]}]", 170 NULL, 171 }; | 136 pr_debug("\n--- start ---\n"); 137 err = tests[curr].func(); 138 pr_debug("---- end ----\n%s:", tests[curr].desc); 139 140 switch (err) { 141 case TEST_OK: 142 pr_info(" Ok\n"); 143 break; --- 27 unchanged lines hidden (view full) --- 171} 172 173int cmd_test(int argc, const char **argv, const char *prefix __maybe_unused) 174{ 175 const char * const test_usage[] = { 176 "perf test [<options>] [{list <test-name-fragment>|[<test-name-fragments>|<test-numbers>]}]", 177 NULL, 178 }; |
179 const char *skip = NULL; |
|
172 const struct option test_options[] = { | 180 const struct option test_options[] = { |
181 OPT_STRING('s', "skip", &skip, "tests", "tests to skip"), |
|
173 OPT_INCR('v', "verbose", &verbose, 174 "be more verbose (show symbol address, etc)"), 175 OPT_END() 176 }; | 182 OPT_INCR('v', "verbose", &verbose, 183 "be more verbose (show symbol address, etc)"), 184 OPT_END() 185 }; |
186 struct intlist *skiplist = NULL; |
|
177 178 argc = parse_options(argc, argv, test_options, test_usage, 0); 179 if (argc >= 1 && !strcmp(argv[0], "list")) 180 return perf_test__list(argc, argv); 181 182 symbol_conf.priv_size = sizeof(int); 183 symbol_conf.sort_by_name = true; 184 symbol_conf.try_vmlinux_path = true; 185 186 if (symbol__init() < 0) 187 return -1; 188 | 187 188 argc = parse_options(argc, argv, test_options, test_usage, 0); 189 if (argc >= 1 && !strcmp(argv[0], "list")) 190 return perf_test__list(argc, argv); 191 192 symbol_conf.priv_size = sizeof(int); 193 symbol_conf.sort_by_name = true; 194 symbol_conf.try_vmlinux_path = true; 195 196 if (symbol__init() < 0) 197 return -1; 198 |
189 return __cmd_test(argc, argv); | 199 if (skip != NULL) 200 skiplist = intlist__new(skip); 201 202 return __cmd_test(argc, argv, skiplist); |
190} | 203} |