aboutsummaryrefslogtreecommitdiff
path: root/test cases/common/14 configure file
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2018-09-21 14:18:31 -0400
committerJussi Pakkanen <jpakkane@gmail.com>2018-10-08 21:03:32 +0300
commit38a65821454495cb48ceeb6446de46805fcd2d41 (patch)
treef032c3db9f2aa4c650cace21609e8d3b8a8b9358 /test cases/common/14 configure file
parent1e7aea65e68a43b0319a4a28908daddfec621548 (diff)
downloadmeson-38a65821454495cb48ceeb6446de46805fcd2d41.zip
meson-38a65821454495cb48ceeb6446de46805fcd2d41.tar.gz
meson-38a65821454495cb48ceeb6446de46805fcd2d41.tar.bz2
configure_file: Support taking values from a dict
Closes #4218
Diffstat (limited to 'test cases/common/14 configure file')
-rw-r--r--test cases/common/14 configure file/meson.build24
-rw-r--r--test cases/common/14 configure file/prog9.c18
2 files changed, 42 insertions, 0 deletions
diff --git a/test cases/common/14 configure file/meson.build b/test cases/common/14 configure file/meson.build
index b040c89..53b06f3 100644
--- a/test cases/common/14 configure file/meson.build
+++ b/test cases/common/14 configure file/meson.build
@@ -246,3 +246,27 @@ test('configure-file', test_file)
cdata = configuration_data()
cdata.set('invalid_value', ['array'])
+
+# Dictionaries
+
+cdata = configuration_data({
+ 'A_STRING' : '"foo"',
+ 'A_INT' : 42,
+ 'A_DEFINED' : true,
+ 'A_UNDEFINED' : false,
+})
+
+configure_file(output : 'config9a.h',
+ configuration : cdata,
+)
+
+configure_file(output : 'config9b.h',
+ configuration : {
+ 'B_STRING' : '"foo"',
+ 'B_INT' : 42,
+ 'B_DEFINED' : true,
+ 'B_UNDEFINED' : false,
+ }
+)
+
+test('test9', executable('prog9', 'prog9.c'))
diff --git a/test cases/common/14 configure file/prog9.c b/test cases/common/14 configure file/prog9.c
new file mode 100644
index 0000000..28c7354
--- /dev/null
+++ b/test cases/common/14 configure file/prog9.c
@@ -0,0 +1,18 @@
+#include <string.h>
+#include <config9a.h>
+#include <config9b.h>
+
+#if defined(A_UNDEFINED) || defined(B_UNDEFINED)
+#error "Should not be defined"
+#endif
+
+#if !defined(A_DEFINED) || !defined(B_DEFINED)
+#error "Should be defined"
+#endif
+
+int main(int argc, char **argv) {
+ return strcmp(A_STRING, "foo")
+ || strcmp(B_STRING, "foo")
+ || A_INT != 42
+ || B_INT != 42;
+}