-
Notifications
You must be signed in to change notification settings - Fork 3.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parallel lock free testing, remove potential deadlocks, cache static data, go to descriptor via test #3752
Conversation
8b757f6
to
b0f4531
Compare
a2c8d68
to
17f9e9d
Compare
runtime-testsuite/resources/descriptors/ParserExec/ListLabelForClosureContext.txt
Outdated
Show resolved
Hide resolved
A huge amount of work here. thank you! |
Thank you for your reviews and PR accepting :) I suggest changing other runtimes (moving |
Are we sure the others have deadlock issues? Not sure I have the energy to update. Maybe we can ping those target folks. |
Not sure (because they can use another initialization mechanizm) but it's not fully excluded (C# is very similar to Java). But I also like the idea of synchonized API across runtimes. I can do that. |
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
38e7869
to
fb6fee8
Compare
I had a random thought: Is any user code relying on EMPTY? I don't think so from a quick check but we want to be careful we don't break any user code as a result of this. |
Yes, we should be careful, but removing deadlocks is much more important than insignificant changing of API. And since we change Java code, code of other runtimes can be changed as well. |
I've almost completed everything, but I also want to update documentation. |
Referencing subclass ParserRuleContext from superclass RuleContext initializer might lead to class loading deadlock Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
…odeCount Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Remove useless loadTemplates overloads Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
…ent navigation to tests data in IntelliJ Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
fb6fee8
to
ff655e3
Compare
I think now it's ready for review and merge. |
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
ff655e3
to
f235d33
Compare
In the middle of the review but wanted to comment that this is very well structured...each commit does a logical unit of work. thanks! And amazing piece of refactoring overall 💯 |
runtime-testsuite/test/org/antlr/v4/test/runtime/RuntimeTests.java
Outdated
Show resolved
Hide resolved
doc/antlr-project-testing.md
Outdated
@@ -87,6 +87,8 @@ And the result of testing the entire subdirectory: | |||
|
|||
All test are run in parallel both via maven and via IDE. | |||
|
|||
In IntelliJ, it's very easy to go to source by right-click on any test and pressing `Jump to source` (F4). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"right-clicking"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
runtime-testsuite/resources/org/antlr/v4/test/runtime/helpers/RuntimeTestParser.java
Show resolved
Hide resolved
I'd like to thank my @JetBrains team. They taught me to keep structured git history and write very conscious code. |
Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
Fix misprint Signed-off-by: Ivan Kochurkin <kvanttt@gmail.com>
An amazing PR if I ever saw one thanks!!! Merging... |
See antlr/antlr4#3752 Commit 875911c2b2e6e50317e75ff2b5e80f4014a75954
@parrt I've fixed Java and C# runtimes. If it's ok, I'll unify other runtimes as well (where multithreading is actual)
Now Java runtime tests are superfast since they are inprocess (30s instead of 1.5 minutes)!
Also, now it's very easy to navigate to test data via tests in IntelliJ! See the video:
idea64_dBV9JpR0fg.mp4