diff options
Diffstat (limited to 'test/Frontend')
-rw-r--r-- | test/Frontend/Inputs/rewrite-includes8.h | 5 | ||||
-rw-r--r-- | test/Frontend/rewrite-includes-invalid-hasinclude.c | 17 | ||||
-rw-r--r-- | test/Frontend/rewrite-includes-missing.c | 2 | ||||
-rw-r--r-- | test/Frontend/rewrite-includes-modules.c | 20 | ||||
-rw-r--r-- | test/Frontend/rewrite-includes.c | 19 | ||||
-rw-r--r-- | test/Frontend/rewrite-macros.c | 14 | ||||
-rw-r--r-- | test/Frontend/verify.c | 16 |
7 files changed, 87 insertions, 6 deletions
diff --git a/test/Frontend/Inputs/rewrite-includes8.h b/test/Frontend/Inputs/rewrite-includes8.h new file mode 100644 index 0000000000000..e827ad99cf376 --- /dev/null +++ b/test/Frontend/Inputs/rewrite-includes8.h @@ -0,0 +1,5 @@ +#if __has_include_next(<rewrite-includes8.h>) +#elif __has_include(<rewrite-includes8.hfail>) +#endif +#if !__has_include("rewrite-includes8.h") +#endif diff --git a/test/Frontend/rewrite-includes-invalid-hasinclude.c b/test/Frontend/rewrite-includes-invalid-hasinclude.c new file mode 100644 index 0000000000000..e32d6ad8a3ed9 --- /dev/null +++ b/test/Frontend/rewrite-includes-invalid-hasinclude.c @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -E -frewrite-includes -DFIRST -I %S/Inputs %s -o - | FileCheck -strict-whitespace %s + +#if __has_include bar.h +#endif + +#if __has_include(bar.h) +#endif + +#if __has_include(<bar.h) +#endif + +// CHECK: #if __has_include bar.h +// CHECK: #endif +// CHECK: #if __has_include(bar.h) +// CHECK: #endif +// CHECK: #if __has_include(<bar.h) +// CHECK: #endif diff --git a/test/Frontend/rewrite-includes-missing.c b/test/Frontend/rewrite-includes-missing.c index b79bbd9ca8b52..da4e209bc1f7f 100644 --- a/test/Frontend/rewrite-includes-missing.c +++ b/test/Frontend/rewrite-includes-missing.c @@ -4,4 +4,4 @@ // CHECK: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}} // CHECK-NEXT: {{^}}#include "foobar.h" // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}} -// CHECK-NEXT: {{^}}# 4 "{{.*}}rewrite-includes-missing.c" 2{{$}} +// CHECK-NEXT: {{^}}# 4 "{{.*}}rewrite-includes-missing.c"{{$}} diff --git a/test/Frontend/rewrite-includes-modules.c b/test/Frontend/rewrite-includes-modules.c new file mode 100644 index 0000000000000..783a96739ae65 --- /dev/null +++ b/test/Frontend/rewrite-includes-modules.c @@ -0,0 +1,20 @@ +// RUN: rm -rf %t +// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -x objective-c %s -F %S/../Modules/Inputs -E -frewrite-includes -o - | FileCheck %s + +int bar(); +#include <Module/Module.h> +int foo(); +#include <Module/Module.h> + +// CHECK: int bar();{{$}} +// CHECK-NEXT: #if 0 /* expanded by -frewrite-includes */{{$}} +// CHECK-NEXT: #include <Module/Module.h>{{$}} +// CHECK-NEXT: #endif /* expanded by -frewrite-includes */{{$}} +// CHECK-NEXT: @import Module; /* clang -frewrite-includes: implicit import */{{$}} +// CHECK-NEXT: # 6 "{{.*[/\\]}}rewrite-includes-modules.c"{{$}} +// CHECK-NEXT: int foo();{{$}} +// CHECK-NEXT: #if 0 /* expanded by -frewrite-includes */{{$}} +// CHECK-NEXT: #include <Module/Module.h>{{$}} +// CHECK-NEXT: #endif /* expanded by -frewrite-includes */{{$}} +// CHECK-NEXT: @import Module; /* clang -frewrite-includes: implicit import */{{$}} +// CHECK-NEXT: # 8 "{{.*[/\\]}}rewrite-includes-modules.c"{{$}} diff --git a/test/Frontend/rewrite-includes.c b/test/Frontend/rewrite-includes.c index 546a2c44af2c6..bf330a60a3d6b 100644 --- a/test/Frontend/rewrite-includes.c +++ b/test/Frontend/rewrite-includes.c @@ -18,6 +18,7 @@ A(1,2) continues */ #include "rewrite-includes7.h" #include "rewrite-includes7.h" +#include "rewrite-includes8.h" // ENDCOMPARE // CHECK: {{^}}// STARTCOMPARE{{$}} // CHECK-NEXT: {{^}}#define A(a,b) a ## b{{$}} @@ -88,6 +89,16 @@ A(1,2) // CHECK-NEXT: {{^}}#include "rewrite-includes7.h"{{$}} // CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}} // CHECK-NEXT: {{^}}# 21 "{{.*}}rewrite-includes.c"{{$}} +// CHECK-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}} +// CHECK-NEXT: {{^}}#include "rewrite-includes8.h"{{$}} +// CHECK-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}} +// CHECK-NEXT: {{^}}# 1 "{{.*[/\\]Inputs[/\\]}}rewrite-includes8.h" 1{{$}} +// CHECK-NEXT: {{^}}#if (1)/*__has_include_next(<rewrite-includes8.h>)*/{{$}} +// CHECK-NEXT: {{^}}#elif (0)/*__has_include(<rewrite-includes8.hfail>)*/{{$}} +// CHECK-NEXT: {{^}}#endif{{$}} +// CHECK-NEXT: {{^}}#if !(1)/*__has_include("rewrite-includes8.h")*/{{$}} +// CHECK-NEXT: {{^}}#endif{{$}} +// CHECK-NEXT: {{^}}# 22 "{{.*}}rewrite-includes.c" 2{{$}} // CHECK-NEXT: {{^}}// ENDCOMPARE{{$}} // CHECKNL: {{^}}// STARTCOMPARE{{$}} @@ -142,4 +153,12 @@ A(1,2) // CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}} // CHECKNL-NEXT: {{^}}#include "rewrite-includes7.h"{{$}} // CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}} +// CHECKNL-NEXT: {{^}}#if 0 /* expanded by -frewrite-includes */{{$}} +// CHECKNL-NEXT: {{^}}#include "rewrite-includes8.h"{{$}} +// CHECKNL-NEXT: {{^}}#endif /* expanded by -frewrite-includes */{{$}} +// CHECKNL-NEXT: {{^}}#if (1)/*__has_include_next(<rewrite-includes8.h>)*/{{$}} +// CHECKNL-NEXT: {{^}}#elif (0)/*__has_include(<rewrite-includes8.hfail>)*/{{$}} +// CHECKNL-NEXT: {{^}}#endif{{$}} +// CHECKNL-NEXT: {{^}}#if !(1)/*__has_include("rewrite-includes8.h")*/{{$}} +// CHECKNL-NEXT: {{^}}#endif{{$}} // CHECKNL-NEXT: {{^}}// ENDCOMPARE{{$}} diff --git a/test/Frontend/rewrite-macros.c b/test/Frontend/rewrite-macros.c index bc7479693bf50..eab66571b8d75 100644 --- a/test/Frontend/rewrite-macros.c +++ b/test/Frontend/rewrite-macros.c @@ -1,17 +1,21 @@ -// RUN: %clang_cc1 -verify -rewrite-macros -o %t %s +// RUN: %clang_cc1 %s -verify -rewrite-macros -o %t +// RUN: FileCheck %s < %t + +// Any CHECK line comments are included in the output, so we use some extra +// regex brackets to make sure we don't match the CHECK lines themselves. #define A(a,b) a ## b -// RUN: grep '12 */\*A\*/ /\*(1,2)\*/' %t +// CHECK: {{^}} 12 /*A*/ /*(1,2)*/{{$}} A(1,2) -// RUN: grep '/\*_Pragma("mark")\*/' %t +// CHECK: {{^}} /*_Pragma("mark")*/{{$}} _Pragma("mark") -// RUN: grep "//#warning eek" %t +// CHECK: /*#warning eek*/{{$}} /* expected-warning {{eek}} */ #warning eek -// RUN: grep "//#pragma mark mark" %t +// CHECK: {{^}}//#pragma mark mark{{$}} #pragma mark mark diff --git a/test/Frontend/verify.c b/test/Frontend/verify.c index 062e6bd8618f9..3d71e04980c56 100644 --- a/test/Frontend/verify.c +++ b/test/Frontend/verify.c @@ -124,3 +124,19 @@ unexpected b; // expected-error@33 1-1 {{unknown type}} // CHECK7-NEXT: Line 2: 2 // CHECK7-NEXT: 2 errors generated. #endif + +#ifdef TEST8 +// RUN: %clang_cc1 -DTEST8 -verify %s 2>&1 | FileCheck -check-prefix=CHECK8 %s + +// expected-warning@nonexistant-file:1 {{ }} +// expected-error@-1 {{file 'nonexistant-file' could not be located}} + +// expected-warning@verify-directive.h: {{ }} +// expected-error@-1 {{missing or invalid line number}} + +// expected-warning@verify-directive.h:1 {{diagnostic}} + +// CHECK8: error: 'warning' diagnostics expected but not seen: +// CHECK8-NEXT: File {{.*}}verify-directive.h Line 1 (directive at {{.*}}verify.c:137): diagnostic +// CHECK8-NEXT: 1 error generated. +#endif |