llvm/clang/test/Format/dump-config-list-override.cpp

/// Check that the ForEachMacros, etc. config entries replace default values instead of appending
/// FIXME: clang-format currently start overriding at index 0 (keeping the remaining
/// values) instead of either appending or completely replacing the values.
/// This behaviour is highly confusing. For now this test documents the current state.
// RUN: clang-format -style="{BasedOnStyle: LLVM}" -dump-config %s | \
// RUN:   FileCheck %s --check-prefixes=CHECK,DEFAULT
// RUN: clang-format -style="{BasedOnStyle: LLVM, ForEachMacros: ['OVERRIDE_FOREACH']}" -dump-config %s | \
// RUN:   FileCheck %s --check-prefixes=CHECK,OVERRIDE,FIXME-SHOULD-NOT-BE
// RUN: clang-format -style="{BasedOnStyle: LLVM, ForEachMacros: ['M1', 'M2', 'M3', 'M4']}" -dump-config %s | \
// RUN:   FileCheck %s --check-prefixes=CHECK,MORE-ENTRIES-THAN-DEFAULT


// CHECK-LABEL:   ForEachMacros:
// DEFAULT-NEXT:  {{^  }}- foreach
// DEFAULT-NEXT:  {{^  }}- Q_FOREACH
// DEFAULT-NEXT:  {{^  }}- BOOST_FOREACH
// OVERRIDE-NEXT: {{^  }}- OVERRIDE_FOREACH
// FIXME-SHOULD-NOT-BE-NEXT:  {{^  }}- Q_FOREACH
// FIXME-SHOULD-NOT-BE-NEXT:  {{^  }}- BOOST_FOREACH
// MORE-ENTRIES-THAN-DEFAULT-NEXT: {{^  }}- M1
// MORE-ENTRIES-THAN-DEFAULT-NEXT: {{^  }}- M2
// MORE-ENTRIES-THAN-DEFAULT-NEXT: {{^  }}- M3
// MORE-ENTRIES-THAN-DEFAULT-NEXT: {{^  }}- M4
// CHECK-NEXT:    {{^[F-Z]}}