parse-events.c (277a163c83d7ba93fba1e8980d29a9f8bfcfba6c) parse-events.c (615b8f99f755f8e2701f08cef9c56bd3033891a5)
1
2#include "parse-events.h"
3#include "evsel.h"
4#include "evlist.h"
5#include <api/fs/fs.h>
6#include <api/fs/debugfs.h>
7#include "tests.h"
8#include <linux/hw_breakpoint.h>

--- 1160 unchanged lines hidden (view full) ---

1169 count_tracepoints() == evlist->nr_entries);
1170
1171 return test__checkevent_tracepoint_multi(evlist);
1172}
1173
1174struct evlist_test {
1175 const char *name;
1176 __u32 type;
1
2#include "parse-events.h"
3#include "evsel.h"
4#include "evlist.h"
5#include <api/fs/fs.h>
6#include <api/fs/debugfs.h>
7#include "tests.h"
8#include <linux/hw_breakpoint.h>

--- 1160 unchanged lines hidden (view full) ---

1169 count_tracepoints() == evlist->nr_entries);
1170
1171 return test__checkevent_tracepoint_multi(evlist);
1172}
1173
1174struct evlist_test {
1175 const char *name;
1176 __u32 type;
1177 const int id;
1177 int (*check)(struct perf_evlist *evlist);
1178};
1179
1180static struct evlist_test test__events[] = {
1178 int (*check)(struct perf_evlist *evlist);
1179};
1180
1181static struct evlist_test test__events[] = {
1181 [0] = {
1182 {
1182 .name = "syscalls:sys_enter_open",
1183 .check = test__checkevent_tracepoint,
1183 .name = "syscalls:sys_enter_open",
1184 .check = test__checkevent_tracepoint,
1185 .id = 0,
1184 },
1186 },
1185 [1] = {
1187 {
1186 .name = "syscalls:*",
1187 .check = test__checkevent_tracepoint_multi,
1188 .name = "syscalls:*",
1189 .check = test__checkevent_tracepoint_multi,
1190 .id = 1,
1188 },
1191 },
1189 [2] = {
1192 {
1190 .name = "r1a",
1191 .check = test__checkevent_raw,
1193 .name = "r1a",
1194 .check = test__checkevent_raw,
1195 .id = 2,
1192 },
1196 },
1193 [3] = {
1197 {
1194 .name = "1:1",
1195 .check = test__checkevent_numeric,
1198 .name = "1:1",
1199 .check = test__checkevent_numeric,
1200 .id = 3,
1196 },
1201 },
1197 [4] = {
1202 {
1198 .name = "instructions",
1199 .check = test__checkevent_symbolic_name,
1203 .name = "instructions",
1204 .check = test__checkevent_symbolic_name,
1205 .id = 4,
1200 },
1206 },
1201 [5] = {
1207 {
1202 .name = "cycles/period=100000,config2/",
1203 .check = test__checkevent_symbolic_name_config,
1208 .name = "cycles/period=100000,config2/",
1209 .check = test__checkevent_symbolic_name_config,
1210 .id = 5,
1204 },
1211 },
1205 [6] = {
1212 {
1206 .name = "faults",
1207 .check = test__checkevent_symbolic_alias,
1213 .name = "faults",
1214 .check = test__checkevent_symbolic_alias,
1215 .id = 6,
1208 },
1216 },
1209 [7] = {
1217 {
1210 .name = "L1-dcache-load-miss",
1211 .check = test__checkevent_genhw,
1218 .name = "L1-dcache-load-miss",
1219 .check = test__checkevent_genhw,
1220 .id = 7,
1212 },
1221 },
1213 [8] = {
1222 {
1214 .name = "mem:0",
1215 .check = test__checkevent_breakpoint,
1223 .name = "mem:0",
1224 .check = test__checkevent_breakpoint,
1225 .id = 8,
1216 },
1226 },
1217 [9] = {
1227 {
1218 .name = "mem:0:x",
1219 .check = test__checkevent_breakpoint_x,
1228 .name = "mem:0:x",
1229 .check = test__checkevent_breakpoint_x,
1230 .id = 9,
1220 },
1231 },
1221 [10] = {
1232 {
1222 .name = "mem:0:r",
1223 .check = test__checkevent_breakpoint_r,
1233 .name = "mem:0:r",
1234 .check = test__checkevent_breakpoint_r,
1235 .id = 10,
1224 },
1236 },
1225 [11] = {
1237 {
1226 .name = "mem:0:w",
1227 .check = test__checkevent_breakpoint_w,
1238 .name = "mem:0:w",
1239 .check = test__checkevent_breakpoint_w,
1240 .id = 11,
1228 },
1241 },
1229 [12] = {
1242 {
1230 .name = "syscalls:sys_enter_open:k",
1231 .check = test__checkevent_tracepoint_modifier,
1243 .name = "syscalls:sys_enter_open:k",
1244 .check = test__checkevent_tracepoint_modifier,
1245 .id = 12,
1232 },
1246 },
1233 [13] = {
1247 {
1234 .name = "syscalls:*:u",
1235 .check = test__checkevent_tracepoint_multi_modifier,
1248 .name = "syscalls:*:u",
1249 .check = test__checkevent_tracepoint_multi_modifier,
1250 .id = 13,
1236 },
1251 },
1237 [14] = {
1252 {
1238 .name = "r1a:kp",
1239 .check = test__checkevent_raw_modifier,
1253 .name = "r1a:kp",
1254 .check = test__checkevent_raw_modifier,
1255 .id = 14,
1240 },
1256 },
1241 [15] = {
1257 {
1242 .name = "1:1:hp",
1243 .check = test__checkevent_numeric_modifier,
1258 .name = "1:1:hp",
1259 .check = test__checkevent_numeric_modifier,
1260 .id = 15,
1244 },
1261 },
1245 [16] = {
1262 {
1246 .name = "instructions:h",
1247 .check = test__checkevent_symbolic_name_modifier,
1263 .name = "instructions:h",
1264 .check = test__checkevent_symbolic_name_modifier,
1265 .id = 16,
1248 },
1266 },
1249 [17] = {
1267 {
1250 .name = "faults:u",
1251 .check = test__checkevent_symbolic_alias_modifier,
1268 .name = "faults:u",
1269 .check = test__checkevent_symbolic_alias_modifier,
1270 .id = 17,
1252 },
1271 },
1253 [18] = {
1272 {
1254 .name = "L1-dcache-load-miss:kp",
1255 .check = test__checkevent_genhw_modifier,
1273 .name = "L1-dcache-load-miss:kp",
1274 .check = test__checkevent_genhw_modifier,
1275 .id = 18,
1256 },
1276 },
1257 [19] = {
1277 {
1258 .name = "mem:0:u",
1259 .check = test__checkevent_breakpoint_modifier,
1278 .name = "mem:0:u",
1279 .check = test__checkevent_breakpoint_modifier,
1280 .id = 19,
1260 },
1281 },
1261 [20] = {
1282 {
1262 .name = "mem:0:x:k",
1263 .check = test__checkevent_breakpoint_x_modifier,
1283 .name = "mem:0:x:k",
1284 .check = test__checkevent_breakpoint_x_modifier,
1285 .id = 20,
1264 },
1286 },
1265 [21] = {
1287 {
1266 .name = "mem:0:r:hp",
1267 .check = test__checkevent_breakpoint_r_modifier,
1288 .name = "mem:0:r:hp",
1289 .check = test__checkevent_breakpoint_r_modifier,
1290 .id = 21,
1268 },
1291 },
1269 [22] = {
1292 {
1270 .name = "mem:0:w:up",
1271 .check = test__checkevent_breakpoint_w_modifier,
1293 .name = "mem:0:w:up",
1294 .check = test__checkevent_breakpoint_w_modifier,
1295 .id = 22,
1272 },
1296 },
1273 [23] = {
1297 {
1274 .name = "r1,syscalls:sys_enter_open:k,1:1:hp",
1275 .check = test__checkevent_list,
1298 .name = "r1,syscalls:sys_enter_open:k,1:1:hp",
1299 .check = test__checkevent_list,
1300 .id = 23,
1276 },
1301 },
1277 [24] = {
1302 {
1278 .name = "instructions:G",
1279 .check = test__checkevent_exclude_host_modifier,
1303 .name = "instructions:G",
1304 .check = test__checkevent_exclude_host_modifier,
1305 .id = 24,
1280 },
1306 },
1281 [25] = {
1307 {
1282 .name = "instructions:H",
1283 .check = test__checkevent_exclude_guest_modifier,
1308 .name = "instructions:H",
1309 .check = test__checkevent_exclude_guest_modifier,
1310 .id = 25,
1284 },
1311 },
1285 [26] = {
1312 {
1286 .name = "mem:0:rw",
1287 .check = test__checkevent_breakpoint_rw,
1313 .name = "mem:0:rw",
1314 .check = test__checkevent_breakpoint_rw,
1315 .id = 26,
1288 },
1316 },
1289 [27] = {
1317 {
1290 .name = "mem:0:rw:kp",
1291 .check = test__checkevent_breakpoint_rw_modifier,
1318 .name = "mem:0:rw:kp",
1319 .check = test__checkevent_breakpoint_rw_modifier,
1320 .id = 27,
1292 },
1321 },
1293 [28] = {
1322 {
1294 .name = "{instructions:k,cycles:upp}",
1295 .check = test__group1,
1323 .name = "{instructions:k,cycles:upp}",
1324 .check = test__group1,
1325 .id = 28,
1296 },
1326 },
1297 [29] = {
1327 {
1298 .name = "{faults:k,cache-references}:u,cycles:k",
1299 .check = test__group2,
1328 .name = "{faults:k,cache-references}:u,cycles:k",
1329 .check = test__group2,
1330 .id = 29,
1300 },
1331 },
1301 [30] = {
1332 {
1302 .name = "group1{syscalls:sys_enter_open:H,cycles:kppp},group2{cycles,1:3}:G,instructions:u",
1303 .check = test__group3,
1333 .name = "group1{syscalls:sys_enter_open:H,cycles:kppp},group2{cycles,1:3}:G,instructions:u",
1334 .check = test__group3,
1335 .id = 30,
1304 },
1336 },
1305 [31] = {
1337 {
1306 .name = "{cycles:u,instructions:kp}:p",
1307 .check = test__group4,
1338 .name = "{cycles:u,instructions:kp}:p",
1339 .check = test__group4,
1340 .id = 31,
1308 },
1341 },
1309 [32] = {
1342 {
1310 .name = "{cycles,instructions}:G,{cycles:G,instructions:G},cycles",
1311 .check = test__group5,
1343 .name = "{cycles,instructions}:G,{cycles:G,instructions:G},cycles",
1344 .check = test__group5,
1345 .id = 32,
1312 },
1346 },
1313 [33] = {
1347 {
1314 .name = "*:*",
1315 .check = test__all_tracepoints,
1348 .name = "*:*",
1349 .check = test__all_tracepoints,
1350 .id = 33,
1316 },
1351 },
1317 [34] = {
1352 {
1318 .name = "{cycles,cache-misses:G}:H",
1319 .check = test__group_gh1,
1353 .name = "{cycles,cache-misses:G}:H",
1354 .check = test__group_gh1,
1355 .id = 34,
1320 },
1356 },
1321 [35] = {
1357 {
1322 .name = "{cycles,cache-misses:H}:G",
1323 .check = test__group_gh2,
1358 .name = "{cycles,cache-misses:H}:G",
1359 .check = test__group_gh2,
1360 .id = 35,
1324 },
1361 },
1325 [36] = {
1362 {
1326 .name = "{cycles:G,cache-misses:H}:u",
1327 .check = test__group_gh3,
1363 .name = "{cycles:G,cache-misses:H}:u",
1364 .check = test__group_gh3,
1365 .id = 36,
1328 },
1366 },
1329 [37] = {
1367 {
1330 .name = "{cycles:G,cache-misses:H}:uG",
1331 .check = test__group_gh4,
1368 .name = "{cycles:G,cache-misses:H}:uG",
1369 .check = test__group_gh4,
1370 .id = 37,
1332 },
1371 },
1333 [38] = {
1372 {
1334 .name = "{cycles,cache-misses,branch-misses}:S",
1335 .check = test__leader_sample1,
1373 .name = "{cycles,cache-misses,branch-misses}:S",
1374 .check = test__leader_sample1,
1375 .id = 38,
1336 },
1376 },
1337 [39] = {
1377 {
1338 .name = "{instructions,branch-misses}:Su",
1339 .check = test__leader_sample2,
1378 .name = "{instructions,branch-misses}:Su",
1379 .check = test__leader_sample2,
1380 .id = 39,
1340 },
1381 },
1341 [40] = {
1382 {
1342 .name = "instructions:uDp",
1343 .check = test__checkevent_pinned_modifier,
1383 .name = "instructions:uDp",
1384 .check = test__checkevent_pinned_modifier,
1385 .id = 40,
1344 },
1386 },
1345 [41] = {
1387 {
1346 .name = "{cycles,cache-misses,branch-misses}:D",
1347 .check = test__pinned_group,
1388 .name = "{cycles,cache-misses,branch-misses}:D",
1389 .check = test__pinned_group,
1390 .id = 41,
1348 },
1349};
1350
1351static struct evlist_test test__events_pmu[] = {
1391 },
1392};
1393
1394static struct evlist_test test__events_pmu[] = {
1352 [0] = {
1395 {
1353 .name = "cpu/config=10,config1,config2=3,period=1000/u",
1354 .check = test__checkevent_pmu,
1396 .name = "cpu/config=10,config1,config2=3,period=1000/u",
1397 .check = test__checkevent_pmu,
1398 .id = 0,
1355 },
1399 },
1356 [1] = {
1400 {
1357 .name = "cpu/config=1,name=krava/u,cpu/config=2/u",
1358 .check = test__checkevent_pmu_name,
1401 .name = "cpu/config=1,name=krava/u,cpu/config=2/u",
1402 .check = test__checkevent_pmu_name,
1403 .id = 1,
1359 },
1360};
1361
1362struct terms_test {
1363 const char *str;
1364 __u32 type;
1365 int (*check)(struct list_head *terms);
1366};

--- 30 unchanged lines hidden (view full) ---

1397static int test_events(struct evlist_test *events, unsigned cnt)
1398{
1399 int ret1, ret2 = 0;
1400 unsigned i;
1401
1402 for (i = 0; i < cnt; i++) {
1403 struct evlist_test *e = &events[i];
1404
1404 },
1405};
1406
1407struct terms_test {
1408 const char *str;
1409 __u32 type;
1410 int (*check)(struct list_head *terms);
1411};

--- 30 unchanged lines hidden (view full) ---

1442static int test_events(struct evlist_test *events, unsigned cnt)
1443{
1444 int ret1, ret2 = 0;
1445 unsigned i;
1446
1447 for (i = 0; i < cnt; i++) {
1448 struct evlist_test *e = &events[i];
1449
1405 pr_debug("running test %d '%s'\n", i, e->name);
1450 pr_debug("running test %d '%s'\n", e->id, e->name);
1406 ret1 = test_event(e);
1407 if (ret1)
1408 ret2 = ret1;
1409 }
1410
1411 return ret2;
1412}
1413

--- 125 unchanged lines hidden ---
1451 ret1 = test_event(e);
1452 if (ret1)
1453 ret2 = ret1;
1454 }
1455
1456 return ret2;
1457}
1458

--- 125 unchanged lines hidden ---