brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 9ead09a Raw
57 lines · cpp
1// Test profiling functionality with single file2// RUN: rm -rf %t3// RUN: mkdir %t4// RUN: echo "[{\"directory\":\".\",\"command\":\"clang++ -c %/t/test.cpp\",\"file\":\"%/t/test.cpp\"}]" | sed -e 's/\\/\\\\/g' > %t/compile_commands.json5// RUN: echo "Checks: '-*,readability-function-size'" > %t/.clang-tidy6// RUN: cp "%s" "%t/test.cpp"7// RUN: cd "%t"8// RUN: %run_clang_tidy -enable-check-profile "test.cpp" 2>&1 | FileCheck %s --check-prefix=CHECK-SINGLE9 10// CHECK-SINGLE: Running clang-tidy in {{[1-9][0-9]*}} threads for 1 files out of 1 in compilation database11// CHECK-SINGLE: ===-------------------------------------------------------------------------===12// CHECK-SINGLE-NEXT:                          clang-tidy checks profiling13// CHECK-SINGLE-NEXT: ===-------------------------------------------------------------------------===14// CHECK-SINGLE-NEXT: Total Execution Time: {{.*}} seconds ({{.*}} wall clock)15// CHECK-SINGLE-EMPTY:16// CHECK-SINGLE-NEXT:    ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---17// CHECK-SINGLE: {{[[:space:]]*[0-9]+\.[0-9]+.*%.*readability-function-size}}18// CHECK-SINGLE: {{[[:space:]]*[0-9]+\.[0-9]+.*100\.0%.*Total}}19 20// Test profiling functionality with multiple files and multiple checks21// RUN: rm -rf %t-multi22// RUN: mkdir %t-multi23// RUN: echo "[{\"directory\":\".\",\"command\":\"clang++ -c %/t-multi/test1.cpp\",\"file\":\"%/t-multi/test1.cpp\"},{\"directory\":\".\",\"command\":\"clang++ -c %/t-multi/test2.cpp\",\"file\":\"%/t-multi/test2.cpp\"}]" | sed -e 's/\\/\\\\/g' > %t-multi/compile_commands.json24// RUN: echo "Checks: '-*,readability-function-size,misc-unused-using-decls,llvm-qualified-auto'" > %t-multi/.clang-tidy25// RUN: cp "%s" "%t-multi/test1.cpp"26// RUN: cp "%s" "%t-multi/test2.cpp"27// RUN: cd "%t-multi"28// RUN: %run_clang_tidy -enable-check-profile -j 2 "test1.cpp" "test2.cpp" 2>&1 | FileCheck %s --check-prefix=CHECK-MULTIPLE29 30// CHECK-MULTIPLE: Running clang-tidy in 2 threads for 2 files out of 2 in compilation database31// CHECK-MULTIPLE: ===-------------------------------------------------------------------------===32// CHECK-MULTIPLE-NEXT:                          clang-tidy checks profiling33// CHECK-MULTIPLE-NEXT: ===-------------------------------------------------------------------------===34// CHECK-MULTIPLE-NEXT: Total Execution Time: {{.*}} seconds ({{.*}} wall clock)35// CHECK-MULTIPLE-EMPTY:36// CHECK-MULTIPLE-NEXT:    ---User Time---   --System Time--   --User+System--   ---Wall Time---  --- Name ---37// CHECK-MULTIPLE-DAG: {{[[:space:]]*[0-9]+\.[0-9]+.*%.*readability-function-size}}38// CHECK-MULTIPLE-DAG: {{[[:space:]]*[0-9]+\.[0-9]+.*%.*misc-unused-using-decls}}39// CHECK-MULTIPLE-DAG: {{[[:space:]]*[0-9]+\.[0-9]+.*%.*llvm-qualified-auto}}40// CHECK-MULTIPLE: {{[[:space:]]*[0-9]+\.[0-9]+.*100\.0%.*Total}}41 42// Test profiling functionality with no files (empty database)43// RUN: rm -rf %t-empty44// RUN: mkdir %t-empty45// RUN: echo "[]" > %t-empty/compile_commands.json46// RUN: echo "Checks: '-*'" > %t-empty/.clang-tidy47// RUN: cd "%t-empty"48// RUN: %run_clang_tidy -enable-check-profile -allow-no-checks 2>&1 | FileCheck %s --check-prefix=CHECK-EMPTY49 50// CHECK-EMPTY: Running clang-tidy in {{[1-9][0-9]*}} threads for 0 files out of 0 in compilation database51// CHECK-EMPTY: No profiling data found.52 53class A {54  A() {}55  ~A() {}56};57