Skip to content
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

Add basic general-purpose model checker test for coroutines #539

Merged
merged 17 commits into from
Mar 3, 2025

Conversation

eupp
Copy link
Collaborator

@eupp eupp commented Feb 20, 2025

This PR adds simple GPMC test that uses coroutines and channels.
It also adds a minor fix to make the test pass.

NOTE: apparently, there is some problem on JVM 8, because the test behaves non-deterministically there. Needs further investigation. For now, I disabled the new coroutines test for JVM 8.

Closes #505

@eupp eupp requested a review from ndkoval February 20, 2025 16:05
@ndkoval
Copy link
Collaborator

ndkoval commented Feb 24, 2025

@eupp is it possible to make the output shorter than 2500 lines for such a simple test?

@eupp
Copy link
Collaborator Author

eupp commented Feb 26, 2025

is it possible to make the output shorter than 2500 lines for such a simple test?

I believe the output will be shortened once we implement #514 and #518.
Do you know any alternative solution?

@@ -479,5 +479,8 @@ internal object LincheckClassFileTransformer : ClassFileTransformer {
// StackTraceElement class, to wrap all its methods into the ignored section.
isStackTraceElementClass(className) ||
// ThreadContainer classes, to detect threads started in the thread containers.
isThreadContainerClass(className)
isThreadContainerClass(className) ||
// TODO: instead of eagerly instrumenting `DispatchedContinuation`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's create an issue for that

Copy link
Collaborator Author

@eupp eupp Mar 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is the issue: #553

Copy link
Collaborator

@ndkoval ndkoval left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please take a look at the comments and create issues where necessary. While the output is not perfect yet, we will address these issues separately.

eupp added 16 commits March 3, 2025 18:15
… a temporary workaround

Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
@eupp eupp force-pushed the run-with-lincheck-api-coroutines branch from c663b27 to 39a9599 Compare March 3, 2025 18:32
@eupp
Copy link
Collaborator Author

eupp commented Mar 3, 2025

Created issues for trace representation problems: #555 and #556

Signed-off-by: Evgeniy Moiseenko <[email protected]>
@eupp eupp merged commit bf66835 into develop Mar 3, 2025
20 checks passed
@eupp eupp deleted the run-with-lincheck-api-coroutines branch March 3, 2025 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants