parse-events.c (5a9821321e0a61674fd5c4b5a9e95007d0e7e052) parse-events.c (a9f93f97424c64f8d5d94b653a2133e491498680)
1
2#include "parse-events.h"
3#include "evsel.h"
4#include "evlist.h"
5#include "sysfs.h"
6#include <lk/debugfs.h>
7#include "tests.h"
8#include <linux/hw_breakpoint.h>

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

515 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
516 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
517 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
518 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
519 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
520 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
521 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
522 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
1
2#include "parse-events.h"
3#include "evsel.h"
4#include "evlist.h"
5#include "sysfs.h"
6#include <lk/debugfs.h>
7#include "tests.h"
8#include <linux/hw_breakpoint.h>

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

515 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
516 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
517 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
518 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
519 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
520 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
521 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
522 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
523 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
523
524 /* cycles:upp */
525 evsel = perf_evsel__next(evsel);
526 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
527 TEST_ASSERT_VAL("wrong config",
528 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
529 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
530 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
531 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
532 /* use of precise requires exclude_guest */
533 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
534 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
535 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 2);
536 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
537 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
524
525 /* cycles:upp */
526 evsel = perf_evsel__next(evsel);
527 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
528 TEST_ASSERT_VAL("wrong config",
529 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
530 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
531 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
532 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
533 /* use of precise requires exclude_guest */
534 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
535 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
536 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 2);
537 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
538 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
539 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
538
539 return 0;
540}
541
542static int test__group2(struct perf_evlist *evlist)
543{
544 struct perf_evsel *evsel, *leader;
545

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

555 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
556 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
557 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
558 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
559 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
560 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
561 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
562 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
540
541 return 0;
542}
543
544static int test__group2(struct perf_evlist *evlist)
545{
546 struct perf_evsel *evsel, *leader;
547

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

557 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
558 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
559 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
560 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
561 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
562 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
563 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
564 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
565 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
563
564 /* cache-references + :u modifier */
565 evsel = perf_evsel__next(evsel);
566 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
567 TEST_ASSERT_VAL("wrong config",
568 PERF_COUNT_HW_CACHE_REFERENCES == evsel->attr.config);
569 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
570 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
571 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
572 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
573 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
574 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
575 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
576 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
566
567 /* cache-references + :u modifier */
568 evsel = perf_evsel__next(evsel);
569 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
570 TEST_ASSERT_VAL("wrong config",
571 PERF_COUNT_HW_CACHE_REFERENCES == evsel->attr.config);
572 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
573 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
574 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
575 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
576 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
577 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
578 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
579 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
580 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
577
578 /* cycles:k */
579 evsel = perf_evsel__next(evsel);
580 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
581 TEST_ASSERT_VAL("wrong config",
582 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
583 TEST_ASSERT_VAL("wrong exclude_user", evsel->attr.exclude_user);
584 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
585 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
586 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
587 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
588 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
589 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
581
582 /* cycles:k */
583 evsel = perf_evsel__next(evsel);
584 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
585 TEST_ASSERT_VAL("wrong config",
586 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
587 TEST_ASSERT_VAL("wrong exclude_user", evsel->attr.exclude_user);
588 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
589 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
590 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
591 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
592 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
593 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
594 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
590
591 return 0;
592}
593
594static int test__group3(struct perf_evlist *evlist __maybe_unused)
595{
596 struct perf_evsel *evsel, *leader;
597

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

610 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
611 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
612 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
613 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
614 TEST_ASSERT_VAL("wrong group name",
615 !strcmp(leader->group_name, "group1"));
616 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
617 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
595
596 return 0;
597}
598
599static int test__group3(struct perf_evlist *evlist __maybe_unused)
600{
601 struct perf_evsel *evsel, *leader;
602

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

615 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
616 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
617 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
618 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
619 TEST_ASSERT_VAL("wrong group name",
620 !strcmp(leader->group_name, "group1"));
621 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
622 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
623 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
618
619 /* group1 cycles:kppp */
620 evsel = perf_evsel__next(evsel);
621 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
622 TEST_ASSERT_VAL("wrong config",
623 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
624 TEST_ASSERT_VAL("wrong exclude_user", evsel->attr.exclude_user);
625 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
626 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
627 /* use of precise requires exclude_guest */
628 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
629 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
630 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 3);
631 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
632 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
633 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
624
625 /* group1 cycles:kppp */
626 evsel = perf_evsel__next(evsel);
627 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
628 TEST_ASSERT_VAL("wrong config",
629 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
630 TEST_ASSERT_VAL("wrong exclude_user", evsel->attr.exclude_user);
631 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
632 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
633 /* use of precise requires exclude_guest */
634 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
635 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
636 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 3);
637 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
638 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
639 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
640 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
634
635 /* group2 cycles + G modifier */
636 evsel = leader = perf_evsel__next(evsel);
637 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
638 TEST_ASSERT_VAL("wrong config",
639 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
640 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
641 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
642 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
643 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
644 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
645 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
646 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
647 TEST_ASSERT_VAL("wrong group name",
648 !strcmp(leader->group_name, "group2"));
649 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
650 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
641
642 /* group2 cycles + G modifier */
643 evsel = leader = perf_evsel__next(evsel);
644 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
645 TEST_ASSERT_VAL("wrong config",
646 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
647 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
648 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
649 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
650 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
651 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
652 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
653 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
654 TEST_ASSERT_VAL("wrong group name",
655 !strcmp(leader->group_name, "group2"));
656 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
657 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
658 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
651
652 /* group2 1:3 + G modifier */
653 evsel = perf_evsel__next(evsel);
654 TEST_ASSERT_VAL("wrong type", 1 == evsel->attr.type);
655 TEST_ASSERT_VAL("wrong config", 3 == evsel->attr.config);
656 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
657 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
658 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
659 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
660 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
661 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
662 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
663 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
659
660 /* group2 1:3 + G modifier */
661 evsel = perf_evsel__next(evsel);
662 TEST_ASSERT_VAL("wrong type", 1 == evsel->attr.type);
663 TEST_ASSERT_VAL("wrong config", 3 == evsel->attr.config);
664 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
665 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
666 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
667 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
668 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
669 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
670 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
671 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
672 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
664
665 /* instructions:u */
666 evsel = perf_evsel__next(evsel);
667 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
668 TEST_ASSERT_VAL("wrong config",
669 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
670 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
671 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
672 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
673 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
674 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
675 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
676 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
673
674 /* instructions:u */
675 evsel = perf_evsel__next(evsel);
676 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
677 TEST_ASSERT_VAL("wrong config",
678 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
679 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
680 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
681 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
682 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
683 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
684 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
685 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
686 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
677
678 return 0;
679}
680
681static int test__group4(struct perf_evlist *evlist __maybe_unused)
682{
683 struct perf_evsel *evsel, *leader;
684

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

696 /* use of precise requires exclude_guest */
697 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
698 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
699 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 1);
700 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
701 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
702 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
703 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
687
688 return 0;
689}
690
691static int test__group4(struct perf_evlist *evlist __maybe_unused)
692{
693 struct perf_evsel *evsel, *leader;
694

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

706 /* use of precise requires exclude_guest */
707 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
708 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
709 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 1);
710 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
711 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
712 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
713 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
714 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
704
705 /* instructions:kp + p */
706 evsel = perf_evsel__next(evsel);
707 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
708 TEST_ASSERT_VAL("wrong config",
709 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
710 TEST_ASSERT_VAL("wrong exclude_user", evsel->attr.exclude_user);
711 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
712 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
713 /* use of precise requires exclude_guest */
714 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
715 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
716 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 2);
717 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
718 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
715
716 /* instructions:kp + p */
717 evsel = perf_evsel__next(evsel);
718 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
719 TEST_ASSERT_VAL("wrong config",
720 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
721 TEST_ASSERT_VAL("wrong exclude_user", evsel->attr.exclude_user);
722 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
723 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
724 /* use of precise requires exclude_guest */
725 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
726 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
727 TEST_ASSERT_VAL("wrong precise_ip", evsel->attr.precise_ip == 2);
728 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
729 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
730 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
719
720 return 0;
721}
722
723static int test__group5(struct perf_evlist *evlist __maybe_unused)
724{
725 struct perf_evsel *evsel, *leader;
726

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

737 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
738 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
739 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
740 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
741 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
742 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
743 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
744 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
731
732 return 0;
733}
734
735static int test__group5(struct perf_evlist *evlist __maybe_unused)
736{
737 struct perf_evsel *evsel, *leader;
738

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

749 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
750 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
751 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
752 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
753 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
754 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
755 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
756 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
757 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
745
746 /* instructions + G */
747 evsel = perf_evsel__next(evsel);
748 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
749 TEST_ASSERT_VAL("wrong config",
750 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
751 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
752 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
753 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
754 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
755 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
756 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
757 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
758 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
758
759 /* instructions + G */
760 evsel = perf_evsel__next(evsel);
761 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
762 TEST_ASSERT_VAL("wrong config",
763 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
764 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
765 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
766 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
767 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
768 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
769 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
770 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
771 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
772 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
759
760 /* cycles:G */
761 evsel = leader = perf_evsel__next(evsel);
762 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
763 TEST_ASSERT_VAL("wrong config",
764 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
765 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
766 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
767 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
768 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
769 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
770 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
771 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
772 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
773 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
774 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
773
774 /* cycles:G */
775 evsel = leader = perf_evsel__next(evsel);
776 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
777 TEST_ASSERT_VAL("wrong config",
778 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
779 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
780 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
781 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
782 TEST_ASSERT_VAL("wrong exclude guest", !evsel->attr.exclude_guest);
783 TEST_ASSERT_VAL("wrong exclude host", evsel->attr.exclude_host);
784 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
785 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
786 TEST_ASSERT_VAL("wrong leader", perf_evsel__is_group_leader(evsel));
787 TEST_ASSERT_VAL("wrong nr_members", evsel->nr_members == 2);
788 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 0);
789 TEST_ASSERT_VAL("wrong sample_read", !evsel->sample_read);
775
776 /* instructions:G */
777 evsel = perf_evsel__next(evsel);
778 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
779 TEST_ASSERT_VAL("wrong config",
780 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
781 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
782 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);

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

958 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
959 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
960 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
961 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
962
963 return 0;
964}
965
790
791 /* instructions:G */
792 evsel = perf_evsel__next(evsel);
793 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
794 TEST_ASSERT_VAL("wrong config",
795 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
796 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
797 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);

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

973 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
974 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
975 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
976 TEST_ASSERT_VAL("wrong group_idx", perf_evsel__group_idx(evsel) == 1);
977
978 return 0;
979}
980
981static int test__leader_sample1(struct perf_evlist *evlist)
982{
983 struct perf_evsel *evsel, *leader;
984
985 TEST_ASSERT_VAL("wrong number of entries", 3 == evlist->nr_entries);
986
987 /* cycles - sampling group leader */
988 evsel = leader = perf_evlist__first(evlist);
989 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
990 TEST_ASSERT_VAL("wrong config",
991 PERF_COUNT_HW_CPU_CYCLES == evsel->attr.config);
992 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
993 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
994 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
995 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
996 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
997 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
998 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
999 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
1000 TEST_ASSERT_VAL("wrong sample_read", evsel->sample_read);
1001
1002 /* cache-misses - not sampling */
1003 evsel = perf_evsel__next(evsel);
1004 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
1005 TEST_ASSERT_VAL("wrong config",
1006 PERF_COUNT_HW_CACHE_MISSES == evsel->attr.config);
1007 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
1008 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
1009 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
1010 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
1011 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
1012 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
1013 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
1014 TEST_ASSERT_VAL("wrong sample_read", evsel->sample_read);
1015
1016 /* branch-misses - not sampling */
1017 evsel = perf_evsel__next(evsel);
1018 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
1019 TEST_ASSERT_VAL("wrong config",
1020 PERF_COUNT_HW_BRANCH_MISSES == evsel->attr.config);
1021 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
1022 TEST_ASSERT_VAL("wrong exclude_kernel", !evsel->attr.exclude_kernel);
1023 TEST_ASSERT_VAL("wrong exclude_hv", !evsel->attr.exclude_hv);
1024 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
1025 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
1026 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
1027 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
1028 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
1029 TEST_ASSERT_VAL("wrong sample_read", evsel->sample_read);
1030
1031 return 0;
1032}
1033
1034static int test__leader_sample2(struct perf_evlist *evlist __maybe_unused)
1035{
1036 struct perf_evsel *evsel, *leader;
1037
1038 TEST_ASSERT_VAL("wrong number of entries", 2 == evlist->nr_entries);
1039
1040 /* instructions - sampling group leader */
1041 evsel = leader = perf_evlist__first(evlist);
1042 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
1043 TEST_ASSERT_VAL("wrong config",
1044 PERF_COUNT_HW_INSTRUCTIONS == evsel->attr.config);
1045 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
1046 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
1047 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
1048 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
1049 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
1050 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
1051 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
1052 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
1053 TEST_ASSERT_VAL("wrong sample_read", evsel->sample_read);
1054
1055 /* branch-misses - not sampling */
1056 evsel = perf_evsel__next(evsel);
1057 TEST_ASSERT_VAL("wrong type", PERF_TYPE_HARDWARE == evsel->attr.type);
1058 TEST_ASSERT_VAL("wrong config",
1059 PERF_COUNT_HW_BRANCH_MISSES == evsel->attr.config);
1060 TEST_ASSERT_VAL("wrong exclude_user", !evsel->attr.exclude_user);
1061 TEST_ASSERT_VAL("wrong exclude_kernel", evsel->attr.exclude_kernel);
1062 TEST_ASSERT_VAL("wrong exclude_hv", evsel->attr.exclude_hv);
1063 TEST_ASSERT_VAL("wrong exclude guest", evsel->attr.exclude_guest);
1064 TEST_ASSERT_VAL("wrong exclude host", !evsel->attr.exclude_host);
1065 TEST_ASSERT_VAL("wrong precise_ip", !evsel->attr.precise_ip);
1066 TEST_ASSERT_VAL("wrong group name", !evsel->group_name);
1067 TEST_ASSERT_VAL("wrong leader", evsel->leader == leader);
1068 TEST_ASSERT_VAL("wrong sample_read", evsel->sample_read);
1069
1070 return 0;
1071}
1072
966static int count_tracepoints(void)
967{
968 char events_path[PATH_MAX];
969 struct dirent *events_ent;
970 DIR *events_dir;
971 int cnt = 0;
972
973 scnprintf(events_path, PATH_MAX, "%s/tracing/events",

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

1174 [36] = {
1175 .name = "{cycles:G,cache-misses:H}:u",
1176 .check = test__group_gh3,
1177 },
1178 [37] = {
1179 .name = "{cycles:G,cache-misses:H}:uG",
1180 .check = test__group_gh4,
1181 },
1073static int count_tracepoints(void)
1074{
1075 char events_path[PATH_MAX];
1076 struct dirent *events_ent;
1077 DIR *events_dir;
1078 int cnt = 0;
1079
1080 scnprintf(events_path, PATH_MAX, "%s/tracing/events",

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

1281 [36] = {
1282 .name = "{cycles:G,cache-misses:H}:u",
1283 .check = test__group_gh3,
1284 },
1285 [37] = {
1286 .name = "{cycles:G,cache-misses:H}:uG",
1287 .check = test__group_gh4,
1288 },
1289 [38] = {
1290 .name = "{cycles,cache-misses,branch-misses}:S",
1291 .check = test__leader_sample1,
1292 },
1293 [39] = {
1294 .name = "{instructions,branch-misses}:Su",
1295 .check = test__leader_sample2,
1296 },
1182};
1183
1184static struct evlist_test test__events_pmu[] = {
1185 [0] = {
1186 .name = "cpu/config=10,config1,config2=3,period=1000/u",
1187 .check = test__checkevent_pmu,
1188 },
1189 [1] = {

--- 182 unchanged lines hidden ---
1297};
1298
1299static struct evlist_test test__events_pmu[] = {
1300 [0] = {
1301 .name = "cpu/config=10,config1,config2=3,period=1000/u",
1302 .check = test__checkevent_pmu,
1303 },
1304 [1] = {

--- 182 unchanged lines hidden ---