linux/tools/perf/tests
Andi Kleen 075167363f perf tools: Add a simple expression parser for JSON
Add a simple expression parser good enough to parse JSON relation
expressions. The parser is implemented using bison.

This is just intended as an simple parser for internal usage in the
event lists, not the beginning of a "perf scripting language"

v2: Use expr__ prefix instead of expr_
    Support multiple free variables for parser

Committer note:

The v2 patch had:

  %define api.pure full

In expr.y, that is a feature introduced in bison 2.7, to have reentrant
parsers, not using global variables, which would make tools/perf stop
building with the bison version shipped in older distros, so Andi
realised that the other parsers (e.g. parse-events.y) were using:

  %pure-parser

Which is present in older versions of bison and fits the bill.

I added:

  CFLAGS_expr-bison.o += -DYYENABLE_NLS=0 -DYYLTYPE_IS_TRIVIAL=0 -w

To finally make it build, copying what was there for pmu-bison.o,
another parser.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: http://lkml.kernel.org/r/20170320201711.14142-8-andi@firstfloor.org
[ stdlib.h is needed in tests/expr.c for free() fixing build in systems such as ubuntu:16.04-x-s390 ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2017-03-23 11:39:27 -03:00
..
attr perf tests: Fix attr tests 2015-04-08 10:49:53 -03:00
.gitignore perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
Build perf tools: Add a simple expression parser for JSON 2017-03-23 11:39:27 -03:00
attr.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00
attr.py perf tools: Remove EOL whitespaces 2015-01-21 13:24:31 -03:00
backward-ring-buffer.c perf tools: Fix typo "No enough" to "Not enough" 2016-10-24 11:07:42 -03:00
bitmap.c perf tests: Add test for bitmap_scnprintf function 2016-08-02 16:33:27 -03:00
bp_signal.c perf tests: Fix build on older systems where 'signal' is reserved 2016-02-15 17:33:26 -03:00
bp_signal_overflow.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
bpf-script-example.c perf tests bpf: Use SyS_epoll_wait alias 2016-08-03 19:40:48 -03:00
bpf-script-test-kbuild.c perf test: Enhance the LLVM tests: add kbuild test 2015-11-06 17:49:50 -03:00
bpf-script-test-prologue.c perf test: Test the BPF prologue adding infrastructure 2015-11-18 17:51:04 -03:00
bpf-script-test-relocation.c perf test: Add libbpf relocation checker 2016-01-26 12:10:55 -03:00
bpf.c perf test: Add libbpf pinning test 2017-01-31 16:20:08 -03:00
builtin-test.c perf tools: Add a simple expression parser for JSON 2017-03-23 11:39:27 -03:00
clang.c perf clang: Support compile IR to BPF object and add testcase 2016-12-05 15:51:44 -03:00
code-reading.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00
cpumap.c perf cpumap: Convert cpu_map.refcnt from atomic_t to refcount_t 2017-03-03 19:07:14 -03:00
dso-data.c perf tools: Allow to reset open files counter 2016-06-30 18:27:44 -03:00
dwarf-unwind.c perf tests: Add dwarf unwind test for powerpc 2016-09-29 11:18:21 -03:00
event-times.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
event_update.c perf tests: Replace assignment with comparison on assert check 2016-04-25 20:24:26 -03:00
evsel-roundtrip-name.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
evsel-tp-sched.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
expr.c perf tools: Add a simple expression parser for JSON 2017-03-23 11:39:27 -03:00
fdarray.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00
hists_common.c perf hists: Move sort__need_collapse into struct perf_hpp_list 2016-05-05 21:03:58 -03:00
hists_common.h perf tests: Define and use symbolic names for fake symbols 2014-06-01 14:35:11 +02:00
hists_cumulate.c perf tests: Fix hist accumulation test 2016-07-04 19:39:01 -03:00
hists_filter.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
hists_link.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
hists_output.c perf hists: Move sort__need_collapse into struct perf_hpp_list 2016-05-05 21:03:58 -03:00
is_printable_array.c perf tests: Add is_printable_array test 2016-07-18 19:50:35 -03:00
keep-tracking.c perf evsel: Do not use globals in config() 2016-04-11 22:18:20 -03:00
kmod-path.c perf tests kmod-path: Fix build on ubuntu:16.04-x-armhf 2016-07-22 16:25:44 -03:00
llvm.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00
llvm.h perf clang: Update test case to use real BPF script 2016-12-05 15:51:44 -03:00
make Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-12-17 16:24:13 -08:00
mmap-basic.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
mmap-thread-lookup.c perf test: Use machine__new_host in mmap thread lookup test 2015-12-07 18:12:54 -03:00
openat-syscall-all-cpus.c perf tests: Add missing pthread.h include for CPU_*() macros 2016-07-12 15:19:53 -03:00
openat-syscall-tp-fields.c perf tests openat-syscall-tp-fields: Add some conditional defines 2016-07-12 15:19:54 -03:00
openat-syscall.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
parse-events.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00
parse-no-sample-id-all.c perf tests: Synthesize struct instead of using field after variable sized type 2017-02-14 15:19:18 -03:00
perf-hooks.c perf tools: Pass context to perf hook functions 2016-12-05 15:51:42 -03:00
perf-record.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00
perf-targz-src-pkg perf tests: Fix tarpkg build test error output redirection 2016-03-24 12:26:41 -03:00
pmu.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
python-use.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00
sample-parsing.c perf tests: Pass the subtest index to each test routine 2015-11-19 13:19:15 -03:00
sdt.c perf test: Add a test case for SDT event 2016-07-13 23:09:10 -03:00
stat.c perf tools: Add stat round event synthesize function 2015-12-17 14:55:44 -03:00
sw-clock.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
switch-tracking.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
task-exit.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
tests.h perf tools: Add a simple expression parser for JSON 2017-03-23 11:39:27 -03:00
thread-map.c perf thread_map: Convert thread_map.refcnt from atomic_t to refcount_t 2017-03-03 19:07:16 -03:00
thread-mg-share.c perf map: Convert map_groups.refcnt from atomic_t to refcount_t 2017-03-03 19:07:15 -03:00
topology.c perf tools: Replace _SC_NPROCESSORS_CONF with max_present_cpu in cpu_topology_map 2017-02-17 12:56:35 -03:00
unit_number__scnprintf.c perf tools: Add unit_number__scnprintf function 2017-01-11 16:48:01 -03:00
vmlinux-kallsyms.c perf utils: Check verbose flag properly 2017-02-20 11:35:54 -03:00