xref: /freebsd/contrib/pkgconf/tests/requires.sh (revision a3cefe7f2b4df0f70ff92d4570ce18e517af43ec)
1*a3cefe7fSPierre Pronchery#!/usr/bin/env atf-sh
2*a3cefe7fSPierre Pronchery
3*a3cefe7fSPierre Pronchery. $(atf_get_srcdir)/test_env.sh
4*a3cefe7fSPierre Pronchery
5*a3cefe7fSPierre Proncherytests_init \
6*a3cefe7fSPierre Pronchery	libs \
7*a3cefe7fSPierre Pronchery	libs_cflags \
8*a3cefe7fSPierre Pronchery	libs_static \
9*a3cefe7fSPierre Pronchery	libs_static_pure \
10*a3cefe7fSPierre Pronchery	cflags_libs_private \
11*a3cefe7fSPierre Pronchery	argv_parse2 \
12*a3cefe7fSPierre Pronchery	static_cflags \
13*a3cefe7fSPierre Pronchery	private_duplication \
14*a3cefe7fSPierre Pronchery	private_duplication_digraph \
15*a3cefe7fSPierre Pronchery	foo_bar \
16*a3cefe7fSPierre Pronchery	bar_foo \
17*a3cefe7fSPierre Pronchery	foo_metapackage_3 \
18*a3cefe7fSPierre Pronchery	libs_static2 \
19*a3cefe7fSPierre Pronchery	missing \
20*a3cefe7fSPierre Pronchery	requires_internal \
21*a3cefe7fSPierre Pronchery	requires_internal_missing \
22*a3cefe7fSPierre Pronchery	requires_internal_collision \
23*a3cefe7fSPierre Pronchery	orphaned_requires_private
24*a3cefe7fSPierre Pronchery
25*a3cefe7fSPierre Proncherylibs_body()
26*a3cefe7fSPierre Pronchery{
27*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
28*a3cefe7fSPierre Pronchery	atf_check \
29*a3cefe7fSPierre Pronchery		-o inline:"-L/test/lib -lbar -lfoo\n" \
30*a3cefe7fSPierre Pronchery		pkgconf --libs bar
31*a3cefe7fSPierre Pronchery}
32*a3cefe7fSPierre Pronchery
33*a3cefe7fSPierre Proncherylibs_cflags_body()
34*a3cefe7fSPierre Pronchery{
35*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
36*a3cefe7fSPierre Pronchery	atf_check \
37*a3cefe7fSPierre Pronchery		-o inline:"-fPIC -I/test/include/foo -L/test/lib -lbaz\n" \
38*a3cefe7fSPierre Pronchery		pkgconf --libs --cflags baz
39*a3cefe7fSPierre Pronchery}
40*a3cefe7fSPierre Pronchery
41*a3cefe7fSPierre Proncherylibs_static_body()
42*a3cefe7fSPierre Pronchery{
43*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
44*a3cefe7fSPierre Pronchery	atf_check \
45*a3cefe7fSPierre Pronchery		-o inline:"-L/test/lib -lbaz -L/test/lib -lzee -lfoo\n" \
46*a3cefe7fSPierre Pronchery		pkgconf --static --libs baz
47*a3cefe7fSPierre Pronchery}
48*a3cefe7fSPierre Pronchery
49*a3cefe7fSPierre Proncherylibs_static_pure_body()
50*a3cefe7fSPierre Pronchery{
51*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
52*a3cefe7fSPierre Pronchery	atf_check \
53*a3cefe7fSPierre Pronchery		-o inline:"-L/test/lib -lbaz -lfoo\n" \
54*a3cefe7fSPierre Pronchery		pkgconf --static --pure --libs baz
55*a3cefe7fSPierre Pronchery}
56*a3cefe7fSPierre Pronchery
57*a3cefe7fSPierre Proncheryargv_parse2_body()
58*a3cefe7fSPierre Pronchery{
59*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
60*a3cefe7fSPierre Pronchery	atf_check \
61*a3cefe7fSPierre Pronchery		-o inline:"-llib-1 -pthread /test/lib/lib2.so\n" \
62*a3cefe7fSPierre Pronchery		pkgconf --static --libs argv-parse-2
63*a3cefe7fSPierre Pronchery}
64*a3cefe7fSPierre Pronchery
65*a3cefe7fSPierre Proncherystatic_cflags_body()
66*a3cefe7fSPierre Pronchery{
67*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
68*a3cefe7fSPierre Pronchery	atf_check \
69*a3cefe7fSPierre Pronchery		-o inline:"-fPIC -I/test/include/foo -DFOO_STATIC\n" \
70*a3cefe7fSPierre Pronchery		pkgconf --static --cflags baz
71*a3cefe7fSPierre Pronchery}
72*a3cefe7fSPierre Pronchery
73*a3cefe7fSPierre Proncheryprivate_duplication_body()
74*a3cefe7fSPierre Pronchery{
75*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
76*a3cefe7fSPierre Pronchery	atf_check \
77*a3cefe7fSPierre Pronchery		-o inline:"-lprivate -lbaz -lzee -lbar -lfoo\n" \
78*a3cefe7fSPierre Pronchery		pkgconf --static --libs-only-l private-libs-duplication
79*a3cefe7fSPierre Pronchery}
80*a3cefe7fSPierre Pronchery
81*a3cefe7fSPierre Proncheryprivate_duplication_digraph_body()
82*a3cefe7fSPierre Pronchery{
83*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
84*a3cefe7fSPierre Pronchery	atf_check \
85*a3cefe7fSPierre Pronchery		-o 'match:"user:request" -> "private-libs-duplication"' \
86*a3cefe7fSPierre Pronchery		-o 'match:"private-libs-duplication" -> "bar"' \
87*a3cefe7fSPierre Pronchery		-o 'match:"private-libs-duplication" -> "baz"' \
88*a3cefe7fSPierre Pronchery		-o 'match:"bar" -> "foo"' \
89*a3cefe7fSPierre Pronchery		-o 'match:"baz" -> "foo"' \
90*a3cefe7fSPierre Pronchery		pkgconf --static --libs-only-l private-libs-duplication --digraph
91*a3cefe7fSPierre Pronchery}
92*a3cefe7fSPierre Pronchery
93*a3cefe7fSPierre Proncherybar_foo_body()
94*a3cefe7fSPierre Pronchery{
95*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
96*a3cefe7fSPierre Pronchery	atf_check \
97*a3cefe7fSPierre Pronchery		-o inline:"-lbar -lfoo\n" \
98*a3cefe7fSPierre Pronchery		pkgconf --static --libs-only-l bar foo
99*a3cefe7fSPierre Pronchery}
100*a3cefe7fSPierre Pronchery
101*a3cefe7fSPierre Proncheryfoo_bar_body()
102*a3cefe7fSPierre Pronchery{
103*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
104*a3cefe7fSPierre Pronchery	atf_check \
105*a3cefe7fSPierre Pronchery		-o inline:"-lbar -lfoo\n" \
106*a3cefe7fSPierre Pronchery		pkgconf --static --libs-only-l foo bar
107*a3cefe7fSPierre Pronchery}
108*a3cefe7fSPierre Pronchery
109*a3cefe7fSPierre Proncheryfoo_metapackage_3_body()
110*a3cefe7fSPierre Pronchery{
111*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
112*a3cefe7fSPierre Pronchery	atf_check \
113*a3cefe7fSPierre Pronchery		-o inline:"-lbar -lfoo\n" \
114*a3cefe7fSPierre Pronchery		pkgconf --static --libs-only-l foo metapackage-3
115*a3cefe7fSPierre Pronchery}
116*a3cefe7fSPierre Pronchery
117*a3cefe7fSPierre Proncherylibs_static2_body()
118*a3cefe7fSPierre Pronchery{
119*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
120*a3cefe7fSPierre Pronchery	atf_check \
121*a3cefe7fSPierre Pronchery		-o inline:"-lbar -lbar-private -L/test/lib -lfoo\n" \
122*a3cefe7fSPierre Pronchery		pkgconf --static --libs static-libs
123*a3cefe7fSPierre Pronchery}
124*a3cefe7fSPierre Pronchery
125*a3cefe7fSPierre Proncherymissing_body()
126*a3cefe7fSPierre Pronchery{
127*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${selfdir}/lib1"
128*a3cefe7fSPierre Pronchery	atf_check \
129*a3cefe7fSPierre Pronchery		-s exit:1 \
130*a3cefe7fSPierre Pronchery		-e ignore \
131*a3cefe7fSPierre Pronchery		-o ignore \
132*a3cefe7fSPierre Pronchery		pkgconf --cflags missing-require
133*a3cefe7fSPierre Pronchery}
134*a3cefe7fSPierre Pronchery
135*a3cefe7fSPierre Proncheryrequires_internal_body()
136*a3cefe7fSPierre Pronchery{
137*a3cefe7fSPierre Pronchery	atf_check \
138*a3cefe7fSPierre Pronchery		-o inline:"-lbar -lbar-private -L/test/lib -lfoo\n" \
139*a3cefe7fSPierre Pronchery		pkgconf --with-path="${selfdir}/lib1" --static --libs requires-internal
140*a3cefe7fSPierre Pronchery}
141*a3cefe7fSPierre Pronchery
142*a3cefe7fSPierre Proncheryrequires_internal_missing_body()
143*a3cefe7fSPierre Pronchery{
144*a3cefe7fSPierre Pronchery	atf_check \
145*a3cefe7fSPierre Pronchery		-s exit:1 \
146*a3cefe7fSPierre Pronchery		-e ignore \
147*a3cefe7fSPierre Pronchery		-o ignore \
148*a3cefe7fSPierre Pronchery		pkgconf --with-path="${selfdir}/lib1" --static --libs requires-internal-missing
149*a3cefe7fSPierre Pronchery}
150*a3cefe7fSPierre Pronchery
151*a3cefe7fSPierre Proncheryrequires_internal_collision_body()
152*a3cefe7fSPierre Pronchery{
153*a3cefe7fSPierre Pronchery	atf_check \
154*a3cefe7fSPierre Pronchery		-o inline:"-I/test/local/include/foo\n" \
155*a3cefe7fSPierre Pronchery		pkgconf --with-path="${selfdir}/lib1" --cflags requires-internal-collision
156*a3cefe7fSPierre Pronchery}
157*a3cefe7fSPierre Pronchery
158*a3cefe7fSPierre Proncheryorphaned_requires_private_body()
159*a3cefe7fSPierre Pronchery{
160*a3cefe7fSPierre Pronchery	atf_check \
161*a3cefe7fSPierre Pronchery		-s exit:1 \
162*a3cefe7fSPierre Pronchery		-e ignore \
163*a3cefe7fSPierre Pronchery		-o ignore \
164*a3cefe7fSPierre Pronchery		pkgconf --with-path="${selfdir}/lib1" --cflags --libs orphaned-requires-private
165*a3cefe7fSPierre Pronchery}
166*a3cefe7fSPierre Pronchery
167*a3cefe7fSPierre Proncherycflags_libs_private_body()
168*a3cefe7fSPierre Pronchery{
169*a3cefe7fSPierre Pronchery	atf_check \
170*a3cefe7fSPierre Pronchery		-o inline:"\n" \
171*a3cefe7fSPierre Pronchery		pkgconf --with-path="${selfdir}/lib1" --libs cflags-libs-private-a
172*a3cefe7fSPierre Pronchery
173*a3cefe7fSPierre Pronchery	atf_check \
174*a3cefe7fSPierre Pronchery		-o inline:"-lc\n" \
175*a3cefe7fSPierre Pronchery		pkgconf --with-path="${selfdir}/lib1" --static --libs cflags-libs-private-a
176*a3cefe7fSPierre Pronchery}
177