The struct perf_event_attr test (attr tests) support
====================================================
This testing support is embedded into perf directly and is governed
by the PERF_TEST_ATTR environment variable and hook inside the
sys_perf_event_open function.

The general idea is to store 'struct perf_event_attr' details for
each event created within single perf command. Each event details
are stored into separate text file. Once perf command is finished
these files are checked for values we expect for command.

The attr tests consist of following parts:

tests/attr.c
------------
This is the sys_perf_event_open hook implementation. The hook
is triggered when the PERF_TEST_ATTR environment variable is
defined. It must contain name of existing directory with access
and write permissions.

For each sys_perf_event_open call event details are stored in
separate file. Besides 'struct perf_event_attr' values we also
store 'fd' and 'group_fd' values to allow checking for groups.

tests/attr.py
-------------
This is the python script that does all the hard work. It reads
the test definition, executes it and checks results.

tests/attr/
-----------
Directory containing all attr test definitions.
Following tests are defined (with perf commands):

  perf record kill                              (test-record-basic)
  perf record -b kill                           (test-record-branch-any)
  perf record -j any kill                       (test-record-branch-filter-any)
  perf record -j any_call kill                  (test-record-branch-filter-any_call)
  perf record -j any_ret kill                   (test-record-branch-filter-any_ret)
  perf record -j hv kill                        (test-record-branch-filter-hv)
  perf record -j ind_call kill                  (test-record-branch-filter-ind_call)
  perf record -j k kill                         (test-record-branch-filter-k)
  perf record -j u kill                         (test-record-branch-filter-u)
  perf record -c 123 kill                       (test-record-count)
  perf record -d kill                           (test-record-data)
  perf record -F 100 kill                       (test-record-freq)
  perf record -g kill                           (test-record-graph-default)
  perf record --call-graph dwarf kill		(test-record-graph-dwarf)
  perf record --call-graph fp kill              (test-record-graph-fp)
  perf record --group -e cycles,instructions kill (test-record-group)
  perf record -e '{cycles,instructions}' kill   (test-record-group1)
  perf record -e '{cycles/period=1/,instructions/period=2/}:S' kill (test-record-group2)
  perf record -D kill                           (test-record-no-delay)
  perf record -i kill                           (test-record-no-inherit)
  perf record -n kill                           (test-record-no-samples)
  perf record -c 100 -P kill                    (test-record-period)
  perf record -c 1 --pfm-events=cycles:period=2 (test-record-pfm-period)
  perf record -R kill                           (test-record-raw)
  perf stat -e cycles kill                      (test-stat-basic)
  perf stat kill                                (test-stat-default)
  perf stat -d kill                             (test-stat-detailed-1)
  perf stat -dd kill                            (test-stat-detailed-2)
  perf stat -ddd kill                           (test-stat-detailed-3)
  perf stat --group -e cycles,instructions kill (test-stat-group)
  perf stat -e '{cycles,instructions}' kill     (test-stat-group1)
  perf stat -i -e cycles kill                   (test-stat-no-inherit)
