-
Notifications
You must be signed in to change notification settings - Fork 357
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
pitest generates unhelpful mutations when using Kotlin's coroutines #579
Comments
My understanding is that while PITest technically can run against any JVM language, you will get nonsense results in any language except Java. This is because Java has a straight forward conversion from source code to byte code. All other languages do extra processing so there is no longer a 1:1 relationship of source to byte code. It would be awesome though if pitest could be enhanced to support the other jvm languages. |
I ran pitest 1.4.10 against kotlin code with some async calls and it produces a lot of errors. Mainly errors in the coroutines machinery regarding continuation and completion. Somehow pitest and coroutines do not mix well. |
Have you tried the Pitest Kotlin plugin? https://github.com/pitest/pitest-kotlin I haven't had a chance to try it, but it might work for you. |
The plugin does not have support for co-routines yet. Unfortunately no one has stepped forward to maintain it so it is not progressing. I've been toying with the idea of some sort support subscription that could fund development, but I'm not sure there would be sufficient interest. |
I'd be interested to see that. Open source projects really do need a source of funding. The work you do has value. |
The Arcmutate kotlin plugin now provides support for coroutines |
This Kotlin code sample that uses coroutines:
Will create bunch of
replaced equality check with false
mutations, even though there are no equality checks in actual kotlin code.This was reproduced with Android fork of the pitest gradle plugin v0.1.9, which uses
1.4.0
pitest version andALL
operators enabled.The text was updated successfully, but these errors were encountered: