Files
clang-p2996/lldb/test/Shell/Commands/command-image-dump-ast.test
David Spickett 75ec944e38 [lldb][test] Disable image dump ast test on Windows
Again I think this requires DWARF. In theory we could use the PDB
file but I suspect that PDB file is in fact empty, because we
tell clang to produce DWARF.

So on Windows, first thing is we cannot run the expressions:
(lldb) expr A(); A1(); BA1(); AB();
error: <user expression 1>:1:1: 'A' has unknown return type; cast the call to its declared return type
    1 | A(); A1(); BA1(); AB();
      | ^~~
...and so on...

And then the AST is all unknown functions:
(lldb) image dump ast
Dumping clang ast for 4 modules.
TranslationUnitDecl 0x2b3bb591870 <<invalid sloc>> <invalid sloc> <undeserialized declarations>
|-FunctionDecl 0x2b3bb592970 <<invalid sloc>> <invalid sloc> mainCRTStartup 'unsigned long (void *)'
| `-ParmVarDecl 0x2b3bb592a20 <<invalid sloc>> <invalid sloc> 'void *'
`-FunctionDecl 0x2b3bb592ad8 <<invalid sloc>> <invalid sloc> __scrt_common_main_seh 'int ()' static

So I'm just going to disable this test on Windows, it's pretty
clear why it doesn't work and we have no plans to make it work.
2025-06-03 09:33:24 +00:00

75 lines
1.6 KiB
Plaintext

# Test `image dump ast` command.
# DWARF is required to properly create the AST, and on Windows that is discarded
# and we only have PDB which doesn't work for this test.
# UNSUPPORTED: system-windows
# RUN: split-file %s %t
# RUN: %clang_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
void A() {}
void A1() {}
void BA1() {}
void AB() {}
int main() {
A();
A1();
BA1();
AB();
}
#--- commands.input
break set -n main
run
expr A(); A1(); BA1(); AB()
image dump ast
# CHECK: image dump ast
# CHECK-DAG: FunctionDecl {{.*}} main
# CHECK-DAG: FunctionDecl {{.*}} A
# CHECK-DAG: FunctionDecl {{.*}} A1
# CHECK-DAG: FunctionDecl {{.*}} BA1
# CHECK-DAG: FunctionDecl {{.*}} AB
image dump ast --filter A
# CHECK: image dump ast --filter A
# CHECK: Dumping A
# CHECK-NOT: FunctionDecl {{.*}} main
# CHECK-DAG: FunctionDecl {{.*}} A1
# CHECK-DAG: FunctionDecl {{.*}} BA1
# CHECK-DAG: FunctionDecl {{.*}} AB
image dump ast --filter A1
# CHECK: image dump ast --filter A1
# CHECK: Dumping A
# CHECK-NOT: FunctionDecl {{.*}} main
# CHECK-NOT: FunctionDecl {{.*}} AB
# CHECK-DAG: FunctionDecl {{.*}} A1
# CHECK-DAG: FunctionDecl {{.*}} BA1
image dump ast --filter ""
# CHECK: image dump ast --filter ""
# CHECK-DAG: FunctionDecl {{.*}} main
# CHECK-DAG: FunctionDecl {{.*}} AB
# CHECK-DAG: FunctionDecl {{.*}} A1
# CHECK-DAG: FunctionDecl {{.*}} BA1
image dump ast -f AB
# CHECK: image dump ast -f AB
# CHECK: Dumping AB
# CHECK-NOT: FunctionDecl {{.*}} main
# CHECK-NOT: FunctionDecl {{.*}} A1
# CHECK-NOT: FunctionDecl {{.*}} BA1
# CHECK: FunctionDecl {{.*}} AB