llvm-project/lldb/test/Shell/Settings/TestFrameFormatName.test
David Spickett 974ee967ad [lldb][test] Add more context for frame format test
This test is unsupported due to problems I assume with debug info,
but even if we solve that, the formatting elements aren't working
properly.

https://github.com/llvm/llvm-project/issues/143149
2025-06-06 14:42:12 +00:00

60 lines
2.2 KiB
Plaintext

# Not run on Windows because we are not able to break on all the required functions.
# Even if we could, function.name* formatting also does not work correctly:
# https://github.com/llvm/llvm-project/issues/143149
# UNSUPPORTED: system-windows
# Test different name formats.
# RUN: %build %S/Inputs/names.cpp --std c++17 -o %t.out
# RUN: split-file %s %t
#--- name_with_args.input
# RUN: %lldb -b -s %t/name_with_args.input %t.out | FileCheck %s --check-prefix=NAME_WITH_ARGS
settings set -f frame-format "frame ${function.name-with-args}\n"
break set -n foo
break set -n operator<<
break set -n returns_func_ptr
break set -n inlined_foo
run
# NAME_WITH_ARGS: frame int ns::foo<int ()>(t={{.*}})
c
# NAME_WITH_ARGS: frame int ns::foo<int ()>(str="bar")
c
# NAME_WITH_ARGS: frame int ns::foo<(anonymous namespace)::$_0>(t=(anonymous namespace)::(unnamed class) @ {{.*}})
c
# NAME_WITH_ARGS: frame int ns::foo<int (*)()>(t=({{.*}}`(anonymous namespace)::anon_bar() at {{.*}}))
c
# NAME_WITH_ARGS: frame int ns::foo<void (Foo::*)(int (*)(int)) const noexcept>(str="method")
c
# NAME_WITH_ARGS: frame detail::Quux<double> (* (*ns::returns_func_ptr<int>((null)={{.*}}))(int))(float)
c
# NAME_WITH_ARGS: frame void Foo::foo<int (*)()>(this={{.*}}, arg=({{.*}}`(anonymous namespace)::anon_bar() at {{.*}}))
c
# NAME_WITH_ARGS: frame void Foo::operator<<<1>(this={{.*}}, (null)=0)
c
# NAME_WITH_ARGS: frame detail::Quux<double> (* (*Foo::returns_func_ptr<int>(this={{.*}}, (null)={{.*}}))(int))(float) const
c
# NAME_WITH_ARGS: frame inlined_foo(str="bar")
q
#--- name.input
# RUN: %lldb -b -s %t/name.input %t.out | FileCheck %s --check-prefix=NAME
settings set -f frame-format "frame ${function.name}\n"
break set -n inlined_foo
run
# NAME: frame inlined_foo(char const*)
#--- name_without_args.input
# RUN: %lldb -b -s %t/name_without_args.input %t.out | FileCheck %s --check-prefix=NAME_WITHOUT_ARGS
settings set -f frame-format "frame ${function.name-without-args}\n"
break set -n inlined_foo
run
# NAME_WITHOUT_ARGS: frame inlined_foo
#--- mangled_name.input
# RUN: %lldb -b -s %t/mangled_name.input %t.out | FileCheck %s --check-prefix=MANGLED_NAME
settings set -f frame-format "frame ${function.mangled-name}\n"
break set -n inlined_foo
run
# MANGLED_NAME: frame _Z11inlined_fooPKc