summaryrefslogtreecommitdiffstats
path: root/test cases/unit/97 link full name
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test cases/unit/97 link full name/.gitignore5
-rw-r--r--test cases/unit/97 link full name/libtestprovider/meson.build20
-rw-r--r--test cases/unit/97 link full name/libtestprovider/provider.c12
-rw-r--r--test cases/unit/97 link full name/proguser/meson.build11
-rw-r--r--test cases/unit/97 link full name/proguser/receiver.c18
5 files changed, 66 insertions, 0 deletions
diff --git a/test cases/unit/97 link full name/.gitignore b/test cases/unit/97 link full name/.gitignore
new file mode 100644
index 0000000..8129601
--- /dev/null
+++ b/test cases/unit/97 link full name/.gitignore
@@ -0,0 +1,5 @@
+*.a
+*.o
+a.out
+libtestprovider.a
+build
diff --git a/test cases/unit/97 link full name/libtestprovider/meson.build b/test cases/unit/97 link full name/libtestprovider/meson.build
new file mode 100644
index 0000000..128c213
--- /dev/null
+++ b/test cases/unit/97 link full name/libtestprovider/meson.build
@@ -0,0 +1,20 @@
+project('libtestprovider','c')
+
+libtestprovider=static_library('testprovider',
+ files('./provider.c'),
+ install:true,
+ c_args:['-Wall','-Werror'],
+)
+
+pkg = import('pkgconfig')
+
+
+pkg.generate(
+ name:'testprovider',
+ filebase:'libtestprovider',
+ description: 'fortest',
+ requires: [],
+ libraries_private: ['-Wl,--whole-archive'] +
+ ['-L${libdir}','-l:libtestprovider.a']+
+ ['-Wl,--no-whole-archive']
+)
diff --git a/test cases/unit/97 link full name/libtestprovider/provider.c b/test cases/unit/97 link full name/libtestprovider/provider.c
new file mode 100644
index 0000000..5e79966
--- /dev/null
+++ b/test cases/unit/97 link full name/libtestprovider/provider.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+static int g_checked = 0;
+
+static void __attribute__((constructor(101), used)) init_checked(void) {
+ g_checked=100;
+ fprintf(stdout, "inited\n");
+}
+
+
+int get_checked(void) {
+ return g_checked;
+}
diff --git a/test cases/unit/97 link full name/proguser/meson.build b/test cases/unit/97 link full name/proguser/meson.build
new file mode 100644
index 0000000..5be5bc9
--- /dev/null
+++ b/test cases/unit/97 link full name/proguser/meson.build
@@ -0,0 +1,11 @@
+project('testprovider','c')
+
+deplib = dependency('libtestprovider', static:true)
+
+dprovidertest = executable('dprovidertest',
+ files('./receiver.c'),
+ dependencies:[deplib],
+ c_args:['-Wall','-Werror'],
+)
+
+test('testprovider',dprovidertest)
diff --git a/test cases/unit/97 link full name/proguser/receiver.c b/test cases/unit/97 link full name/proguser/receiver.c
new file mode 100644
index 0000000..65e9d8e
--- /dev/null
+++ b/test cases/unit/97 link full name/proguser/receiver.c
@@ -0,0 +1,18 @@
+#include <stdio.h>
+int __attribute__((weak)) get_checked(void) {
+ return -1;
+}
+
+
+#define CHECK_VALUE (100)
+#define TEST_SUCCESS (0)
+#define TEST_FAILTURE (-1)
+
+int main(void) {
+ if (get_checked() == CHECK_VALUE) {
+ fprintf(stdout,"good\n");
+ return TEST_SUCCESS;
+ }
+ fprintf(stdout,"bad\n");
+ return TEST_FAILTURE;
+}