aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2016-12-09 13:00:20 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2016-12-13 09:37:48 +0530
commit3fad3cbb8184c412061ac5543b7f7d73efa4c946 (patch)
tree69eb068a0a0f95162a7e1cd5f529c38133ff8abb
parent038b15a7b23122e06b3bb06e1c1fd6c382230a55 (diff)
downloadmeson-3fad3cbb8184c412061ac5543b7f7d73efa4c946.zip
meson-3fad3cbb8184c412061ac5543b7f7d73efa4c946.tar.gz
meson-3fad3cbb8184c412061ac5543b7f7d73efa4c946.tar.bz2
Test extracting static objects into a shared library
This was previously broken and we didn't know it. See #1169
-rw-r--r--test cases/common/128 extract all shared library/extractor.h6
-rw-r--r--test cases/common/128 extract all shared library/four.c5
-rw-r--r--test cases/common/128 extract all shared library/func1234.def5
-rw-r--r--test cases/common/128 extract all shared library/meson.build10
-rw-r--r--test cases/common/128 extract all shared library/one.c5
-rw-r--r--test cases/common/128 extract all shared library/prog.c10
-rw-r--r--test cases/common/128 extract all shared library/three.c5
-rw-r--r--test cases/common/128 extract all shared library/two.c5
8 files changed, 51 insertions, 0 deletions
diff --git a/test cases/common/128 extract all shared library/extractor.h b/test cases/common/128 extract all shared library/extractor.h
new file mode 100644
index 0000000..d0917a1
--- /dev/null
+++ b/test cases/common/128 extract all shared library/extractor.h
@@ -0,0 +1,6 @@
+#pragma once
+
+int func1();
+int func2();
+int func3();
+int func4();
diff --git a/test cases/common/128 extract all shared library/four.c b/test cases/common/128 extract all shared library/four.c
new file mode 100644
index 0000000..5ca6696
--- /dev/null
+++ b/test cases/common/128 extract all shared library/four.c
@@ -0,0 +1,5 @@
+#include"extractor.h"
+
+int func4() {
+ return 4;
+}
diff --git a/test cases/common/128 extract all shared library/func1234.def b/test cases/common/128 extract all shared library/func1234.def
new file mode 100644
index 0000000..d62c08d
--- /dev/null
+++ b/test cases/common/128 extract all shared library/func1234.def
@@ -0,0 +1,5 @@
+EXPORTS
+ func1
+ func2
+ func3
+ func4
diff --git a/test cases/common/128 extract all shared library/meson.build b/test cases/common/128 extract all shared library/meson.build
new file mode 100644
index 0000000..7c24fde
--- /dev/null
+++ b/test cases/common/128 extract all shared library/meson.build
@@ -0,0 +1,10 @@
+project('extract all', 'c', 'cpp')
+
+a = static_library('a', 'one.c', 'two.c')
+b = static_library('b', 'three.c', 'four.c')
+c = shared_library('c',
+ objects : [a.extract_all_objects(), b.extract_all_objects()],
+ vs_module_defs : 'func1234.def')
+
+e = executable('proggie', 'prog.c', link_with : c)
+test('extall', e)
diff --git a/test cases/common/128 extract all shared library/one.c b/test cases/common/128 extract all shared library/one.c
new file mode 100644
index 0000000..cfb0157
--- /dev/null
+++ b/test cases/common/128 extract all shared library/one.c
@@ -0,0 +1,5 @@
+#include"extractor.h"
+
+int func1() {
+ return 1;
+}
diff --git a/test cases/common/128 extract all shared library/prog.c b/test cases/common/128 extract all shared library/prog.c
new file mode 100644
index 0000000..57a4c64
--- /dev/null
+++ b/test cases/common/128 extract all shared library/prog.c
@@ -0,0 +1,10 @@
+#include"extractor.h"
+#include<stdio.h>
+
+int main(int argc, char **argv) {
+ if((1+2+3+4) != (func1() + func2() + func3() + func4())) {
+ printf("Arithmetic is fail.\n");
+ return 1;
+ }
+ return 0;
+}
diff --git a/test cases/common/128 extract all shared library/three.c b/test cases/common/128 extract all shared library/three.c
new file mode 100644
index 0000000..c410046
--- /dev/null
+++ b/test cases/common/128 extract all shared library/three.c
@@ -0,0 +1,5 @@
+#include"extractor.h"
+
+int func3() {
+ return 3;
+}
diff --git a/test cases/common/128 extract all shared library/two.c b/test cases/common/128 extract all shared library/two.c
new file mode 100644
index 0000000..3ece512
--- /dev/null
+++ b/test cases/common/128 extract all shared library/two.c
@@ -0,0 +1,5 @@
+#include"extractor.h"
+
+int func2() {
+ return 2;
+}