0001
0002
0003
0004
0005
0006 #include <stdio.h>
0007 #include <stdlib.h>
0008
0009 #include "ebb.h"
0010
0011
0012
0013
0014
0015 int event_attributes(void)
0016 {
0017 struct event event, leader;
0018
0019 SKIP_IF(!ebb_is_supported());
0020
0021 event_init(&event, 0x1001e);
0022 event_leader_ebb_init(&event);
0023
0024 FAIL_IF(event_open(&event));
0025 event_close(&event);
0026
0027
0028 event_init(&event, 0x001e);
0029 event_leader_ebb_init(&event);
0030
0031 FAIL_IF(event_open(&event) == 0);
0032
0033
0034 event_init(&event, 0x2001e);
0035 event_leader_ebb_init(&event);
0036 event.attr.exclusive = 0;
0037
0038 FAIL_IF(event_open(&event) == 0);
0039
0040
0041 event_init(&event, 0x3001e);
0042 event_leader_ebb_init(&event);
0043 event.attr.freq = 1;
0044
0045 FAIL_IF(event_open(&event) == 0);
0046
0047
0048 event_init(&event, 0x4001e);
0049 event_leader_ebb_init(&event);
0050 event.attr.sample_period = 1;
0051
0052 FAIL_IF(event_open(&event) == 0);
0053
0054
0055 event_init(&event, 0x1001e);
0056 event_leader_ebb_init(&event);
0057 event.attr.enable_on_exec = 1;
0058
0059 FAIL_IF(event_open(&event) == 0);
0060
0061
0062 event_init(&event, 0x1001e);
0063 event_leader_ebb_init(&event);
0064 event.attr.inherit = 1;
0065
0066 FAIL_IF(event_open(&event) == 0);
0067
0068
0069 event_init(&leader, 0x1001e);
0070 event_leader_ebb_init(&leader);
0071 FAIL_IF(event_open(&leader));
0072
0073 event_init(&event, 0x20002);
0074 event_ebb_init(&event);
0075
0076
0077 FAIL_IF(event_open_with_group(&event, leader.fd));
0078 event_close(&leader);
0079 event_close(&event);
0080
0081
0082 event_init(&leader, 0x1001e);
0083 event_leader_ebb_init(&leader);
0084 FAIL_IF(event_open(&leader));
0085
0086 event_init(&event, 0x20002);
0087
0088
0089 FAIL_IF(event_open_with_group(&event, leader.fd) == 0);
0090 event_close(&leader);
0091
0092
0093 event_init(&leader, 0x1001e);
0094 event_leader_ebb_init(&leader);
0095
0096 leader.attr.config &= ~(1ull << 63);
0097
0098 FAIL_IF(event_open(&leader));
0099
0100 event_init(&event, 0x20002);
0101 event_ebb_init(&event);
0102
0103
0104 FAIL_IF(event_open_with_group(&event, leader.fd) == 0);
0105 event_close(&leader);
0106
0107
0108 event_init(&leader, 0x1001e);
0109 event_leader_ebb_init(&leader);
0110 leader.attr.exclusive = 0;
0111
0112 FAIL_IF(event_open(&leader) == 0);
0113
0114
0115 event_init(&leader, 0x1001e);
0116 event_leader_ebb_init(&leader);
0117 leader.attr.pinned = 0;
0118
0119 FAIL_IF(event_open(&leader) == 0);
0120
0121 event_init(&event, 0x1001e);
0122 event_leader_ebb_init(&event);
0123
0124 SKIP_IF(require_paranoia_below(1));
0125 FAIL_IF(event_open_with_cpu(&event, 0) == 0);
0126
0127 return 0;
0128 }
0129
0130 int main(void)
0131 {
0132 return test_harness(event_attributes, "event_attributes");
0133 }