diff options
| author | Aleksey Filippov <alekseyf@google.com> | 2018-02-18 07:28:43 +0000 |
|---|---|---|
| committer | Jussi Pakkanen <jpakkane@gmail.com> | 2018-02-27 20:43:02 +0200 |
| commit | d040ce4165aab1ba32c96bbc35c2fad10b26664f (patch) | |
| tree | 00d530d772806e17017b79da9f12f4e6c9fa485a | |
| parent | 8c3a1afde07daa25eb93b04f356616793f2a1eb3 (diff) | |
| download | meson-d040ce4165aab1ba32c96bbc35c2fad10b26664f.tar.gz | |
Refactor 'common/145 whole archive' test case
Former test is extremely hard to follow,
target names are inconsistent with directory names,
test case mixes up 2 separate testing scenarios,
names are meaningless. In order to fix this
provides comments what each command is doing and why,
renamed targets into descriptive and longer names,
made names consistent with contents so that it is easier
to follow test logic without looking up source code.
| -rw-r--r-- | test cases/common/145 whole archive/allofme/meson.build | 1 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/exe/meson.build | 3 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/exe2/meson.build | 2 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/func1.c (renamed from test cases/common/145 whole archive/libfile.c) | 0 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/func2.c (renamed from test cases/common/145 whole archive/dylib.c) | 0 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/meson.build | 22 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/sh_func2_linked_func1/meson.build | 3 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/sh_only_link_whole/meson.build | 1 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/shlib/meson.build | 4 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/st_func1/meson.build | 1 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/st_func2/meson.build | 1 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/stlib/meson.build | 1 | ||||
| -rw-r--r-- | test cases/common/145 whole archive/wholeshlib/meson.build | 1 |
13 files changed, 23 insertions, 17 deletions
diff --git a/test cases/common/145 whole archive/allofme/meson.build b/test cases/common/145 whole archive/allofme/meson.build deleted file mode 100644 index f5c2027b5..000000000 --- a/test cases/common/145 whole archive/allofme/meson.build +++ /dev/null @@ -1 +0,0 @@ -stlib = static_library('allofme', '../libfile.c') diff --git a/test cases/common/145 whole archive/exe/meson.build b/test cases/common/145 whole archive/exe/meson.build index f47a24627..91d298dce 100644 --- a/test cases/common/145 whole archive/exe/meson.build +++ b/test cases/common/145 whole archive/exe/meson.build @@ -1,2 +1 @@ -exe = executable('prog', '../prog.c', - link_with : dylib) +exe = executable('prog', '../prog.c', link_with : sh_func2_linked_func1) diff --git a/test cases/common/145 whole archive/exe2/meson.build b/test cases/common/145 whole archive/exe2/meson.build index 5365f03b6..918486402 100644 --- a/test cases/common/145 whole archive/exe2/meson.build +++ b/test cases/common/145 whole archive/exe2/meson.build @@ -1 +1 @@ -exe2 = executable('prog2', '../prog.c', link_with : dylib2) +exe2 = executable('prog2', '../prog.c', link_with : sh_only_link_whole) diff --git a/test cases/common/145 whole archive/libfile.c b/test cases/common/145 whole archive/func1.c index b2690a07f..b2690a07f 100644 --- a/test cases/common/145 whole archive/libfile.c +++ b/test cases/common/145 whole archive/func1.c diff --git a/test cases/common/145 whole archive/dylib.c b/test cases/common/145 whole archive/func2.c index 9e287a4db..9e287a4db 100644 --- a/test cases/common/145 whole archive/dylib.c +++ b/test cases/common/145 whole archive/func2.c diff --git a/test cases/common/145 whole archive/meson.build b/test cases/common/145 whole archive/meson.build index 617ae0340..56da157bb 100644 --- a/test cases/common/145 whole archive/meson.build +++ b/test cases/common/145 whole archive/meson.build @@ -10,15 +10,23 @@ if cc.get_id() == 'msvc' endif endif -subdir('allofme') -subdir('shlib') +# Test 1: link_whole keeps all symbols +# Make static func1 +subdir('st_func1') +# Make shared func2 linking whole func1 archive +subdir('sh_func2_linked_func1') +# Link exe with shared library only subdir('exe') - +# Test that both func1 and func2 are accessible from shared library test('prog', exe) -# link_whole only -subdir('stlib') -subdir('wholeshlib') +# Test 2: link_whole can be used instead of source list, see #2180 +# Make static func2 +subdir('st_func2') +# Link both func1 and func2 into same shared library +# which does not have any sources other than 2 static libraries +subdir('sh_only_link_whole') +# Link exe2 with shared library only subdir('exe2') - +# Test that both func1 and func2 are accessible from shared library test('prog2', exe2) diff --git a/test cases/common/145 whole archive/sh_func2_linked_func1/meson.build b/test cases/common/145 whole archive/sh_func2_linked_func1/meson.build new file mode 100644 index 000000000..2858f65ec --- /dev/null +++ b/test cases/common/145 whole archive/sh_func2_linked_func1/meson.build @@ -0,0 +1,3 @@ +# Nothing in func2.c uses func1, so the linker would throw it +# away and thus linking the exe would fail. +sh_func2_linked_func1 = shared_library('sh_func2_linked_func1', '../func2.c', link_whole : st_func1) diff --git a/test cases/common/145 whole archive/sh_only_link_whole/meson.build b/test cases/common/145 whole archive/sh_only_link_whole/meson.build new file mode 100644 index 000000000..64baabd5d --- /dev/null +++ b/test cases/common/145 whole archive/sh_only_link_whole/meson.build @@ -0,0 +1 @@ +sh_only_link_whole = shared_library('sh_only_link_whole', link_whole : [st_func1, st_func2]) diff --git a/test cases/common/145 whole archive/shlib/meson.build b/test cases/common/145 whole archive/shlib/meson.build deleted file mode 100644 index 34a1b78a9..000000000 --- a/test cases/common/145 whole archive/shlib/meson.build +++ /dev/null @@ -1,4 +0,0 @@ -# Nothing in dylib.c uses func1, so the linker would throw it -# away and thus linking the exe would fail. -dylib = shared_library('shlib', '../dylib.c', - link_whole : stlib) diff --git a/test cases/common/145 whole archive/st_func1/meson.build b/test cases/common/145 whole archive/st_func1/meson.build new file mode 100644 index 000000000..c84d78109 --- /dev/null +++ b/test cases/common/145 whole archive/st_func1/meson.build @@ -0,0 +1 @@ +st_func1 = static_library('st_func1', '../func1.c') diff --git a/test cases/common/145 whole archive/st_func2/meson.build b/test cases/common/145 whole archive/st_func2/meson.build new file mode 100644 index 000000000..2732f96ec --- /dev/null +++ b/test cases/common/145 whole archive/st_func2/meson.build @@ -0,0 +1 @@ +st_func2 = static_library('st_func2', '../func2.c') diff --git a/test cases/common/145 whole archive/stlib/meson.build b/test cases/common/145 whole archive/stlib/meson.build deleted file mode 100644 index 07a434e06..000000000 --- a/test cases/common/145 whole archive/stlib/meson.build +++ /dev/null @@ -1 +0,0 @@ -static = static_library('static', '../dylib.c') diff --git a/test cases/common/145 whole archive/wholeshlib/meson.build b/test cases/common/145 whole archive/wholeshlib/meson.build deleted file mode 100644 index 69a1995ce..000000000 --- a/test cases/common/145 whole archive/wholeshlib/meson.build +++ /dev/null @@ -1 +0,0 @@ -dylib2 = shared_library('link_whole', link_whole : [stlib, static]) |
