aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorVili Väinölä <vilivainola@gmail.com>2022-06-01 18:31:33 +0300
committerDylan Baker <dylan@pnwbakers.com>2022-06-01 12:32:53 -0700
commit18e2f8b2b3c7b3cb29e7d7ff037b175411f47f25 (patch)
tree8377bb862185c15f028b29389447e9482a7fd8e2 /test cases
parenteec7b2c359fe1ab2945c67465848294996bd2f9d (diff)
downloadmeson-18e2f8b2b3c7b3cb29e7d7ff037b175411f47f25.zip
meson-18e2f8b2b3c7b3cb29e7d7ff037b175411f47f25.tar.gz
meson-18e2f8b2b3c7b3cb29e7d7ff037b175411f47f25.tar.bz2
Fix sandbox violation when using subproject as a symlink
Fix "Tried to grab file outside current (sub)project" error when subproject exists within a source tree but it is used through a symlink. Using subprojects as symlinks is very useful feature when migrating an existing codebase to meson that all sources do not need to be immediately moved to subprojects folder.
Diffstat (limited to 'test cases')
-rw-r--r--test cases/unit/106 subproject symlink/main.c6
-rw-r--r--test cases/unit/106 subproject symlink/meson.build8
-rw-r--r--test cases/unit/106 subproject symlink/symlinked_subproject/meson.build3
-rw-r--r--test cases/unit/106 subproject symlink/symlinked_subproject/src.c4
4 files changed, 21 insertions, 0 deletions
diff --git a/test cases/unit/106 subproject symlink/main.c b/test cases/unit/106 subproject symlink/main.c
new file mode 100644
index 0000000..62bd4b4
--- /dev/null
+++ b/test cases/unit/106 subproject symlink/main.c
@@ -0,0 +1,6 @@
+extern int foo(void);
+
+int main(void)
+{
+ return foo();
+}
diff --git a/test cases/unit/106 subproject symlink/meson.build b/test cases/unit/106 subproject symlink/meson.build
new file mode 100644
index 0000000..51c78c7
--- /dev/null
+++ b/test cases/unit/106 subproject symlink/meson.build
@@ -0,0 +1,8 @@
+project('foo', 'c')
+
+symlinked_subproject = subproject('symlinked_subproject')
+
+executable('foo',
+ sources : 'main.c',
+ dependencies : symlinked_subproject.get_variable('dep')
+)
diff --git a/test cases/unit/106 subproject symlink/symlinked_subproject/meson.build b/test cases/unit/106 subproject symlink/symlinked_subproject/meson.build
new file mode 100644
index 0000000..61440c7
--- /dev/null
+++ b/test cases/unit/106 subproject symlink/symlinked_subproject/meson.build
@@ -0,0 +1,3 @@
+project('symlinked_subproject', 'c', version : '1.0.0')
+
+dep = declare_dependency(sources : 'src.c')
diff --git a/test cases/unit/106 subproject symlink/symlinked_subproject/src.c b/test cases/unit/106 subproject symlink/symlinked_subproject/src.c
new file mode 100644
index 0000000..97d7ad1
--- /dev/null
+++ b/test cases/unit/106 subproject symlink/symlinked_subproject/src.c
@@ -0,0 +1,4 @@
+int foo(void)
+{
+ return 0;
+}