aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2022-06-14 09:01:04 -0400
committerEli Schwartz <eschwartz93@gmail.com>2022-06-14 16:01:20 -0400
commitd85a9733e6af45c9e3111f23ecec9e614eaeaeeb (patch)
treee87cb782752a2ab8af84986f2ef47787d628ff48 /test cases
parente559ea0b7c96f2436d82ed9f94fe78d7c2aaef1d (diff)
downloadmeson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.zip
meson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.tar.gz
meson-d85a9733e6af45c9e3111f23ecec9e614eaeaeeb.tar.bz2
Fix crash when a reconfigure adds a new subproject
When a subproject is disabled on the initial configuration we should not add it into self.coredata.initialized_subprojects because that will prevent calling self.coredata.init_builtins() on a reconfigure if the subproject gets enabled. Fixes: #10225.
Diffstat (limited to 'test cases')
-rw-r--r--test cases/unit/107 new subproject on reconfigure/meson.build3
-rw-r--r--test cases/unit/107 new subproject on reconfigure/meson_options.txt1
-rw-r--r--test cases/unit/107 new subproject on reconfigure/subprojects/foo/foo.c2
-rw-r--r--test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build8
4 files changed, 14 insertions, 0 deletions
diff --git a/test cases/unit/107 new subproject on reconfigure/meson.build b/test cases/unit/107 new subproject on reconfigure/meson.build
new file mode 100644
index 0000000..7342c9a
--- /dev/null
+++ b/test cases/unit/107 new subproject on reconfigure/meson.build
@@ -0,0 +1,3 @@
+project('New subproject on reconfigure')
+
+subproject('foo', required: get_option('foo'))
diff --git a/test cases/unit/107 new subproject on reconfigure/meson_options.txt b/test cases/unit/107 new subproject on reconfigure/meson_options.txt
new file mode 100644
index 0000000..b3dd683
--- /dev/null
+++ b/test cases/unit/107 new subproject on reconfigure/meson_options.txt
@@ -0,0 +1 @@
+option('foo', type: 'feature', value: 'disabled')
diff --git a/test cases/unit/107 new subproject on reconfigure/subprojects/foo/foo.c b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/foo.c
new file mode 100644
index 0000000..1edf995
--- /dev/null
+++ b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/foo.c
@@ -0,0 +1,2 @@
+void foo(void);
+void foo(void) {}
diff --git a/test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build
new file mode 100644
index 0000000..2a6e30a
--- /dev/null
+++ b/test cases/unit/107 new subproject on reconfigure/subprojects/foo/meson.build
@@ -0,0 +1,8 @@
+project('foo', 'c')
+
+# Ensure that builtin options have been initialised.
+assert(get_option('default_library') == 'shared')
+
+# This uses default_library option internally and used to cause a crash:
+# https://github.com/mesonbuild/meson/issues/10225.
+library('foo', 'foo.c')