-
-
Notifications
You must be signed in to change notification settings - Fork 26
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
Tests Continue Running for Caught Mutants despite early Failures #186
Comments
Yes, this is the current behavior, and it might save a lot of time if it would stop as soon as there is any failure. As background on how tests are run:
The problem is at step 3: the standard Rust test framework does not stop early on failures, nor does it seem to have any option to make it stop early. There are a few options, and maybe more:
|
I intended to ask for an implementation of running |
adding a little extra info here that might be related to |
Is the OOM the same as we're discussing in #187? If so the short answer is don't use high I did previously have #85, which I closed due to a lack of a compelling use case, but perhaps this issue plus your tree relying on it(?) shows there is one. Built-in one-test-at-a-time could be good too. |
the threads are finicky - and a bitcoind binary is required in many of the tests (so running multiple tests concurrently where bitcoin is triggered for a test will fail). and i have a few nodes running cargo mutants:
where each of the hosts has 32 vCPU and an absurd amount of memory (128GB). i can confirm that the issues you've mentioned are all related (somewhat at least), @ASuciuX and i are working together on these tests and trying to find a performant way to execute this, with the end goal being something we can run against a diff as part of CI. i was considering the idea you mentioned about running a single test at a time. would something like this suffice?
i'm also seeing this as well: https://mutants.rs/performance.html , so i may investigate some of the options proposed here. |
we've had some good experience migrating to i took a peek at how you're invoking i was able to reproduce what you commented in #187 (comment), which led me to try the |
One other thing i found that is interesting - the disk usage fluctuates wildly. |
That will work if
Again, cargo mutants isn't doing much other than copying the tree itself, so the disk usage will be whatever the build produces plus whatever your test produces. The |
@sourcefrog, firstly, great work on cargo-mutants! It's been instrumental in our mutation testing process. I'm collaborating with @wileyj and @ASuciuX and have been closely following this discussion. Integrating Your insights and guidance would be immensely helpful. |
I don't see any reason why adding Nextest support would be hard. We just need an arg/config enum saying what test driver to use, and then to thread it through to the code that runs the tests. I'll probably do it in the next month or two, but if you want to do it let me know. Let's take discussion of implementing Nextest to the more specific issue #85 |
The build and tests succeed without mutations. Following this, the build with mutations also succeeds, and tests for mutants are executed. The test results show instances of FAILED tests. Ideally, the process should stop at the first failure, but it persists in running all tests to completion, resulting in a significantly longer duration to complete the mutant testing.
The text was updated successfully, but these errors were encountered: