1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright 2022, Athira Rajeev, IBM Corp.
8 #include "../sampling_tests/misc.h"
10 /* The processor's L1 data cache was reloaded */
11 #define EventCode1 0x21C040
12 #define EventCode2 0x22C040
15 * Testcase for group constraint check
16 * when using events with same PMC.
17 * Multiple events in a group shouldn't
18 * ask for same PMC. If so it should fail.
21 static int group_constraint_repeat(void)
23 struct event event, leader;
25 /* Check for platform support for the test */
26 SKIP_IF(platform_check_for_tests());
29 * Two events in a group using same PMC
30 * should fail to get scheduled. Usei same PMC2
31 * for leader and sibling event which is expected
34 event_init(&leader, EventCode1);
35 FAIL_IF(event_open(&leader));
37 event_init(&event, EventCode1);
39 /* Expected to fail since sibling event is requesting same PMC as leader */
40 FAIL_IF(!event_open_with_group(&event, leader.fd));
42 event_init(&event, EventCode2);
44 /* Expected to pass since sibling event is requesting different PMC */
45 FAIL_IF(event_open_with_group(&event, leader.fd));
55 return test_harness(group_constraint_repeat, "group_constraint_repeat");