11a8dd742SSam McCall #include "foobar.h" 21a8dd742SSam McCall 31a8dd742SSam McCall int x = foo(); 41a8dd742SSam McCall 51a8dd742SSam McCall // RUN: clang-include-cleaner -print=changes %s -- -I%S/Inputs/ | FileCheck --check-prefix=CHANGE %s 61a8dd742SSam McCall // CHANGE: - "foobar.h" 71a8dd742SSam McCall // CHANGE-NEXT: + "foo.h" 81a8dd742SSam McCall 91a8dd742SSam McCall // RUN: clang-include-cleaner -remove=0 -print=changes %s -- -I%S/Inputs/ | FileCheck --check-prefix=INSERT %s 101a8dd742SSam McCall // INSERT-NOT: - "foobar.h" 111a8dd742SSam McCall // INSERT: + "foo.h" 121a8dd742SSam McCall 131a8dd742SSam McCall // RUN: clang-include-cleaner -insert=0 -print=changes %s -- -I%S/Inputs/ | FileCheck --check-prefix=REMOVE %s 141a8dd742SSam McCall // REMOVE: - "foobar.h" 151a8dd742SSam McCall // REMOVE-NOT: + "foo.h" 161a8dd742SSam McCall 17507d766dSHaojian Wu // RUN: clang-include-cleaner -print=changes %s --ignore-headers="foobar\.h,foo\.h" -- -I%S/Inputs/ | FileCheck --match-full-lines --allow-empty --check-prefix=IGNORE %s 18507d766dSHaojian Wu // IGNORE-NOT: - "foobar.h" 19507d766dSHaojian Wu // IGNORE-NOT: + "foo.h" 20507d766dSHaojian Wu 21507d766dSHaojian Wu // RUN: clang-include-cleaner -print=changes %s --ignore-headers="foobar.*\.h" -- -I%S/Inputs/ | FileCheck --match-full-lines --allow-empty --check-prefix=IGNORE2 %s 22507d766dSHaojian Wu // IGNORE2-NOT: - "foobar.h" 23507d766dSHaojian Wu // IGNORE2: + "foo.h" 24507d766dSHaojian Wu 257e3fb372Skadir çetinkaya // RUN: clang-include-cleaner -print=changes %s --ignore-headers= -- -I%S/Inputs/ | FileCheck --allow-empty --check-prefix=IGNORE3 %s 267e3fb372Skadir çetinkaya // IGNORE3: - "foobar.h" 277e3fb372Skadir çetinkaya // IGNORE3: + "foo.h" 287e3fb372Skadir çetinkaya 293de5d8e1SSam McCall // RUN: clang-include-cleaner -print=changes %s --only-headers="foo\.h" -- -I%S/Inputs/ | FileCheck --match-full-lines --allow-empty --check-prefix=ONLY %s 303de5d8e1SSam McCall // ONLY-NOT: - "foobar.h" 313de5d8e1SSam McCall // ONLY: + "foo.h" 323de5d8e1SSam McCall 337e3fb372Skadir çetinkaya // RUN: clang-include-cleaner -print=changes %s --only-headers= -- -I%S/Inputs/ | FileCheck --allow-empty --check-prefix=ONLY2 %s 347e3fb372Skadir çetinkaya // ONLY2: - "foobar.h" 357e3fb372Skadir çetinkaya // ONLY2: + "foo.h" 367e3fb372Skadir çetinkaya 371a8dd742SSam McCall // RUN: clang-include-cleaner -print %s -- -I%S/Inputs/ | FileCheck --match-full-lines --check-prefix=PRINT %s 381a8dd742SSam McCall // PRINT: #include "foo.h" 391a8dd742SSam McCall // PRINT-NOT: {{^}}#include "foobar.h"{{$}} 401a8dd742SSam McCall 411a8dd742SSam McCall // RUN: cp %s %t.cpp 421a8dd742SSam McCall // RUN: clang-include-cleaner -edit %t.cpp -- -I%S/Inputs/ 431a8dd742SSam McCall // RUN: FileCheck --match-full-lines --check-prefix=EDIT %s < %t.cpp 441a8dd742SSam McCall // EDIT: #include "foo.h" 451a8dd742SSam McCall // EDIT-NOT: {{^}}#include "foobar.h"{{$}} 46507d766dSHaojian Wu 47507d766dSHaojian Wu // RUN: cp %s %t.cpp 48507d766dSHaojian Wu // RUN: clang-include-cleaner -edit --ignore-headers="foobar\.h,foo\.h" %t.cpp -- -I%S/Inputs/ 49507d766dSHaojian Wu // RUN: FileCheck --match-full-lines --check-prefix=EDIT2 %s < %t.cpp 50507d766dSHaojian Wu // EDIT2-NOT: {{^}}#include "foo.h"{{$}} 51*4cda28c1SByoungchan Lee 52*4cda28c1SByoungchan Lee // RUN: rm -rf %t.dir && mkdir -p %t.dir 53*4cda28c1SByoungchan Lee // RUN: cp %s %t.cpp 54*4cda28c1SByoungchan Lee // RUN: echo "[{\"directory\":\"%t.dir\",\"file\":\"../%{t:stem}.tmp.cpp\",\"command\":\":clang++ -I%S/Inputs/ ../%{t:stem}.tmp.cpp\"}]" | sed -e 's/\\/\\\\/g' > %t.dir/compile_commands.json 55*4cda28c1SByoungchan Lee // RUN: pushd %t.dir 56*4cda28c1SByoungchan Lee // RUN: clang-include-cleaner -p %{t:stem}.tmp.dir -edit ../%{t:stem}.tmp.cpp 57*4cda28c1SByoungchan Lee // RUN: popd 58*4cda28c1SByoungchan Lee // RUN: FileCheck --match-full-lines --check-prefix=EDIT3 %s < %t.cpp 59*4cda28c1SByoungchan Lee // EDIT3: #include "foo.h" 60*4cda28c1SByoungchan Lee // EDIT3-NOT: {{^}}#include "foobar.h"{{$}} 61