Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 338940
b: refs/heads/master
c: d898b24
h: refs/heads/master
v: v3
  • Loading branch information
Jiri Olsa authored and Arnaldo Carvalho de Melo committed Nov 1, 2012
1 parent af46bed commit d893a0c
Show file tree
Hide file tree
Showing 5 changed files with 50 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bf779746f928de99eba84de0a72a5bbfa87ca680
refs/heads/master: d898b241215daf6f2e654b32ebb8341bffc98cc5
9 changes: 9 additions & 0 deletions trunk/tools/perf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,11 @@ $(OUTPUT)util/exec_cmd.o: util/exec_cmd.c $(OUTPUT)PERF-CFLAGS
'-DPREFIX="$(prefix_SQ)"' \
$<

$(OUTPUT)tests/attr.o: tests/attr.c $(OUTPUT)PERF-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) \
'-DBINDIR="$(bindir_SQ)"' \
$<

$(OUTPUT)util/config.o: util/config.c $(OUTPUT)PERF-CFLAGS
$(QUIET_CC)$(CC) -o $@ -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<

Expand Down Expand Up @@ -1062,6 +1067,10 @@ install: all try-install-man
$(INSTALL) scripts/python/bin/* -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/python/bin'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d'
$(INSTALL) bash_completion '$(DESTDIR_SQ)$(sysconfdir_SQ)/bash_completion.d/perf'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
$(INSTALL) tests/attr.py '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests'
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'
$(INSTALL) tests/attr/* '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/tests/attr'

install-python_ext:
$(PYTHON_WORD) util/setup.py --quiet install --root='/$(DESTDIR_SQ)'
Expand Down
1 change: 1 addition & 0 deletions trunk/tools/perf/perf.h
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ extern bool test_attr__enabled;
void test_attr__init(void);
void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu,
int fd, int group_fd, unsigned long flags);
int test_attr__run(void);

static inline int
sys_perf_event_open(struct perf_event_attr *attr,
Expand Down
35 changes: 35 additions & 0 deletions trunk/tools/perf/tests/attr.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,12 @@
#include <linux/kernel.h>
#include "../perf.h"
#include "util.h"
#include "exec_cmd.h"

#define ENV "PERF_TEST_ATTR"

extern int verbose;

bool test_attr__enabled;

static char *dir;
Expand Down Expand Up @@ -138,3 +141,35 @@ void test_attr__open(struct perf_event_attr *attr, pid_t pid, int cpu,

errno = errno_saved;
}

static int run_dir(const char *d, const char *perf)
{
char cmd[3*PATH_MAX];

snprintf(cmd, 3*PATH_MAX, "python %s/attr.py -d %s/attr/ -p %s %s",
d, d, perf, verbose ? "-v" : "");

return system(cmd);
}

int test_attr__run(void)
{
struct stat st;
char path_perf[PATH_MAX];
char path_dir[PATH_MAX];

/* First try developement tree tests. */
if (!lstat("./tests", &st))
return run_dir("./tests", "./perf");

/* Then installed path. */
snprintf(path_dir, PATH_MAX, "%s/tests", perf_exec_path());
snprintf(path_perf, PATH_MAX, "%s/perf", BINDIR);

if (!lstat(path_dir, &st) &&
!lstat(path_perf, &st))
return run_dir(path_dir, path_perf);

fprintf(stderr, " (ommitted)");
return 0;
}
4 changes: 4 additions & 0 deletions trunk/tools/perf/tests/builtin-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -1454,6 +1454,10 @@ static struct test {
.desc = "Generate and check syscalls:sys_enter_open event fields",
.func = test__syscall_open_tp_fields,
},
{
.desc = "struct perf_event_attr setup",
.func = test_attr__run,
},
{
.func = NULL,
},
Expand Down

0 comments on commit d893a0c

Please sign in to comment.