-
Notifications
You must be signed in to change notification settings - Fork 34
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
Start with the last failed scenario #139
Comments
A similar issue was raised in #111. Do you propose that Lincheck should not just give the number of failed iteration and a way to skip iterations before it, but should also save the number on disk for future automatic re-running? |
Perhaps, it would make sense to save the scenario itself, not just its number? Also, what about saving not only the scenario, but also the interleaving that led to failure (in case of model-checking strategy)? |
Hi @eupp ! I agree. LinCheck has a way to run custom scenarios, but maybe it would make sense to add interface to run saved scenarios (e.g., run scenarios from Lincheck text output).
Scenario generator should be deterministic because otherwise it complicates re-producing errors. In my opinion, this should be clearly emphasized in the interface by obliging generator constructors to receive (and use)
I believe @ndkoval has a prototype for this. |
As @alefedor has highlighted, it is critical to have a deterministic generator. Therefore, it is easier to re-generate the scenario than serialize and deserialize it, especially with the class loaders magic. As for storing the interleaving, it is unclear when it is functional. I would suggest sticking on the original cheap and efficient solution. |
For now on, I suggest providing an internal API via system properties, which we will later use in integration with IDEA. Let's introduce the following system property: |
I should worn you that once we will have automatic parameter tuning based on testing time #158, Imagine a following scenario.
The point here is that with automatic parameter tuning the scenario generation process becomes non-deterministic and dependent on the scenarios running time (even if scenario generator itself is deterministic). |
We have recently discussed that #168 covers the use cases of this issue. As we are not going to provide deterministic scenario generation, the "starting from the last failed scenario" is no longer needed. |
When a Lincheck test fails, users usually fix the bug and re-run the test. The same scenario will likely fail if the bug has not been resolved. To detect that faster, Lincheck could save the number of failed scenario somewhere, starting next time with it.
The text was updated successfully, but these errors were encountered: