Is anyone running our gdb-based Android debuginfo tests?
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
This is mostly directed at @chriswailes, @maurer, and @mgeisler because you are the target maintainers for our Android targets.
I've been looking through our debuginfo tests, and I've found that a few of them were disabled years ago never revisited. Some of those tests are disabled only on Android. Based on the history linked from https://github.com/rust-lang/rust/issues/10381, the last attempt to re-enable some of the mass-ignored android debuginfo tests was in 2015. So I'm not expecting any of you to really know the history here.
But currently (and I do not know for how long) we do not run any debuginfo tests on Android: https://github.com/rust-lang-ci/rust/actions/runs/10409799292/job/28830241725#step:25:23109
It seems like this is because compiletest looks for a gdb: https://github.com/rust-lang/rust/blob/0f442e265c165c0a78633bef98de18517815150c/src/tools/compiletest/src/lib.rs#L1038-L1085 but since compiletest doesn't find one, we skip the entire suite.
There is a fair amount of code in compiletest for handling debuginfo tests on Android. Since none of any of the code associated with running debuginfo tests on Android is currently being exercised, I suspect all of that code is just a time bomb for whoever eventually decides that we need those tests to be enabled.
In https://github.com/rust-lang/rust/pull/128913 I am removing a number of ignore-test annotations from the test suite, and replacing them with more specific ignores where required. Because the entire suite is ignored for Android, I cannot do this.
So I have a few questions:
- Is anyone running the debuginfo test suite on Android?
- Would anyone object if I blindly remove all the other
ignore-androidannotations from the test suite? - Is anyone planning on working to re-enable the Android debuginfo tests? I've poked around, and it uses a bunch of Android SDK/emulator arcana that I do not understand. For example, I tried installing
gdb-multiarchin the image, which results in the test suite managing to executearm-linux-androideabi-gdb(which I cannot find in the container) but if I addset architectureto the gdb commands, the output is just i686/x86_64. - In my searching around for explanations about how to debug on Android, I found some mentions that one should be using lldb instead. Is that right?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with src/tools/compiletest/src/lib.rs around the gdb detection logic and the linked Android CI job to confirm why debuginfo tests are skipped. Review the Android-specific compiletest handling and existing debuginfo test annotations; done requires a decided, working approach for running or deliberately updating the Android suite.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, rust
- Domain
- compilers, mobile-dev, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100