summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test')
-rw-r--r--clang/test/Index/missing_vfs.c6
-rw-r--r--clang/test/VFS/Inputs/MissingVFS/a.h1
-rw-r--r--clang/test/VFS/Inputs/MissingVFS/module.modulemap3
-rw-r--r--clang/test/VFS/Inputs/MissingVFS/vfsoverlay.yaml13
-rw-r--r--clang/test/VFS/module_missing_vfs.m16
5 files changed, 39 insertions, 0 deletions
diff --git a/clang/test/Index/missing_vfs.c b/clang/test/Index/missing_vfs.c
new file mode 100644
index 00000000000..61aedd41cfa
--- /dev/null
+++ b/clang/test/Index/missing_vfs.c
@@ -0,0 +1,6 @@
+// RUN: c-index-test -test-load-source local %s -ivfsoverlay %t/does-not-exist.yaml &> %t.out
+// RUN: FileCheck -check-prefix=STDERR %s < %t.out
+// STDERR: fatal error: virtual filesystem overlay file '{{.*}}' not found
+// RUN: FileCheck %s < %t.out
+// CHECK: missing_vfs.c:[[@LINE+1]]:6: FunctionDecl=foo:[[@LINE+1]]:6
+void foo(void);
diff --git a/clang/test/VFS/Inputs/MissingVFS/a.h b/clang/test/VFS/Inputs/MissingVFS/a.h
new file mode 100644
index 00000000000..892d837b10b
--- /dev/null
+++ b/clang/test/VFS/Inputs/MissingVFS/a.h
@@ -0,0 +1 @@
+// void funcA(void);
diff --git a/clang/test/VFS/Inputs/MissingVFS/module.modulemap b/clang/test/VFS/Inputs/MissingVFS/module.modulemap
new file mode 100644
index 00000000000..bbd9d674c94
--- /dev/null
+++ b/clang/test/VFS/Inputs/MissingVFS/module.modulemap
@@ -0,0 +1,3 @@
+module A {
+ header "a.h"
+}
diff --git a/clang/test/VFS/Inputs/MissingVFS/vfsoverlay.yaml b/clang/test/VFS/Inputs/MissingVFS/vfsoverlay.yaml
new file mode 100644
index 00000000000..49517a15908
--- /dev/null
+++ b/clang/test/VFS/Inputs/MissingVFS/vfsoverlay.yaml
@@ -0,0 +1,13 @@
+{
+ 'version': 0,
+ 'ignore-non-existent-contents': false,
+ 'roots': [
+ { 'name': 'INPUT_DIR', 'type': 'directory',
+ 'contents': [
+ { 'name': 'a.h', 'type': 'file',
+ 'external-contents': 'OUT_DIR/a.h'
+ }
+ ]
+ }
+ ]
+}
diff --git a/clang/test/VFS/module_missing_vfs.m b/clang/test/VFS/module_missing_vfs.m
new file mode 100644
index 00000000000..4c4ee4dd896
--- /dev/null
+++ b/clang/test/VFS/module_missing_vfs.m
@@ -0,0 +1,16 @@
+// REQUIRES: shell
+// RUN: rm -rf %t && mkdir -p %t
+// RUN: echo "void funcA(void);" >> %t/a.h
+
+// RUN: not %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/mcp -I %S/Inputs/MissingVFS %s -fsyntax-only -ivfsoverlay %t/vfs.yaml 2>&1 | FileCheck %s -check-prefix=ERROR
+// ERROR: virtual filesystem overlay file '{{.*}}' not found
+// RUN: find %t/mcp -name "A-*.pcm" | count 1
+
+// RUN: sed -e "s:INPUT_DIR:%S/Inputs:g" -e "s:OUT_DIR:%t:g" %S/Inputs/MissingVFS/vfsoverlay.yaml > %t/vfs.yaml
+// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/mcp -I %S/Inputs/MissingVFS %s -fsyntax-only -ivfsoverlay %t/vfs.yaml
+// RUN: find %t/mcp -name "A-*.pcm" | count 1
+
+@import A;
+void test(void) {
+ funcA();
+}
OpenPOWER on IntegriCloud