-
Notifications
You must be signed in to change notification settings - Fork 51
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
Diagnose slow hypothesis tests #301
Comments
@Zac-HD Done with one round of investigations and fixes! (hypothesis-crosshair 0.0.13 and crosshair-tool 0.0.68) Breaking up the tests into categories:
Nested tests (used to time out, but now CrossHair crashes fast):
Just plain better, due to recent updates:
This gets a solver unsat here, ideally this will raise
For me to continue to investigate:
|
Sweet! I'll update shortly and see how it goes 😁
That skip is specific to running My action items:
|
Ah! I get it now. So I'll continue to look at those too. |
Very hacky, but... done. Well, maybe, I'll see what CI thinks after I sleep 😄 |
OK, there are quite a few failures but I did mess around with the internals a bit and overall it's looking like an improvement. Quick triage:
|
I got sidetracked on a few subtle-but-important issues this week, but this is still a big priority! I'll be looking at these in the next few days. |
0.0.70 fixes that ugly regression with unhashables! The following two issues are going to take me a while, but, honestly, might legitimately be the next things to look at.
I'll need to tackle the issue of real float semantics for this one. High value, ~high effort.
Your guess is right - the failing int bound is a symbolic. I have a branch on the backburner for more accurate identity semantics. I hadn't thought about faithful integer intern'ing as part of that (the biggest wins relate to avoiding path forks on enums and optional values), but I think I could make it happen. As for whether the identity check on the hypothesis side is objectively correct, I'm unsure. Integer intern'ing isn't guaranteed across implementations. But in order for your test to fail, I think integer intern'ing would have to switch up mid-execution, which seems pretty unlikely. |
For the identity check, I'm not (deliberately) checking interned integers; but rather whether the value is the default argument - so that we show even the default value if it was explictly passed. Integers usually defeat that, but after a quick investigation I've classified this as "not expected to pass under crosshair" so we're done. |
We're actually running low on important semantic issues, so I'd probably turn next to performance issues - there are some very slow tests that I've just skipped because they take several minutes, or hours, or don't finish at all within the 6h Actions time limit. Current commit with those is HypothesisWorks/hypothesis@bb43210
Originally posted by @Zac-HD in #292 (comment)
The text was updated successfully, but these errors were encountered: