Skip to content
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

Objective-C ffigen should test against all Apple APIs #1183

Closed
brianquinlan opened this issue May 30, 2024 · 3 comments · Fixed by #1554
Closed

Objective-C ffigen should test against all Apple APIs #1183

brianquinlan opened this issue May 30, 2024 · 3 comments · Fixed by #1554
Labels
lang-objective_c Related to Objective C support package:ffigen
Milestone

Comments

@brianquinlan
Copy link
Contributor

There should be an integration test that runs ffigen against all of Apple's headers and verifies that the resulting generated file passes analysis.

Bonus points for spot-checking that some complex classes, protocols, etc. are usable.

@liamappelbe
Copy link
Contributor

There are 4383 headers across 255 frameworks in my Apple SDKs directory (matching /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/*.framework/Headers/**.h).
When I try to generate bindings for all of them, it runs for 35min then crashes with no useful info (not sure if it's a legit bug, or if my laptop just ran out of memory or something).

So instead of pulling in all these headers as a glob, I'm going to add one framework at a time until something breaks.

@liamappelbe
Copy link
Contributor

There's one more bug that needs to be fixed before this can land: #1220

@liamappelbe
Copy link
Contributor

liamappelbe commented Sep 12, 2024

Tried running this test on the github CI bots in #1554. Unfortunately they don't really have enough memory to run this test without thrashing (see dart-lang/sdk#56247). So what should be a 30sec analysis times out after 30min.

I added a randomized filter that removes 90% of the bindings, and that allows the test to complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lang-objective_c Related to Objective C support package:ffigen
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants