def test_merge_rust_info(): event = get_event(STACKTRACE) exc_info = get_exc_info(STACKTRACE) merge_rust_info_frames(event, {"exc_info": exc_info}) assert event["platform"] == "native" assert event["logentry"]["formatted"] == "invalid debug identifier" exception = event["exception"]["values"][0] assert exception["value"] == "invalid debug identifier" frames = exception["stacktrace"]["frames"] assert len(frames) == 8 assert frames[0]["platform"] == "python" # Top frame assert frames[7]["instruction_addr"] == "0x11163e27c" assert frames[7][ "function"] == "<failure::error::Error as core::convert::From<F>>::from" assert frames[7]["package"] == "failure" assert frames[7]["in_app"] is False assert frames[7]["filename"] == "mod.rs" assert frames[7]["lineno"] == 36 # Inlined frame, same address assert frames[7]["instruction_addr"] == "0x11163e27c" assert frames[6]["function"] == "<T as core::convert::Into<U>>::into" assert frames[6]["package"] == "core" assert frames[6]["in_app"] is False assert frames[6]["filename"] == "convert.rs" assert frames[6]["lineno"] == 456
def test_without_exception(): event = get_event(STACKTRACE) exc_info = get_exc_info(STACKTRACE) del event["exception"] merge_rust_info_frames(event, {"exc_info": exc_info}) assert event["platform"] == "python"
def test_merge_rust_info(): event = get_event(STACKTRACE) exc_info = get_exc_info(STACKTRACE) merge_rust_info_frames(event, {'exc_info': exc_info}) assert event['platform'] == 'native' assert event['logentry']['formatted'] == 'invalid debug identifier' exception = event['exception']['values'][0] assert exception['value'] == 'invalid debug identifier' frames = exception['stacktrace']['frames'] assert len(frames) == 8 assert frames[0]['platform'] == 'python' # Top frame assert frames[7]['instruction_addr'] == '0x11163e27c' assert frames[7]['function'] == '<failure::error::Error as core::convert::From<F>>::from' assert frames[7]['package'] == 'failure' assert frames[7]['in_app'] is False assert frames[7]['filename'] == 'mod.rs' assert frames[7]['lineno'] == 36 # Inlined frame, same address assert frames[7]['instruction_addr'] == '0x11163e27c' assert frames[6]['function'] == '<T as core::convert::Into<U>>::into' assert frames[6]['package'] == 'core' assert frames[6]['in_app'] is False assert frames[6]['filename'] == 'convert.rs' assert frames[6]['lineno'] == 456
def test_without_exception(): event = get_event(STACKTRACE) exc_info = get_exc_info(STACKTRACE) del event['exception'] merge_rust_info_frames(event, {'exc_info': exc_info}) assert event['platform'] == 'python'
def test_without_stacktrace(): stacktrace = "stacktrace: stack backtrace:\n\n" event = get_event(stacktrace) exc_info = get_exc_info(stacktrace) merge_rust_info_frames(event, {"exc_info": exc_info}) assert event["platform"] == "native" assert event["logentry"]["formatted"] == "invalid debug identifier" exception = event["exception"]["values"][0] assert exception["value"] == "invalid debug identifier" frames = exception["stacktrace"]["frames"] assert len(frames) == 1
def test_without_stacktrace(): stacktrace = 'stacktrace: stack backtrace:\n\n' event = get_event(stacktrace) exc_info = get_exc_info(stacktrace) merge_rust_info_frames(event, {'exc_info': exc_info}) assert event['platform'] == 'native' assert event['logentry']['formatted'] == 'invalid debug identifier' exception = event['exception']['values'][0] assert exception['value'] == 'invalid debug identifier' frames = exception['stacktrace']['frames'] assert len(frames) == 1
def test_merge_rust_info_linux(): event = get_event(STACKTRACE_SEMAPHORE_LINUX) exc_info = get_exc_info(STACKTRACE_SEMAPHORE_LINUX) merge_rust_info_frames(event, {"exc_info": exc_info}) assert event["platform"] == "native" assert event["logentry"]["formatted"] == "invalid debug identifier" exception = event["exception"]["values"][0] assert exception["value"] == "invalid debug identifier" frames = exception["stacktrace"]["frames"] assert len(frames) == 4 assert frames[0]["platform"] == "python" # Top frame assert frames[-1]["instruction_addr"] == "0x7f2d0b06e999" assert frames[-1][ "function"] == "semaphore::processing::semaphore_test_panic::{{closure}}" # Inlined frame, same address assert frames[-2]["instruction_addr"] == "0x7f2d0b03c59a" assert frames[-2]["function"] == "std::panic::catch_unwind"
def test_without_exc_info(): event = get_event(STACKTRACE) merge_rust_info_frames(event, {}) assert event["platform"] == "python"
def test_without_exc_info(): event = get_event(STACKTRACE) merge_rust_info_frames(event, {}) assert event['platform'] == 'python'