summaryrefslogtreecommitdiffstats
path: root/tools/checker.py
Commit message (Collapse)AuthorAgeFilesLines
* Checker: Allow don't-care output on a lineDavid Brazdil2015-01-271-44/+53
| | | | | | | | | | | | | | | | | This patch changes the behaviour of whitespace characters in CHECK lines, allowing for additional content between verified parts of the matched output line. Tests therefore won't need to explicitly match attributes which are not tested. The way attributes are printed ensures that the right part of the line is matched against. Example: - output line: i32 Div [ i4 i8 ] ( loop_header:null ) - CHECK before: Div [ {{i\d+}} {{i\d+}} ] ( loop_header:null ) - CHECK now: Div ( loop_header:null ) Change-Id: Icf6bacfb285ae288bea21640e860a871a94cc386
* run-test: enable checker in dev modeCalin Juravle2015-01-271-2/+3
| | | | | | | Also, use explicit flush (instead of passing flush parameter to print) to enable better compatibility across python versions. Change-Id: Iaf294d88e932b778d5dce7f3c2b8eca775849973
* ART: Run Checker with Python >2.6David Brazdil2015-01-201-1/+2
| | | | | | | | Chromium buildbots don't have Python 3. This patch fixes the uses of print() and ASCII vs. Unicode strings to make Checker compatible with Python 2.6 and above. Change-Id: Ic065d990f668b8cf95a337aae037699e8474fcee
* Checker cleanupDavid Brazdil2015-01-161-15/+10
| | | | | | Added a comment, removed unused temp directory code. Change-Id: I3df87e801e72ccd5a87c7dbc67335e9936623560
* Add --no-clean to checker (keeps the generated files around)Calin Juravle2015-01-161-1/+6
| | | | Change-Id: Iefef18f3456f79684077912e1f8b614d56e13ca6
* ART: Remove compiler invocation from CheckerDavid Brazdil2015-01-151-49/+31
| | | | | | | | | | In anticipation of running Checker from run-test, this patch removes code which compiles Java files as this will be handled by run-test. It simultaneously adds support for verifying an entire directory of annotated test files. Change-Id: Id91c19c83fddade076c77789316d59f00893e63b
* ART: Logging levels for CheckerDavid Brazdil2015-01-151-8/+16
| | | | | | | | Small patch which enables Checker to print errors but not info messages as opposed to the current all or nothing. This is useful for running Checker with run-test. Change-Id: I500ded0db4f83ed9bbdef9c1f7b1eb18a90d7f0e
* ART: dex2oat flag for HGraphVisualizer dump fileDavid Brazdil2015-01-131-2/+2
| | | | | | | | | | This patch adds a new '--dump-cfg=<file>' flag to dex2oat which specifies the file that HGraphVisualizer will store its output into. Until now the graph was dumped to 'art.cfg' in the current working directory. To make Checker work with run-test, the output directory needs to be customizable. Change-Id: I4a940f7708b88deea5a0e51d13aed13e52199349
* Revert "ART: dex2oat flag for HGraphVisualizer dump file"Andreas Gampe2015-01-131-2/+2
| | | | | | | | Breaks compilation of tests. This reverts commit 54953dfdcb3bb8896d8af2d20adef84fb740ce77. Change-Id: I868b876c3130be61f1169c5fccdffc0368bee11e
* ART: dex2oat flag for HGraphVisualizer dump fileDavid Brazdil2015-01-131-2/+2
| | | | | | | | | | This patch adds a new flag to dex2oat which allows to specify the name of the file that HGraphVisualizer will store its output into. Until now the graph was dumped to "art.cfg" in the current working directory. To make Checker work with run-test, the output directory needs to be customizable. Change-Id: I395c518b987e594e89e5e80f202a96befa41ac20
* Merge "ART: Fixed subsequent CHECK-NOTs Checker bug"David Brazdil2015-01-101-2/+2
|\
| * ART: Fixed subsequent CHECK-NOTs Checker bugDavid Brazdil2015-01-081-2/+2
| | | | | | | | | | | | | | | | Matching a group of CHECK-NOT lines caused Checker to crash due to incorrectly overwriting the varState variable. The second use of the variable was renamed and a regression test added. Change-Id: I1a879cf5368acca6b5092f69a9caa47b89a79532
* | Merge "ART: Added comments, fixed typos in Checker"David Brazdil2015-01-091-1/+13
|\ \
| * | ART: Added comments, fixed typos in CheckerDavid Brazdil2015-01-091-1/+13
| |/ | | | | | | Change-Id: I1ff12940035845c1a586d4df826efc794088bdc9
* | ART: Refactored regex code in CheckerDavid Brazdil2015-01-081-33/+31
|/ | | | | | | | | This patch refactors how Checker constructs regular expressions which it uses to parse tests and verify compiler output. It also replaces all occurrences of the '[0-9]+' ID-matching expression with the '\d+' shorthand. Change-Id: I5f854a25707e44ed2fa1673ff084990e8f43e4a2
* ART: Improved fail reporting in CheckerDavid Brazdil2015-01-081-90/+191
| | | | | | | Checker now keeps track of line numbers and prints more informative log messages. Change-Id: I59ba3fb81d91e265a7358b6abb116dcb9ce97cbb
* ART: New types of Checker assertionsDavid Brazdil2014-12-311-49/+144
| | | | | | | | | | | Checker now supports positive out-of-order assertions (CHECK-DAG), which are useful for matching dependency graphs, and negative assertions (CHECK-NOT) to test element removal. ConstantFolding tests are rewritten using -DAG checks and Inliner tests are added. Change-Id: I5afb665f532b24683624b6d21ef4377cb441d731
* ART: Added Checker, a pattern matching test engineDavid Brazdil2014-12-171-0/+570
This patch adds a Python script which implements a domain-specific mini-language similar to that of LLVM's FileCheck. It is primarily intended for writing tests for the optimizing compiler but could be configured for other use cases too. It is implemented from scratch in order to avoid dependency on LLVM. Checker tests are written in Java and dex2oat is invoked with a flag which dumps the CFG before and after each pass of the optimizing compiler. The output is then compared against assertions in the test's comments parsed by Checker. See comments in tools/checker.py for more details about the currently supported language features. This initial CL implements only one type of assertion - whether the output contains lines matching a desired pattern in the given order - but supports both plain text and regex matching and allows for equivalency testing by matching for the outcome of a previous match. See the tests in compiler/optimizing/test/ConstantFolding.java for examples. Change-Id: I1ad7431b399c38dc0391ccee74d2c643ba0b0675