Skip to content

chore: Integrate godot-kaboom library for crash testing#513

Open
limbonaut wants to merge 16 commits intomainfrom
feat/kaboom-lib
Open

chore: Integrate godot-kaboom library for crash testing#513
limbonaut wants to merge 16 commits intomainfrom
feat/kaboom-lib

Conversation

@limbonaut
Copy link
Collaborator

@limbonaut limbonaut commented Feb 13, 2026

Integrate godot-kaboom - a GDExtension library that triggers controlled native crashes for testing Sentry's crash reporting. The repo can be adopted in getsentry.

Adds a general-purpose FetchGithubRelease SCons tool that downloads zip assets from GitHub releases with version caching and prefix stripping. Used to fetch the pre-built kaboom addon via scons kaboom and its debug symbols via scons kaboom_symbols.

Also extracts the shared read_property() utility from sentry-cocoa's SConscript into site_scons/utils.py for reuse across tools.

Removes the internal SentrySDK._demo_helper_crash_app() method - crash triggering is now fully handled by the kaboom library. Both the demo project and CLI integration tests (crash-capture command) use Kaboom. CI fetches the addon automatically via the prepare-testing action.

limbonaut and others added 7 commits February 13, 2026 10:44
Move the duplicated get_property() function from sentry-cocoa.SConscript
and wasm_split.py into site_scons/utils.py, since site_scons is already
on the SCons Python path.

Co-Authored-By: Claude <noreply@anthropic.com>
The function reads from a file on disk, so read_property() better
communicates the I/O intent to callers.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Allows downloading kaboom debug symbols separately from the addon
binaries via `scons kaboom_symbols`.

Co-Authored-By: Claude <noreply@anthropic.com>
Support wiping the target directory before extraction (clean) and
using a custom version marker file (version_file). This enables
kaboom_symbols to track its version independently from the main
kaboom addon in the same directory.

Also bump kaboom to 0.0.1.

Co-Authored-By: Claude <noreply@anthropic.com>
Encapsulate the Command + target/source wiring inside the tool so
callers just invoke env.FetchGithubRelease() directly. Simplifies
the SConstruct kaboom targets.

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions
Copy link
Contributor

github-actions bot commented Feb 13, 2026

Semver Impact of This PR

🟢 Patch (bug fixes)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


New Features ✨

  • Support Web platform by limbonaut in #488

Internal Changes 🔧

  • (deps) Bump faraday from 1.8.0 to 1.10.5 by dependabot in #511
  • Integrate godot-kaboom library for crash testing by limbonaut in #513

🤖 This preview updates automatically when you update the PR.

@limbonaut limbonaut changed the title feat: Integrate godot-kaboom library for crash testing ref: Integrate godot-kaboom library for crash testing Feb 13, 2026
@limbonaut limbonaut changed the title ref: Integrate godot-kaboom library for crash testing chore: Integrate godot-kaboom library for crash testing Feb 13, 2026
@limbonaut limbonaut marked this pull request as ready for review February 13, 2026 10:44
Refuse to rmtree directories that resolve outside the project root
to prevent accidental deletion of unrelated paths.

Co-Authored-By: Claude <noreply@anthropic.com>
@limbonaut
Copy link
Collaborator Author

@sentry review

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

Use maxsplit=1 in read_property() to avoid silently truncating values
that contain '=' (e.g., URLs with query parameters, base64 strings).

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Need a GDExtension library that triggers various native errors

2 participants