-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[android] Split demangling tests for Android 32/64 bits. #34554
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
[android] Split demangling tests for Android 32/64 bits. #34554
Conversation
@swift-ci please test |
I checked myself in an ARMv7 build targeting Android, and a Linux x86-64 build. The tests seem to work in both cases. I am curious about other Darwin 32 bit platforms (ARMv7k, right?), because it seemed that it didn't fail the test, but all the references I can find seem to imply that |
I'm also surprised that this didn't fail for 32-bit Darwin, that's weird. |
Build failed |
Build failed |
So it seems that Do we need to use |
There are certain types which are imported in Swift in a particular way, and then when you try to map that Swift type to a C type, you don't get a round-trip, you get something else. To preserve this information of the original C type, we have the additional
I think for this test case, it would be fine to disable it for 32-bit Android. You could add a separate test case for 32-bit Android (I think that would be easier to follow than having conditional compilation here, though I'm not 100% sure). |
`size_t` differs in 32 bit platforms like Android ARMv7 where it is `unsigned int` instead of `unsigned long`. The mangling changes one of the characters. The original tests are disabled in Android, and they are replicated in different files for Android, with both the 32 and the 64 bits versions of the mangling and the function signatures. The original tests are not modified in order to avoid complicated checks to avoid platforms like iphonesimulator-i386, which is a 32 bit platform, but still uses `unsigned long` as the underlying type for `size_t` Both tests started failing after swiftlang#34057 landed in the Android 32 bits CI machines.
3a3b4c5
to
8962f5c
Compare
@swift-ci please test |
Build failed |
@swift-ci please test macOS platform |
Build failed |
@swift-ci please test macOS platform |
Build failed |
Failure is still unrelated @swift-ci smoke test macOS |
size_t
differs in 32 bit platforms like Android ARMv7 where it isunsigned int
instead ofunsigned long
. The mangling changes one of thecharacters.
The original tests are disabled in Android, and they are replicated in
different files for Android, with both the 32 and the 64 bits versions
of the mangling and the function signatures.
The original tests are not modified in order to avoid complicated checks
to avoid platforms like iphonesimulator-i386, which is a 32 bit
platform, but still uses
unsigned long
as the underlying type forsize_t
Both tests started failing after #34057 landed in the Android 32 bits CI
machines.