-
Notifications
You must be signed in to change notification settings - Fork 12
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
Prep work for running test suite on macos-latest #248
Conversation
463937c
to
7c5feb3
Compare
11dbb3d
to
dacae5d
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good goal and it's a tentative approve from me, but see my other comments 1st.
The BSD find requires the path even for current directory. No harm in providing it on GNU find too.
On macOS, the temporary directories created for Sphinx srcdir contains a symlink /var -> /private/var. The error messages returned from Sphinx have the symlinks eliminated, and the path removal from error messages fails, leading to test failures. Pass the srcdir through os.path.realpath() to eliminate symlinks everywhere, so the filename removal works.
This will be useful for parser tests, as we'll be able to reuse this instead of duplicating the logic for filename or line being None.
The parser may return None for clang diagnostics filename if there isn't one. We already handle this gracefully in get_message(), so reuse that instead of duplicating the logic, now that there's support for basename=True.
Switched to using Testing the macos workflows in a private repo, I'm getting pretty close to passing the tests, but not quite. |
With the xcode (or whatever the "stock" toolchain is called) version of libclang, I'm hitting e.g.:
and
and
and
and
Additionally, there are some failures to find C++ headers. #252 improved the situation in that the paths aren't wrong, but still issues. |
With the homebrew version of libclang, I think all of the issues in both C and C++ boil down to inability to find correct C headers. Looks like the C++ headers are found just fine, but the C++ headers including C headers also hit issues. For example,
but Again, I think the situation is slightly better with #252 but I don't know what gives. |
Anyway, the pull request at hand is a prerequisite no matter what. #253 has also been very helpful. |
Good to merge I think! |
Thanks, merged! Can you see the detailed github action results, with logs etc, for my pull requests? |
I've had a quick look yesterday, but I need to take a bit longer on that one. Haven't seen your latest updates at all though. |
Okay, with the prep work merged, I can just send a workflow PR. Mostly I've been playing in a private repo. |
@BrunoMSantos Increasingly the wrong place to discuss, but anyway: Looks like we need to specify the C++ standard to use for a lot of tests. The default is different on macos. I just added Still having include issues, and it's driving me nuts. Xcode libclang can't find C++ headers, but homebrew version can. Xcode libclang can find C headers, but homebrew version can't. If one or the other worked, I'd just call it a day. |
I only have #249 to go by. Care to make a draft PR with the latest version?
Other than that, assuming a default may be wise (perhaps the difference is in the clang version each system uses by default, in which case it doesn't hurt to be explicit). Adding it in every test case is not so good I think as the test developer may not immediately know he needs to.
Alas I know nothing of macos, but that's weird indeed. How are you testing this? The CI itself or do you have a system on your end? I.e. can I see the output? |
GitHub allows running workflows on macos in addition to ubuntu. I'd potentially like to start running tests on it, but there are some hiccups. I'm not quite there yet with fixing everything in setting up the workflow, but here are two small fixes for starters.
EDIT: This is expanding quite a bit...
EDIT: This + the actual workflow is #249. I'm keeping these separate as this is fairly straightforward prep work, and the workflow doesn't pass.
EDIT: And back to basics. This is just the good stuff now.