Checker: Support IF, ELIF, ELSE, FI
It is now possible to add conditional statements in tests in the
following form:
/// CHECK-IF: condition1
/// CHECK: foobar01
/// CHECK-ELIF: condition2
/// CHECK: foobar02
/// CHECK-ELSE:
/// CHECK: foobar03
/// CHECK-FI:
- Conditions are Python statements evaluated with `eval`.
- They can contain references to previously defined variables
(<<MyVar>>).
- Nested branching is supported.
Credits: the initial implementation of the patch was written by David
Brazdil (dbrazdil@google.com). It incuded support for IF, ELSE and FI.
Furthermore, this patch includes a test case
(2231-checker-heap-poisoning) mostly written by Roland Levillain
(rpl@google.com).
The CL adds support for ELIF, CHECK-NEXT and CHECK-DAG in branches,
tests and documentation.
Author: Fabio Rinaldi
Committer: Artem Serov
Test: art/tools/checker/run_unit_tests.py
Test: test.py --target --optimizing with tweaks to env
ART_HEAP_POISONING (set it to True or False) and
ART_READ_BARRIER_TYPE (set it equal or not equal to 'TABLELOOKUP')
Test: test.py --host --optimizing with the same tweaks
Bug: 147876827
Change-Id: I73f87781b9e7862d5735c6160ac351610fc9bd92
10 files changed