1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-10 00:42:40 +01:00

When running XHPAST unit tests, include the "syntax error" lint rule

Summary:
See rARC3ffed59bd7. Currently, when a unit test includes a syntax error, it is raised in an unclear way ("error at line 10, char 1: XHP1 Unknown lint message!").

This is because each test case only activates rules it wants to test, so we lose the ID/name for the syntax message. However, we always want to test this and the lint engine can always raise it.

To get a better error message, include it unconditionally. So a test for rule `X` really tests two rules: syntax, and `X`.

Test Plan:
Ran `arc unit` at HEAD, got a better test failure:

```
   FAIL  ArcanistCallTimePassByReferenceXHPASTLinterRuleTestCase::testLinter
In 'call-time-pass-by-reference.lint-test', expected lint to raise error on line 10 at char 8, but no error was raised. Actually raised:
  error at line 10, char 1: XHP1 PHP Syntax Error!
```

NOTE: This doesn't pass tests yet, it just makes the test failure easier to understand. I'll see about fixing the test in the next change.

Reviewers: chad, richardvanvelzen

Reviewed By: richardvanvelzen

Differential Revision: https://secure.phabricator.com/D15819
This commit is contained in:
epriestley 2016-04-29 05:59:24 -07:00
parent 3ffed59bd7
commit 768e1a56bc

View file

@ -8,8 +8,19 @@ abstract class ArcanistXHPASTLinterRuleTestCase
extends ArcanistLinterTestCase {
final protected function getLinter() {
// Always include this rule so we get good messages if a test includes
// a syntax error. No normal test should contain syntax errors.
$syntax_rule = new ArcanistSyntaxErrorXHPASTLinterRule();
$test_rule = $this->getLinterRule();
$rules = array(
$syntax_rule,
$test_rule,
);
return id(new ArcanistXHPASTLinter())
->setRules(array($this->getLinterRule()));
->setRules($rules);
}
/**