17f6e0052SPiotr Zegar // RUN: rm -rf %T/misc-header-include-cycle-headers 27f6e0052SPiotr Zegar // RUN: mkdir %T/misc-header-include-cycle-headers 37f6e0052SPiotr Zegar // RUN: cp -r %S/Inputs/header-include-cycle* %T/misc-header-include-cycle-headers/ 47f6e0052SPiotr Zegar // RUN: mkdir %T/misc-header-include-cycle-headers/system 57f6e0052SPiotr Zegar // RUN: cp -r %S/Inputs/system/header-include-cycle* %T/misc-header-include-cycle-headers/system 67f6e0052SPiotr Zegar // RUN: cp %s %T/header-include-cycle.cpp 7*5523fefbSJan Svoboda // RUN: clang-tidy %T%{fs-sep}header-include-cycle.cpp -checks='-*,misc-header-include-cycle' -header-filter=.* \ 81af159e9SPiotr Zegar // RUN: -config="{CheckOptions: {misc-header-include-cycle.IgnoredFilesList: 'header-include-cycle.self-e.hpp'}}" \ 9*5523fefbSJan Svoboda // RUN: -- -I%T%{fs-sep}misc-header-include-cycle-headers -isystem %T%{fs-sep}misc-header-include-cycle-headers%{fs-sep}system \ 10*5523fefbSJan Svoboda // RUN: --include %T%{fs-sep}misc-header-include-cycle-headers%{fs-sep}header-include-cycle.self-i.hpp | FileCheck %s \ 117f6e0052SPiotr Zegar // RUN: -check-prefix=CHECK-MESSAGES "-implicit-check-not={{note|warning|error}}:" --dump-input=fail 127f6e0052SPiotr Zegar // RUN: rm -rf %T/misc-header-include-cycle-headers 137f6e0052SPiotr Zegar 147f6e0052SPiotr Zegar #ifndef MAIN_GUARD 157f6e0052SPiotr Zegar #define MAIN_GUARD 167f6e0052SPiotr Zegar 177f6e0052SPiotr Zegar #include "header-include-cycle.cpp" 187f6e0052SPiotr Zegar // CHECK-MESSAGES: :[[@LINE-1]]:10: warning: direct self-inclusion of header file 'header-include-cycle.cpp' [misc-header-include-cycle] 197f6e0052SPiotr Zegar 207f6e0052SPiotr Zegar #include <header-include-cycle.first-d.hpp> 217f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.fourth-d.hpp:3:10: warning: circular header file dependency detected while including 'header-include-cycle.first-d.hpp', please check the include path [misc-header-include-cycle] 227f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.third-d.hpp:3:10: note: 'header-include-cycle.fourth-d.hpp' included from here 237f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.second-d.hpp:3:10: note: 'header-include-cycle.third-d.hpp' included from here 247f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.first-d.hpp:3:10: note: 'header-include-cycle.second-d.hpp' included from here 257f6e0052SPiotr Zegar // CHECK-MESSAGES: :[[@LINE-5]]:10: note: 'header-include-cycle.first-d.hpp' included from here 267f6e0052SPiotr Zegar 277f6e0052SPiotr Zegar #include <header-include-cycle.first.hpp> 287f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.fourth.hpp:2:10: warning: circular header file dependency detected while including 'header-include-cycle.first.hpp', please check the include path [misc-header-include-cycle] 297f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.third.hpp:2:10: note: 'header-include-cycle.fourth.hpp' included from here 307f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.second.hpp:2:10: note: 'header-include-cycle.third.hpp' included from here 317f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.first.hpp:2:10: note: 'header-include-cycle.second.hpp' included from here 327f6e0052SPiotr Zegar // CHECK-MESSAGES: :[[@LINE-5]]:10: note: 'header-include-cycle.first.hpp' included from here 337f6e0052SPiotr Zegar 347f6e0052SPiotr Zegar #include <header-include-cycle.self-d.hpp> 357f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.self-d.hpp:3:10: warning: direct self-inclusion of header file 'header-include-cycle.self-d.hpp' [misc-header-include-cycle] 367f6e0052SPiotr Zegar 377f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.self-i.hpp:2:10: warning: direct self-inclusion of header file 'header-include-cycle.self-i.hpp' [misc-header-include-cycle] 387f6e0052SPiotr Zegar 397f6e0052SPiotr Zegar #include <header-include-cycle.self-o.hpp> 407f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.self-n.hpp:2:10: warning: direct self-inclusion of header file 'header-include-cycle.self-n.hpp' [misc-header-include-cycle] 417f6e0052SPiotr Zegar 427f6e0052SPiotr Zegar #include <header-include-cycle.self.hpp> 437f6e0052SPiotr Zegar // CHECK-MESSAGES: header-include-cycle.self.hpp:2:10: warning: direct self-inclusion of header file 'header-include-cycle.self.hpp' [misc-header-include-cycle] 447f6e0052SPiotr Zegar 457f6e0052SPiotr Zegar // Should not warn about second include of guarded headers: 467f6e0052SPiotr Zegar #include <header-include-cycle.first.hpp> 477f6e0052SPiotr Zegar #include <header-include-cycle.first-d.hpp> 487f6e0052SPiotr Zegar #include <header-include-cycle.self.hpp> 497f6e0052SPiotr Zegar #include <header-include-cycle.self-d.hpp> 507f6e0052SPiotr Zegar #include <header-include-cycle.self-o.hpp> 517f6e0052SPiotr Zegar #include <header-include-cycle.self-n.hpp> 527f6e0052SPiotr Zegar 537f6e0052SPiotr Zegar // Should not warn about system includes 547f6e0052SPiotr Zegar #include <header-include-cycle.first-s.hpp> 557f6e0052SPiotr Zegar #include <header-include-cycle.self-s.hpp> 567f6e0052SPiotr Zegar 577f6e0052SPiotr Zegar // Should not warn about this excluded header 587f6e0052SPiotr Zegar #include <header-include-cycle.self-e.hpp> 597f6e0052SPiotr Zegar #endif 60