# XFAIL: target-windows

# Test the plugin.cplusplus.display.function-name-format setting.

# RUN: split-file %s %t
# RUN: %clangxx_host -g -gdwarf %t/main.cpp -o %t.out
# RUN: %lldb -x -b -s %t/commands.input %t.out -o exit 2>&1 \
# RUN:       | FileCheck %s

#--- main.cpp
namespace ns::ns2 {
void custom(int x) asm("_Zinvalid_mangling");
void custom(int x) {}

void bar() { custom(5); }
void foo() { bar(); }
}

int main(int argc, char const *argv[]) {
    ns::ns2::foo();
    return 0;
}

#--- commands.input
settings set plugin.cplusplus.display.function-name-format "${function.scope}${function.basename}"
settings set -f frame-format "custom-frame '${function.name-with-args}'\n"
break set -l 3 -f main.cpp

run
bt

# CHECK: custom-frame '_Zinvalid_mangling(x=5)'
# CHECK: custom-frame 'ns::ns2::bar'
# CHECK: custom-frame 'ns::ns2::foo'
