swh:1:snp:a72e953ecd624a7df6e6196bbdd05851996c5e40
Raw File
Tip revision: 60cb4a56a6accb7ffa2a4c5bbcf3a59ccbb1ef40 authored by Dilum Aluthge on 21 February 2022, 07:05:17 UTC
Append an `@vendored` entry to the end of the default `LOAD_PATH` that expands to `$(Sys.BINDIR)/../share/julia/vendored/v$(VERSION.major).$(VERSION.minor)`
Tip revision: 60cb4a5
client.jl
# This file is a part of Julia. License is MIT: https://julialang.org/license

nested_error_expr = quote
    try
        __not_a_binding__
    catch
        1 รท 0  # Generate error while handling error
    end
end

nested_error_pattern = r"""
    ERROR: DivideError: integer division error
    Stacktrace:.*

    caused by: UndefVarError: __not_a_binding__ not defined
    Stacktrace:.*
    """s

@testset "display_error" begin
    # Display of errors which cause more than one entry on the exception stack
    excs = try
        eval(nested_error_expr)
    catch
        Base.current_exceptions()
    end
    @test typeof.(first.(excs)) == [UndefVarError, DivideError]
    @test occursin(nested_error_pattern, sprint(Base.display_error, excs))

    @test occursin(r"""
        2-element ExceptionStack:
        DivideError: integer division error
        Stacktrace:.*

        caused by: UndefVarError: __not_a_binding__ not defined
        Stacktrace:.*
        """s, sprint(show, excs))
end

@testset "Fallback REPL" begin
    # Fallback REPL should show errors with display_error
    errio = IOBuffer()
    Base.eval_user_input(errio, nested_error_expr, true)
    err_str = String(take!(errio))
    @test occursin(nested_error_pattern, err_str)
end

@testset "display_error(io, er, bt) works" begin
    errio = IOBuffer()
    Base.display_error(errio, ErrorException, [])
    err_str = String(take!(errio))
    @test occursin(r"""
        ERROR: ErrorException
        """s, err_str)
end
back to top