Skip to content

Implement the CI in GitHub Actions - #37

Open
illwieckz wants to merge 14 commits into
masterfrom
illwieckz/ci
Open

illwieckz wants to merge 14 commits into
masterfrom
illwieckz/ci

Conversation

@illwieckz

@illwieckz illwieckz commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

GitHub Actions CI.

@illwieckz
illwieckz force-pushed the illwieckz/ci branch 4 times, most recently from 8fd1166 to 47f0b13 Compare October 10, 2026 21:40
@illwieckz

Copy link
Copy Markdown
Member Author

This is built atop #35 to properly build and test dump_syms_dwarf:

@illwieckz

illwieckz commented Oct 11, 2026 •

Copy link
Copy Markdown
Member Author

I added more tests to test for the presence of dump_syms, dump_syms_dwarf and dump_syms_mac, then actually test symbolizing a bunch of binaries.

@illwieckz

illwieckz commented Oct 11, 2026 •

Copy link
Copy Markdown
Member Author

So I have a working CI for:

  • Linux amd64 GCC
  • Linux arm64 GCC
  • Linux amd64 Clang
  • Windows amd64 MinGW
  • macOS amd64 AppleClang
  • macOS arm64 AppleClang

They all build the tools and run the tests successfully (arm64 builds are done on arm64 machines). The Windows job builds and runs on Linux (MinGW and Wine).

@illwieckz
illwieckz force-pushed the illwieckz/ci branch 7 times, most recently from 58c391f to 37b3394 Compare October 11, 2026 07:51
… in STABS unit test

The failure was observed on FreeBSD. Use POSIX-compatible regex syntax on
POSIX systems while preserving compatibility with Windows' regex implementation.
…BS symbols

The failure was observed on FreeBSD, but checking whether a name is mangled
before demangling it is a platform-independent robustness improvement.
Use the value type for the alignment mask to prevent
truncation of 64-bit values on 32-bit targets.
Use uint64_t instead of size_t for raw exception addresses, since
size_t is only as wide as the host's address space. This avoids
truncating 64-bit addresses when processing 64-bit minidumps on
32-bit hosts.
…ore deterministic

- Check pthread attribute initialization, configuration, and thread
  creation errors.
- Give the helper thread a dedicated and zero-initialized stack, to make
  the test less dependent on residual stack contents when checking whether
  stacks referencing the executable are skipped.

The test checks that a helper thread that runs in libc and doesn't
reference the main executable is excluded from the minidump.
Initializing the dedicated stack should reduce the chance that stale
pointers into the executable mapping cause the stack to be included.

This changes a bit the original conditions of the test, since residual
stack contents that could affect the result are eliminated. But it
should make the test more deterministic.

This test has been observed to sometimes fail in CI, reporting
more threads with dumped stacks than expected.
@illwieckz

Copy link
Copy Markdown
Member Author

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