Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/sentry_envelope.c
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,10 @@ sentry__envelope_add_logs(sentry_envelope_t *envelope, sentry_value_t logs)
return NULL;
}

sentry_uuid_t event_id;
sentry__ensure_event_id(logs, &event_id);
sentry__envelope_set_event_id(envelope, &event_id);

sentry__envelope_item_set_header(
item, "type", sentry_value_new_string("log"));
sentry__envelope_item_set_header(item, "item_count",
Expand Down
32 changes: 32 additions & 0 deletions tests/test_integration_crashpad.py
Original file line number Diff line number Diff line change
Expand Up @@ -614,6 +614,38 @@ def test_crashpad_logs_on_crash(cmake, httpserver):
assert_logs(logs_envelope, 1)


@pytest.mark.skipif(not flushes_state, reason="test needs state flushing")
def test_crashpad_logs_and_session_on_crash(cmake, httpserver):
tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "crashpad"})

env = dict(os.environ, SENTRY_DSN=make_dsn(httpserver))
httpserver.expect_oneshot_request("/api/123456/minidump/").respond_with_data("OK")
httpserver.expect_request("/api/123456/envelope/").respond_with_data("OK")

with httpserver.wait(timeout=10) as waiting:
run(
tmp_path,
"sentry_example",
["log", "enable-logs", "capture-log", "crash", "start-session"],
expect_failure=True,
env=env,
)

assert waiting.result

run(tmp_path, "sentry_example", ["log", "no-setup"], env=env)

# we expect 1 envelope with the log, 1 for the crash, and 1 for the session
assert len(httpserver.log) == 3
logs_request, multipart = split_log_request_cond(httpserver.log, is_logs_envelope)
logs = logs_request.get_data()

logs_envelope = Envelope.deserialize(logs)

assert logs_envelope is not None
assert_logs(logs_envelope, 1)


def test_disable_backend(cmake, httpserver):
tmp_path = cmake(["sentry_example"], {"SENTRY_BACKEND": "crashpad"})

Expand Down
Loading