Skip to content

Increase test coverage - #247

Merged
compnerd merged 4 commits into
mainfrom
compnerd/prune-exclusions
Jul 28, 2026
Merged

Increase test coverage#247
compnerd merged 4 commits into
mainfrom
compnerd/prune-exclusions

Conversation

@compnerd

Copy link
Copy Markdown
Owner

This pull request primarily updates the way test log filtering is handled in CI scripts and removes a large number of previously excluded LLDB test cases for Android and Linux platforms. The key changes include ensuring that grep always treats input as text (using -a), and clearing out the exclusion lists for several test configurations, which will allow more tests to run in CI.

Test log filtering improvements:

  • Updated all relevant CI scripts (in .github/actions/run-lldb-tests/action.yml and .github/workflows/test-android.yml) to use grep -a -v instead of grep -v when filtering out lines starting with UNSUPPORTED: LLDB, ensuring that log files are always treated as text and avoiding issues with binary files. [1] [2] [3]

Test exclusion list cleanup:

  • Removed all previously listed excluded tests from Support/Testing/Excluded/ds2/android-x86_64.excluded, Support/Testing/Excluded/ds2/android-aarch64.excluded, and Support/Testing/Excluded/ds2/linux-aarch64.excluded, effectively re-enabling these tests in CI runs for the corresponding platforms.

These changes should result in more comprehensive test coverage on CI for Android and Linux AArch64 targets and more robust log filtering.

When dotest's harness hard-crashes (the intermittent segfault we keep
seeing on Linux/Android functionalities), whatever it wrote right
before dying can contain a stray NUL byte, and grep treats the whole
stream as binary from that point on, printing just "binary file
matches" instead of the crash text -- exactly the diagnostic output
we need to root-cause it. -a forces grep to keep treating it as text.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4b1bf46810

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@@ -1,131 +1 @@
skip

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Restore exclusions for tests that still fail or hang

When the Linux or Android test workflows run, emptying all five ds2 exclusion lists makes lldb-dotest execute hundreds of known-broken or flaky tests, even though this commit contains no corresponding debugger fixes. The prior lists include TestTypedefArray, explicitly excluded because it fails across platforms, and Android tests excluded because they occasionally hang; a failure propagates through pipefail in run-lldb-tests, while the Android jobs explicitly exit with dotest's status. Restore the known failures and remove only tests verified to pass after the trial run, otherwise routine CI will fail or time out.

Useful? React with 👍 / 👎.

Verified against PR #247's trial run (exclusion lists emptied, every
test actually executed): each dropped entry has an explicit PASS/XFAIL
line for its full Module.Class.method identifier, not just an absence
from the failure list, since several class names share generically-
named methods (test_dwarf, test_dwo, etc.) that would otherwise cause
false matches across unrelated classes.

Entries with no explicit pass or fail evidence (category-skipped, or
belonging to categories still in flight when this was written) are
left excluded rather than guessed at. linux-aarch64.excluded and
android-aarch64.excluded are untouched: aarch64 categories hadn't
finished, and the android-aarch64 sanity run's 4 exclusions all still
fail exactly as before.
@compnerd
compnerd force-pushed the compnerd/prune-exclusions branch from 4b1bf46 to 106e18b Compare July 28, 2026 17:49
compnerd added 2 commits July 28, 2026 13:37
Its exclusion entry was added for aarch64 in 52d1278 under the old
"_llgs"-suffixed method name; upstream since dropped that suffix, so
the entry silently stopped matching and the test's known flakiness
(staggered per-thread SIGSEGV timing racing a shared mutex) was free
to surface again, this time on android-x86_64. Fix the stale name and
add the current one to android-x86_64.excluded.
…e run

test_breakpoint_set_restart_dwarf/dwo (linux-x86_64) regressed: it was
dropped from the ds2 list on single-run PASS evidence, but the same
test was independently documented as flaky for other platforms in
593b920 and 52d1278 (a race between LLDB's transparent stop-and-
restart when setting a breakpoint on a running process and a genuine
visible stop). Re-exclude it, and add test_detach_resumes, which times
out waiting for an exit-file signal after detach on both linux-x86_64
and linux-i686.

TestFrameRecognizer.* and TestRestartBug.test aren't ds2 issues at all:
the former hits an LLDB FrameRecognizer scripting API mismatch, and the
latter crashes entirely inside LLDB's own mock gdb-remote test harness
(gdbclientutils.py) without ever reaching ds2. Both go in the upstream
lists instead of the ds2 ones.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 3974786460

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

TestLldbGdbServer.LldbGdbServerTestCase.test_Hg_switches_to_3_threads_launch_llgs
TestLldbGdbServer.LldbGdbServerTestCase.test_qMemoryRegionInfo_reports_heap_address_as_rw_llgs
TestLldbGdbServer.LldbGdbServerTestCase.test_qMemoryRegionInfo_reports_stack_address_as_rw_llgs
TestLldbGdbServer.LldbGdbServerTestCase.test_qSupported_fork_events_llgs

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Re-exclude the still-unfixed flaky memory-region test

In the linux-x86_64 matrix in .github/workflows/test-linux.yml, this deletion re-enables test_qMemoryRegionInfo_reports_stack_address_as_rw_llgs, even though repository commit 4e02352 records that it was excluded after being flaky in nightly runs for several weeks, and the subsequent Sources history contains no relevant memory-region fix. Fresh evidence beyond the earlier blanket exclusion comment is that the final tree selectively restores other flakes exposed by the trial run while leaving this specifically documented flake enabled based on a single PASS. When it recurs, run-lldb-tests propagates the failure through pipefail, so retain this exclusion until the flake is fixed or repeated runs establish stability.

Useful? React with 👍 / 👎.

@compnerd
compnerd merged commit 9cd4f1a into main Jul 28, 2026
42 of 43 checks passed
compnerd added a commit that referenced this pull request Jul 28, 2026
Verified against PR #247's trial run (exclusion lists emptied, every
test actually executed): each dropped entry has an explicit PASS/XFAIL
line for its full Module.Class.method identifier, not just an absence
from the failure list, since several class names share generically-
named methods (test_dwarf, test_dwo, etc.) that would otherwise cause
false matches across unrelated classes.

Entries with no explicit pass or fail evidence (category-skipped, or
belonging to categories still in flight when this was written) are
left excluded rather than guessed at. linux-aarch64.excluded and
android-aarch64.excluded are untouched: aarch64 categories hadn't
finished, and the android-aarch64 sanity run's 4 exclusions all still
fail exactly as before.
@compnerd
compnerd deleted the compnerd/prune-exclusions branch July 28, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant