-
Notifications
You must be signed in to change notification settings - Fork 10.4k
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
[validation-test] More granular FixedPoint tests #1324
[validation-test] More granular FixedPoint tests #1324
Conversation
`FixedPoint.swift.gyb` generates a massive amount of assertions: one for each `Int` type (such as `UInt8` and `Int64`) as a source, to one of each `Int` type as a destination, for each of 27 bit patterns. By my math that's 8 * 8 * 27 == 1728 assertions. As a result, when one of those assertions fails, it's difficult to tell what went wrong. Split each assertion into its own test case. This makes the test take a little longer to run, but it produces much more valuable output when it fails.
I would mark this as "NFC", but it actually fixes a |
@modocache I don't see a problem accepting this PR, but the fact that long functions cause silent miscompiles is alarming. I recommend you to investigate further, taking the |
@swift-ci Please test |
@gribozavr Absolutely will do. Thanks for the delta tip! |
Weird, it looks like CI encountered an error in |
I think master is broken... I'm going to revert something and try again. |
I have fixed |
@gribozavr I believe I may be running into the same issue in another test: |
Now both snippets seem to execute correctly. |
@modocache It is likely that you are hitting a different bug in the same area. |
@gribozavr Excellent, thanks for the tips. I'll continue to look into it! |
…-fixedpoint [validation-test] More granular FixedPoint tests
FixedPoint.swift.gyb
generates a massive amount of assertions: one for eachInt
type (such asUInt8
andInt64
) as a source, to one of eachInt
type as a destination, for each of 27 bit patterns. By my math that's 8 * 8 * 27 == 1728 assertions. As a result, when one of those assertions fails, it's difficult totell what went wrong.
Split each assertion into its own test case. This makes the test take a little longer to run, but it produces much more valuable output when it fails.