aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/tests
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@redhat.com>2012-10-30 18:02:05 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2012-11-01 16:00:40 -0400
commitd898b241215daf6f2e654b32ebb8341bffc98cc5 (patch)
treeebb474c8c481dbbd3f55be3d689fef289e487c98 /tools/perf/tests
parentbf779746f928de99eba84de0a72a5bbfa87ca680 (diff)
perf tests: Add attr tests under builtin test command
The test attr suite is run only if it's run under perf source directory, or tests are found in installed path. Otherwise tests are omitted (notification is displayed) and finished as successful. Signed-off-by: Jiri Olsa <jolsa@redhat.com> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1351634526-1516-25-git-send-email-jolsa@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/tests')
-rw-r--r--tools/perf/tests/attr.c35
-rw-r--r--tools/perf/tests/builtin-test.c4
2 files changed, 39 insertions, 0 deletions
diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
index 55e9a873a5c..aacad82634c 100644
--- a/tools/perf/tests/attr.c
+++ b/tools/perf/tests/attr.c
@@ -26,9 +26,12 @@
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include "../perf.h" 27#include "../perf.h"
28#include "util.h" 28#include "util.h"
29#include "exec_cmd.h"
29 30
30#define ENV "PERF_TEST_ATTR" 31#define ENV "PERF_TEST_ATTR"
31 32
33extern int verbose;
34
32bool test_attr__enabled; 35bool test_attr__enabled;
33 36
34static char *dir; 37static char *dir;
@@ -138,3 +141,35 @@ void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu,
138 141
139 errno = errno_saved; 142 errno = errno_saved;
140} 143}
144
145static int run_dir(const char *d, const char *perf)
146{
147 char cmd[3*PATH_MAX];
148
149 snprintf(cmd, 3*PATH_MAX, "python %s/attr.py -d %s/attr/ -p %s %s",
150 d, d, perf, verbose ? "-v" : "");
151
152 return system(cmd);
153}
154
155int test_attr__run(void)
156{
157 struct stat st;
158 char path_perf[PATH_MAX];
159 char path_dir[PATH_MAX];
160
161 /* First try developement tree tests. */
162 if (!lstat("./tests", &st))
163 return run_dir("./tests", "./perf");
164
165 /* Then installed path. */
166 snprintf(path_dir, PATH_MAX, "%s/tests", perf_exec_path());
167 snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR);
168
169 if (!lstat(path_dir, &st) &&
170 !lstat(path_perf, &st))
171 return run_dir(path_dir, path_perf);
172
173 fprintf(stderr, " (ommitted)");
174 return 0;
175}
diff --git a/tools/perf/tests/builtin-test.c b/tools/perf/tests/builtin-test.c
index f6c642415c4..1aa9e992704 100644
--- a/tools/perf/tests/builtin-test.c
+++ b/tools/perf/tests/builtin-test.c
@@ -1455,6 +1455,10 @@ static struct test {
1455 .func = test__syscall_open_tp_fields, 1455 .func = test__syscall_open_tp_fields,
1456 }, 1456 },
1457 { 1457 {
1458 .desc = "struct perf_event_attr setup",
1459 .func = test_attr__run,
1460 },
1461 {
1458 .func = NULL, 1462 .func = NULL,
1459 }, 1463 },
1460}; 1464};