aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
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
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')
-rw-r--r--tools/perf/Makefile9
-rw-r--r--tools/perf/perf.h1
-rw-r--r--tools/perf/tests/attr.c35
-rw-r--r--tools/perf/tests/builtin-test.c4
4 files changed, 49 insertions, 0 deletions
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index 1da87a30c73a..4ffcd02404f8 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -898,6 +898,11 @@ $(OUTPUT)util/exec_cmd.o: util/exec_cmd.c $(OUTPUT)PERF-CFLAGS
898 '-DPREFIX="$(prefix_SQ)"' \ 898 '-DPREFIX="$(prefix_SQ)"' \
899 $< 899 $<
900 900
901$(OUTPUT)tests/attr.o: tests/attr.c $(OUTPUT)PERF-CFLAGS
902 $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
903 '-DBINDIR="$(bindir_SQ)"' \
904 $<
905
901$(OUTPUT)util/config.o: util/config.c $(OUTPUT)PERF-CFLAGS 906$(OUTPUT)util/config.o: util/config.c $(OUTPUT)PERF-CFLAGS
902 $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< 907 $(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
903 908
@@ -1062,6 +1067,10 @@ install: all try-install-man
1062 $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin' 1067 $(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
1063 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d' 1068 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'
1064 $(INSTALL) bash_completion '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf' 1069 $(INSTALL) bash_completion '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
1070 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
1071 $(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
1072 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
1073 $(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
1065 1074
1066install-python_ext: 1075install-python_ext:
1067 $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)' 1076 $(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
diff --git a/tools/perf/perf.h b/tools/perf/perf.h
index 00472646b3bf..054182e41dca 100644
--- a/tools/perf/perf.h
+++ b/tools/perf/perf.h
@@ -178,6 +178,7 @@ extern bool test_attr__enabled;
178void test_attr__init(void); 178void test_attr__init(void);
179void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu, 179void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu,
180 int fd, int group_fd, unsigned long flags); 180 int fd, int group_fd, unsigned long flags);
181int test_attr__run(void);
181 182
182static inline int 183static inline int
183sys_perf_event_open(struct perf_event_attr *attr, 184sys_perf_event_open(struct perf_event_attr *attr,
diff --git a/tools/perf/tests/attr.c b/tools/perf/tests/attr.c
index 55e9a873a5cb..aacad82634c6 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 f6c642415c44..1aa9e9927043 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};