Commit Graph

271 Commits

Author SHA1 Message Date
parrt ae1bc4cafe add new test for all runtimes for issue #1295 2016-11-19 12:48:09 -08:00
parrt d0620a65f5 Merge branch 'issue#1295' of git://github.com/harriman/antlr4-updates into harriman-issue#1295 2016-11-19 12:05:32 -08:00
parrt 0ffb0310d2 rm dead code 2016-11-17 13:06:20 -08:00
parrt c5acec19db Move what used to be AfterGrammar template from a test in legacy runtime tests to tool test and remove from runtime test functionality. 2016-11-17 13:05:34 -08:00
parrt 02a35589fe check errors before output value in tests 2016-11-17 11:16:37 -08:00
Kurt Harriman ab8d17472f ANTLR4 generated incorrect code to access return value of recursive rule
Incorrect code was generated for $e.v in a rule like this one:

    e returns [int v] ::=
           INT       {$v = $INT.int;}
        | '(' e ')'  {$v = $e.v;}
        ;

After parsing "(99)" the result would have v == 0 instead of 99.
2016-11-16 22:38:11 -08:00
parrt 9675c822a9 update doc, add lock so antlr used atomically in unit tests so we can run in parallel. 2016-11-16 15:42:45 -08:00
Eric Vergnaud c35aec6ffe optionally delegate assertEquals to RuntimeTestSupport delegate, to enable target specific assertXxx behaviour 2016-11-17 01:11:24 +08:00
parrt d534efdf9a update doc on the runtime test mechanism. change the name of BaseDebugParserTestDescriptor to BaseDiagnosticParserTestDescriptor. 2016-11-15 14:25:28 -08:00
parrt a7ecf0332f rename the SingleTest class and and Java doc. make errors="" actually set to null to be more clear. 2016-11-15 13:42:57 -08:00
parrt 08e9776a4a shift template-based runtime test to legacy, new mechanism uses annotation to get multi-line strings into java. all tests pass minus about 15 in C# 2016-11-15 11:08:19 -08:00
parrt 7f16fe6201 alter test so it works with all targets 2016-11-07 15:02:57 -08:00
parrt b8ac1ebb3b unignore 2 tests for Go 2016-11-07 14:24:46 -08:00
parrt 5fc57fb0b2 Go needs to mimic other tests; regenerated. 2016-11-07 14:09:31 -08:00
parrt 01e3ffa7e5 optimize imports. 2016-11-07 14:01:10 -08:00
parrt b366a8405c fix some issues with tests after merge 2016-11-07 13:20:16 -08:00
parrt 3ee3093f88 fix some issues with tests after merge 2016-11-07 13:06:16 -08:00
Mike Lischke 92b032820e Merge branch 'master_upstream' 2016-11-07 11:19:12 +01:00
Mike Lischke 3b3fe3da57 Merge branch 'master_upstream'
Had to resolve a number of conflicts + added code required for the C++ target to generate header files, after the recent changes in the main repo.
2016-11-07 11:16:02 +01:00
parrt e5ec462e22 Fixes #1337. Add's sync() call back to LL(1) decisions; all targets updated (causing failed test in Go). Altered test for new output of errors. regen'd tests. 2016-11-06 09:45:40 -08:00
Mike Lischke cd5744b83f Fixed runtime tests after latest changes. 2016-11-06 11:32:28 +01:00
parrt 95c850e5f8 set version in prep for 4.6 2016-11-05 16:48:36 -07:00
parrt bcfa70c4e8 test templates were missing visitor-related templates. slight improvement to test generator. 2016-11-05 16:26:01 -07:00
Peter Boyer fc35818c52 Update import statements after merge 2016-11-05 16:36:53 -04:00
Peter Boyer 37631d1197 Regen runtime-testsuite 2016-11-05 16:27:12 -04:00
parrt 62badff2e8 Pull again from parrt's branch 'model-updates-for-new-targets'. tests pass. 2016-11-05 09:30:46 -07:00
parrt 6d022379bc Pull in parrt's branch 'model-updates-for-new-targets' which appears to have freshened some non Go stuff as well. Simplify Go filename construction. 2016-11-05 08:48:37 -07:00
Mike Lischke 5e9211b093 Re-enabled all tests again. 2016-11-05 16:35:34 +01:00
Mike Lischke e71e95080a Merge branch 'master_upstream'
Also updated the list of ignored tests in the Cpp.test.stg file (lke it is done for the other targets).
2016-11-05 15:07:59 +01:00
parrt 95dbf7b44b look for go in path during tests 2016-11-04 16:06:41 -07:00
Peter Boyer 2444386091 Remove JavaScript PORT_DEBUG, re-enable runtime tests for other language targets (#69)
* Re-enable runtime tests for other language targets

* Fix typo in js code

* Remove PORT_DEBUG statements

* Fix missing

* Fix testAltNum
2016-10-13 17:06:22 -04:00
parrt 4312b37828 pull test changes in 2016-10-13 10:58:19 -07:00
Christian Gudrian 29c1a9f222 removed reference to local node installation 2016-10-12 15:56:40 +02:00
Peter Boyer 42347c078b Fix merge failure 2016-10-12 09:53:43 -04:00
Peter Boyer 60662c4b70 Fix remaining tests (#64)
* Fix pred context typo

* Adjust array lengths

* PositionAdjustLexer test fix first steps

* allow virtual method calls from Lexer

* Hopefully fix issues with dup namedActions

* Make parser members

* Fix testParserProperty

* Fix LeftRecursion test failures
2016-10-12 09:49:42 -04:00
Christian Gudrian e5bab64e4b ignoring the visitors tests for Java, C# and Python
The template implementations for these languages is pending.
2016-10-06 22:53:25 +02:00
Christian Gudrian 4842e61a06 generated test sources 2016-10-06 22:53:16 +02:00
Christian Gudrian cb590334bb the visit methods now return a value 2016-10-06 22:52:19 +02:00
Christian Gudrian eb292adb18 implemented templates for the JavaScript visitors 2016-10-06 22:52:19 +02:00
Christian Gudrian a90c9d6669 started work at the Visitors templates by making a copy of the Listener templates 2016-10-06 22:46:54 +02:00
Peter Boyer 499d9d3f89 Print test arrays in java style (#50)
* Print string rule invocation stack array in java style

* regen runtime tests

* Another array print fix

* Fixes to print array of terminal nodes:

* regen tests
2016-10-05 14:52:42 -04:00
Mike Lischke a7b9499230 Code generation + Travis CI fixes.
- Had to adjust a comparison <= 0 to the new unsigned EOF.
- For testing: extended the runtime tests to all C++ tests.
- Install uuid-dev in Travis CI in order to be able to build the C++ runtime.
2016-10-03 11:25:02 +02:00
Mike Lischke 8280beb564 Refactoring of further int values, mostly converting them to size_t.
- Switched most symbolic signed constants to unsigned variants. Redefined EOF in particular to become (size)-1, to avoid having to use signed token type values.
- Introduced INVALID_INDEX for all previous -1 values to indicate e.g. not found indexes etc.
- Added 2 helpers to convert between symbolic and numeric form (mostly for intervals and toString()).
- Removed many no longer needed type casts to size_t.
- Updated templates for these changes.
- Limited runtime tests to C++ tests only, to see how Travis CI copes with that.
2016-10-02 16:51:57 +02:00
Mike Lischke de4df872fe Updates to get all tests green again.
- Had to take back some of the message beautifying, as this won't match expected runtime test output.
- Updated C++ test stg file for recent runtime changes. Regenerated tests (only one file changed actually).
- Reworked C++ test preparation. The C++ runtime is now built on first invocation of a test. This works only on Linux + OSX/macOS. Windows needs extra handling.
2016-10-01 12:43:31 +02:00
runner 1b2b954500 auto locate go path on the windows 2016-10-01 11:45:28 +08:00
Mike Lischke 3b98c1136e Merge branch 'master_upstream' 2016-09-25 11:31:51 +02:00
Andreas Jonson 6e780c90bb update the runtime paths to work in windows
the old paths contained a / at the beginning of the path e.g. "/C:/" but the expected path is "C:/" and due to this all test for the targets javascript, python and c# failed on windows.
2016-08-19 23:27:08 +02:00
Peter Boyer 28e013e687 Merge pull request #37 from willfaught/elist
Fix LRWithLabelsListener to call EList.String
2016-07-18 09:53:26 -04:00
Peter Boyer faeb00a682 Merge pull request #38 from willfaught/strings
Fix ParserErrors.testContextListGetters to print strings
2016-07-18 09:52:28 -04:00
Will Faught 5feca3e334 Fix ParserErrors.testContextListGetters to print strings 2016-07-06 10:57:37 -07:00
Will Faught edbf3225ef Fix LRWithLabelsListener to call EList.String 2016-07-06 10:19:25 -07:00
Will Faught a05dea54ec Fix test case build errors 2016-07-06 09:02:42 -07:00
Mike Lischke f6515e5aaf A few adjustments in doc + runtime tests for the changed library name + input stream handling. 2016-06-21 17:25:39 +02:00
Mike Lischke 3b5b400d03 A few fixes for the previous listener change.
Also fixed runtime tests again.
2016-06-17 11:27:52 +02:00
Mike Lischke 4a7ec859aa Simplified parse tree listener handling.
No need to use shared_ptr for management. Listeners are, like the other main classes (parser, lexer, input stream etc.) provided by the application and hence managed there.
2016-06-17 10:22:19 +02:00
Will Faught c9ac8a6c61 Generate Go tests 2016-06-16 23:29:10 -07:00
Will Faught c72ef6383e Clean up Go test templates 2016-06-16 23:27:47 -07:00
Will Faught 80f99b50da Fix Property calls in generated Go tests 2016-06-16 23:20:52 -07:00
Will Faught 4e560db250 Fix SetErrorHandler and NewBailErrorStrategy calls in generated Go tests 2016-06-16 23:20:52 -07:00
Will Faught 40b7e1bf12 Fix parser tokens in generated Go tests 2016-06-16 23:20:45 -07:00
Mike Lischke dd48c0fbd5 A few final touches to make runtime tests passing. 2016-06-16 11:20:42 +02:00
Mike Lischke 4a8010b4eb Revert "A few more places that no longer pass a shared_ptr around."
This reverts commit 728af59528.
2016-06-15 13:30:37 +02:00
Mike Lischke 728af59528 A few more places that no longer pass a shared_ptr around. 2016-06-14 15:17:23 +02:00
Mike Lischke b9c28d8c9c Signficantly simplified Token handling.
In order to lower the overhead when passing around Token instances via smart pointers and because the ownership is clear (token streams own them), these instances can be passed as raw pointers.
2016-06-13 13:12:02 +02:00
Mike Lischke b8fcb5f30d More performance increase for C++ target (25% now).
All shared_ptr<> now use const& for function parameters to avoid constant copies + locks. Ownership and lifetime control is still ensured by the owning containers. Code templates have been updated as well.
2016-06-09 12:02:30 +02:00
Mike Lischke a4bc611fd5 Changed namespaces + fixed runtime tests.
- Changed namespace chain (org::antlr::v4::runtime) to just antlr4 in all files.
- Fixed runtime tests for that.
- Added conversion of the xpath code, which compiles now (no tests, tho, as there are runtime tests for it).
- Removed TestRig stuff. That doesn't work in C++.
2016-06-06 15:55:27 +02:00
Wolfgang Johannes Kohnen f8f872bfc9 runtime-testsuite/Go: fix recursion 2016-06-06 08:12:50 +02:00
Wolfgang Johannes Kohnen bf7cc8ce80 runtime-testsuite/Go: Cache Go test environment and make it self-contained.
* "go install" the Go runtime inside a temporary GOPATH directory.
 * Remove unnecessary GOPATH variable elements.
 * Change some instances of stringly typing to strongly typing.
 * Remove a few pointless indirections.
 * Cleanup erase helper methods, make eraseFiles (eraseDirectory)
   static and recursive (used by @AfterClass as well).
 * Other minor cleanups.
 * => this works on travis now and is about twice as fast! :)
2016-06-05 21:52:53 +02:00
Mike Lischke 73248ac2e3 Some changes in the C++ target doc + a some template fixes.
- Avoiding double semicolons is tricky with the kind of rule nesting. Previous changes for that caused the tests to break as there were semicolons missing then.
- VS complained about the shift code generated using 1L as base, which is signed. Changed that to 1ULL, which is what is actually intended.
- Reverted the change to avoid a warning in RuleSempredFunction() in Cpp.stg as the fix didn't work 100%. We need a different solution.
2016-06-05 14:35:11 +02:00
Mike Lischke ac664a91b8 A few more fixes. 2016-06-02 17:32:19 +02:00
Mike Lischke b7ade0ade1 TestParseTrees + TestSemPredEvalLexer C++ test groups pass now. 2016-06-02 12:22:24 +02:00
Mike Lischke be2e71130a TestListeners C++ tests pass now.
- Needed a few adjustments in the test templates for this, which required to change target test templates for all other languages too.
2016-06-02 10:18:19 +02:00
Mike Lischke 28ccc4962b TestParseTrees passes now. 2016-06-01 15:20:11 +02:00
Mike Lischke 6bf1193839 All tests of TestLeftRecursion.java now pass.
- Fixed all disabled tests and enabled them.
- Some more adjustments of the test template + target template was needed.
- Worked on semicolon usage in Cpp.stg to avoid double semicolons. Might need more work, tho.
2016-06-01 12:08:13 +02:00
Mike Lischke 86014ac3a6 TestParserExec tests pass now.
- A few more adjustments to make this test group pass.
- Fixed a few issues in C++ runtime as well.
2016-06-01 10:22:48 +02:00
Mike Lischke 814a1821be TestParserErrors passes now.
Fixed a bug in the Cpp.stg file where more input was consumed than should be.
2016-05-30 16:27:12 +02:00
Mike Lischke 08f844af0e Fixed 2 problems found by runtime tests.
- TestLexerExce group passes now.
- Reverted wrong removal of action text output that prevent named actions from showing up properly.
2016-05-29 16:47:51 +02:00
Mike Lischke 815bb95982 TestLeftRecursion passes, but with some disabled tests.
There are a number of disabled tests that need extra work (all because of target specific action code).
2016-05-29 12:17:29 +02:00
Wolfgang Johannes Kohnen 4fd4e51810 runtime-testsuite/go: Make path construction slightly more robust.
* also piggy back a typo fix.
2016-05-28 11:15:14 +02:00
Wolfgang Johannes Kohnen f2dc9f476b runtime-testsuite/Go: timeout tests, honour GOROOT 2016-05-27 22:56:56 +02:00
Mike Lischke a0665677c1 Lots of fine tuning to get more tests passing. 2016-05-27 22:38:42 +02:00
Will Faught a0314a8946 Change File.separator to File.pathSeparator 2016-05-27 11:26:38 -07:00
Will Faught 7e8fb7a7f3 Handle empty current GOPATH when setting GOPATH 2016-05-27 11:05:16 -07:00
Will Faught 9562d87d49 Change willfaught/antlr4 to pboyer/antlr4 2016-05-26 23:43:43 -07:00
Will Faught 3434e802be Fix test GOPATH env var to include current GOPATH
Also:

- Change "antlr4" imports to "github.com/antlr/antlr4/runtime/Go/antlr"
- Remove parser prefix from Property and pred calls
- Change TParser.X tokens to TParserX
2016-05-26 23:37:25 -07:00
Will Faught 34877767c1 Change package alias antlr4 to antlr 2016-05-26 23:31:19 -07:00
Mike Lischke 657be5f1ac Fixed generation code for lexer tests. 2016-05-25 13:36:52 +02:00
David Sisson b1b8de748a Fixed a number of issues in the generated tests. Many more to go. 2016-05-24 19:17:50 -07:00
David Sisson bebb63a126 Updated generation a bit. 2016-05-24 11:44:43 -07:00
David Sisson 3e21e0b6e3 Regenerate all of the tests with the latest test generation template. 2016-05-24 08:30:50 -07:00
David Sisson b920bb7011 Added run support to the test runner. 2016-05-24 02:00:15 -07:00
David Sisson b3a17b00a2 Set up so we compile link all of the files in the test directory. Does not run the binary afterwards, but that's because there's still a print being generated somewhere (and I have no idea where it's coming from). 2016-05-24 01:44:17 -07:00
Wolfgang Johannes Kohnen b6f384bf3c runtime test/Go: Use $PATH and $GOROOT to find go executable. 2016-05-23 11:11:53 +02:00
Mike Lischke 7d69f24201 Small corrections to make the test module compile. 2016-05-22 19:15:36 +02:00
David Sisson c8e60b7fe0 Down to one issue -- tree::ParseTree and tree:RuleNode aren't related as they are in some tests. Need to find either the right relationship or come up with an alternative test. 2016-05-21 15:59:22 -07:00
David Sisson ae4dcbabbd properly escape templates 2016-05-20 22:15:48 -07:00
David Sisson 6aa03ed9a2 attempts compilation 2016-05-20 22:14:28 -07:00
David Sisson 9920efd353 More updates to the C++ test runner. 2016-05-09 21:45:14 -07:00
David Sisson db6f3c983d Added the start of linker support. 2016-05-09 20:53:33 -07:00
David Sisson a212755734 Cleaned up the test runner. 2016-05-08 21:27:40 -07:00