[PATCH 3/6] perf tests: Add numeric identifier to evlist_test

2014-04-29 Thread Jiri Olsa
From: Alexander Yarygin 

In tests/parse-events.c test cases are declared in evlist_test[]
arrays. Elements of arrays are initialized in following pattern:
[i] = {
.name  = ...,
.check = ...,
},

When perf-test is running with '-v' option, 'i' variable will be
printed for every existing test.

However, we can't add any arch specific tests inside #ifdefs, because it
will create collision between the element number inside #ifdef and the
next one outside.

This patch adds 'id' field in evlist_test, uses it as a test
identifier and removes explicit numbering of array elements. This helps
to number tests with gaps.

Signed-off-by: Alexander Yarygin 
Link: 
http://lkml.kernel.org/r/1398440047-6641-3-git-send-email-yary...@linux.vnet.ibm.com
Signed-off-by: Jiri Olsa 
---
 tools/perf/tests/parse-events.c | 135 ++--
 1 file changed, 90 insertions(+), 45 deletions(-)

diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
index 8605ff5..81dbd5a 100644
--- a/tools/perf/tests/parse-events.c
+++ b/tools/perf/tests/parse-events.c
@@ -1174,188 +1174,233 @@ static int test__all_tracepoints(struct perf_evlist 
*evlist)
 struct evlist_test {
const char *name;
__u32 type;
+   const int id;
int (*check)(struct perf_evlist *evlist);
 };
 
 static struct evlist_test test__events[] = {
-   [0] = {
+   {
.name  = "syscalls:sys_enter_open",
.check = test__checkevent_tracepoint,
+   .id= 0,
},
-   [1] = {
+   {
.name  = "syscalls:*",
.check = test__checkevent_tracepoint_multi,
+   .id= 1,
},
-   [2] = {
+   {
.name  = "r1a",
.check = test__checkevent_raw,
+   .id= 2,
},
-   [3] = {
+   {
.name  = "1:1",
.check = test__checkevent_numeric,
+   .id= 3,
},
-   [4] = {
+   {
.name  = "instructions",
.check = test__checkevent_symbolic_name,
+   .id= 4,
},
-   [5] = {
+   {
.name  = "cycles/period=10,config2/",
.check = test__checkevent_symbolic_name_config,
+   .id= 5,
},
-   [6] = {
+   {
.name  = "faults",
.check = test__checkevent_symbolic_alias,
+   .id= 6,
},
-   [7] = {
+   {
.name  = "L1-dcache-load-miss",
.check = test__checkevent_genhw,
+   .id= 7,
},
-   [8] = {
+   {
.name  = "mem:0",
.check = test__checkevent_breakpoint,
+   .id= 8,
},
-   [9] = {
+   {
.name  = "mem:0:x",
.check = test__checkevent_breakpoint_x,
+   .id= 9,
},
-   [10] = {
+   {
.name  = "mem:0:r",
.check = test__checkevent_breakpoint_r,
+   .id= 10,
},
-   [11] = {
+   {
.name  = "mem:0:w",
.check = test__checkevent_breakpoint_w,
+   .id= 11,
},
-   [12] = {
+   {
.name  = "syscalls:sys_enter_open:k",
.check = test__checkevent_tracepoint_modifier,
+   .id= 12,
},
-   [13] = {
+   {
.name  = "syscalls:*:u",
.check = test__checkevent_tracepoint_multi_modifier,
+   .id= 13,
},
-   [14] = {
+   {
.name  = "r1a:kp",
.check = test__checkevent_raw_modifier,
+   .id= 14,
},
-   [15] = {
+   {
.name  = "1:1:hp",
.check = test__checkevent_numeric_modifier,
+   .id= 15,
},
-   [16] = {
+   {
.name  = "instructions:h",
.check = test__checkevent_symbolic_name_modifier,
+   .id= 16,
},
-   [17] = {
+   {
.name  = "faults:u",
.check = test__checkevent_symbolic_alias_modifier,
+   .id= 17,
},
-   [18] = {
+   {
.name  = "L1-dcache-load-miss:kp",
.check = test__checkevent_genhw_modifier,
+   .id= 18,
},
-   [19] = {
+   {
.name  = "mem:0:u",
.check = test__checkevent_breakpoint_modifier,
+   .id= 19,
},
-   [20] = {
+   {
.name  = "mem:0:x:k",
.check = test__checkevent_breakpoint_x_modifier,
+   .id= 20,
},
-   [21] = {
+   {
.name  = "mem:0:r:hp",
.check = 

[PATCH 3/6] perf tests: Add numeric identifier to evlist_test

2014-04-29 Thread Jiri Olsa
From: Alexander Yarygin yary...@linux.vnet.ibm.com

In tests/parse-events.c test cases are declared in evlist_test[]
arrays. Elements of arrays are initialized in following pattern:
[i] = {
.name  = ...,
.check = ...,
},

When perf-test is running with '-v' option, 'i' variable will be
printed for every existing test.

However, we can't add any arch specific tests inside #ifdefs, because it
will create collision between the element number inside #ifdef and the
next one outside.

This patch adds 'id' field in evlist_test, uses it as a test
identifier and removes explicit numbering of array elements. This helps
to number tests with gaps.

Signed-off-by: Alexander Yarygin yary...@linux.vnet.ibm.com
Link: 
http://lkml.kernel.org/r/1398440047-6641-3-git-send-email-yary...@linux.vnet.ibm.com
Signed-off-by: Jiri Olsa jo...@kernel.org
---
 tools/perf/tests/parse-events.c | 135 ++--
 1 file changed, 90 insertions(+), 45 deletions(-)

diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c
index 8605ff5..81dbd5a 100644
--- a/tools/perf/tests/parse-events.c
+++ b/tools/perf/tests/parse-events.c
@@ -1174,188 +1174,233 @@ static int test__all_tracepoints(struct perf_evlist 
*evlist)
 struct evlist_test {
const char *name;
__u32 type;
+   const int id;
int (*check)(struct perf_evlist *evlist);
 };
 
 static struct evlist_test test__events[] = {
-   [0] = {
+   {
.name  = syscalls:sys_enter_open,
.check = test__checkevent_tracepoint,
+   .id= 0,
},
-   [1] = {
+   {
.name  = syscalls:*,
.check = test__checkevent_tracepoint_multi,
+   .id= 1,
},
-   [2] = {
+   {
.name  = r1a,
.check = test__checkevent_raw,
+   .id= 2,
},
-   [3] = {
+   {
.name  = 1:1,
.check = test__checkevent_numeric,
+   .id= 3,
},
-   [4] = {
+   {
.name  = instructions,
.check = test__checkevent_symbolic_name,
+   .id= 4,
},
-   [5] = {
+   {
.name  = cycles/period=10,config2/,
.check = test__checkevent_symbolic_name_config,
+   .id= 5,
},
-   [6] = {
+   {
.name  = faults,
.check = test__checkevent_symbolic_alias,
+   .id= 6,
},
-   [7] = {
+   {
.name  = L1-dcache-load-miss,
.check = test__checkevent_genhw,
+   .id= 7,
},
-   [8] = {
+   {
.name  = mem:0,
.check = test__checkevent_breakpoint,
+   .id= 8,
},
-   [9] = {
+   {
.name  = mem:0:x,
.check = test__checkevent_breakpoint_x,
+   .id= 9,
},
-   [10] = {
+   {
.name  = mem:0:r,
.check = test__checkevent_breakpoint_r,
+   .id= 10,
},
-   [11] = {
+   {
.name  = mem:0:w,
.check = test__checkevent_breakpoint_w,
+   .id= 11,
},
-   [12] = {
+   {
.name  = syscalls:sys_enter_open:k,
.check = test__checkevent_tracepoint_modifier,
+   .id= 12,
},
-   [13] = {
+   {
.name  = syscalls:*:u,
.check = test__checkevent_tracepoint_multi_modifier,
+   .id= 13,
},
-   [14] = {
+   {
.name  = r1a:kp,
.check = test__checkevent_raw_modifier,
+   .id= 14,
},
-   [15] = {
+   {
.name  = 1:1:hp,
.check = test__checkevent_numeric_modifier,
+   .id= 15,
},
-   [16] = {
+   {
.name  = instructions:h,
.check = test__checkevent_symbolic_name_modifier,
+   .id= 16,
},
-   [17] = {
+   {
.name  = faults:u,
.check = test__checkevent_symbolic_alias_modifier,
+   .id= 17,
},
-   [18] = {
+   {
.name  = L1-dcache-load-miss:kp,
.check = test__checkevent_genhw_modifier,
+   .id= 18,
},
-   [19] = {
+   {
.name  = mem:0:u,
.check = test__checkevent_breakpoint_modifier,
+   .id= 19,
},
-   [20] = {
+   {
.name  = mem:0:x:k,
.check = test__checkevent_breakpoint_x_modifier,
+   .id= 20,
},
-   [21] = {
+   {
.name  = mem:0:r:hp,
.check