1#!/usr/bin/env atf-sh 2 3. $(atf_get_srcdir)/test_env.sh 4 5tests_init \ 6 case_sensitivity \ 7 depgraph_break_1 \ 8 depgraph_break_2 \ 9 depgraph_break_3 \ 10 define_variable \ 11 define_variable_override \ 12 variable \ 13 keep_system_libs \ 14 libs \ 15 libs_only \ 16 libs_never_mergeback \ 17 cflags_only \ 18 cflags_never_mergeback \ 19 incomplete_libs \ 20 incomplete_cflags \ 21 isystem_munge_order \ 22 isystem_munge_sysroot \ 23 idirafter_munge_order \ 24 idirafter_munge_sysroot \ 25 idirafter_ordering \ 26 modversion_common_prefix \ 27 modversion_fullpath \ 28 modversion_provides \ 29 modversion_uninstalled \ 30 modversion_one_word_expression \ 31 modversion_two_word_expression \ 32 modversion_three_word_expression \ 33 modversion_one_word_expression_no_space \ 34 modversion_one_word_expression_no_space_zero \ 35 pcpath \ 36 virtual_variable \ 37 fragment_collision \ 38 malformed_1 \ 39 malformed_quoting \ 40 explicit_sysroot \ 41 empty_tuple \ 42 solver_requires_private_debounce \ 43 billion_laughs \ 44 define_prefix_child_prefix_1 \ 45 define_prefix_child_prefix_1_env 46 47# sysroot_munge \ 48 49case_sensitivity_body() 50{ 51 export PKG_CONFIG_PATH="${selfdir}/lib1" 52 atf_check \ 53 -o inline:"3\n" \ 54 pkgconf --variable=foo case-sensitivity 55 atf_check \ 56 -o inline:"4\n" \ 57 pkgconf --variable=Foo case-sensitivity 58} 59 60depgraph_break_1_body() 61{ 62 export PKG_CONFIG_PATH="${selfdir}/lib1" 63 atf_check -s exit:1 -e ignore \ 64 pkgconf --exists --print-errors 'foo > 0.6.0 foo < 0.8.0' 65} 66 67depgraph_break_2_body() 68{ 69 export PKG_CONFIG_PATH="${selfdir}/lib1" 70 atf_check -s exit:1 -e ignore \ 71 pkgconf --exists --print-errors 'nonexisting foo <= 3' 72} 73 74depgraph_break_3_body() 75{ 76 export PKG_CONFIG_PATH="${selfdir}/lib1" 77 atf_check -s exit:1 -e ignore \ 78 pkgconf --exists --print-errors 'depgraph-break' 79} 80 81define_variable_body() 82{ 83 export PKG_CONFIG_PATH="${selfdir}/lib1" 84 atf_check -o inline:"\\\${libdir}/typelibdir\n" \ 85 pkgconf --variable=typelibdir --define-variable='libdir=\${libdir}' typelibdir 86} 87 88define_variable_override_body() 89{ 90 export PKG_CONFIG_PATH="${selfdir}/lib1" 91 atf_check -o inline:"/test\n" \ 92 pkgconf --variable=prefix --define-variable='prefix=/test' typelibdir 93} 94 95variable_body() 96{ 97 export PKG_CONFIG_PATH="${selfdir}/lib1" 98 atf_check \ 99 -o inline:"/test/include\n" \ 100 pkgconf --variable=includedir foo 101} 102 103keep_system_libs_body() 104{ 105 export PKG_CONFIG_PATH="${selfdir}/lib1" 106 eval export "$LIBRARY_PATH_ENV"="/test/local/lib" 107 atf_check \ 108 -o inline:"\n" \ 109 pkgconf --libs-only-L cflags-libs-only 110 111 atf_check \ 112 -o inline:"-L/test/local/lib\n" \ 113 pkgconf --libs-only-L --keep-system-libs cflags-libs-only 114} 115 116libs_body() 117{ 118 export PKG_CONFIG_PATH="${selfdir}/lib1" 119 atf_check \ 120 -o inline:"-L/test/local/lib -lfoo\n" \ 121 pkgconf --libs cflags-libs-only 122} 123 124libs_only_body() 125{ 126 export PKG_CONFIG_PATH="${selfdir}/lib1" 127 atf_check \ 128 -o inline:"-L/test/local/lib -lfoo\n" \ 129 pkgconf --libs-only-L --libs-only-l cflags-libs-only 130} 131 132libs_never_mergeback_body() 133{ 134 export PKG_CONFIG_PATH="${selfdir}/lib1" 135 atf_check \ 136 -o inline:"-L/test/bar/lib -lfoo1\n" \ 137 pkgconf --libs prefix-foo1 138 atf_check \ 139 -o inline:"-L/test/bar/lib -lfoo1 -lfoo2\n" \ 140 pkgconf --libs prefix-foo1 prefix-foo2 141} 142 143cflags_only_body() 144{ 145 export PKG_CONFIG_PATH="${selfdir}/lib1" 146 atf_check \ 147 -o inline:"-I/test/local/include/foo\n" \ 148 pkgconf --cflags-only-I --cflags-only-other cflags-libs-only 149} 150 151cflags_never_mergeback_body() 152{ 153 export PKG_CONFIG_PATH="${selfdir}/lib1" 154 atf_check \ 155 -o inline:"-I/test/bar/include/foo -DBAR -fPIC -DFOO\n" \ 156 pkgconf --cflags prefix-foo1 prefix-foo2 157} 158 159incomplete_libs_body() 160{ 161 export PKG_CONFIG_PATH="${selfdir}/lib1" 162 atf_check \ 163 -o inline:"\n" \ 164 pkgconf --libs incomplete 165} 166 167incomplete_cflags_body() 168{ 169 export PKG_CONFIG_PATH="${selfdir}/lib1" 170 atf_check \ 171 -o inline:"\n" \ 172 pkgconf --cflags incomplete 173} 174 175isystem_munge_order_body() 176{ 177 export PKG_CONFIG_PATH="${selfdir}/lib1" 178 atf_check \ 179 -o inline:"-isystem /opt/bad/include -isystem /opt/bad2/include\n" \ 180 pkgconf --cflags isystem 181} 182 183isystem_munge_sysroot_body() 184{ 185 export PKG_CONFIG_PATH="${selfdir}/lib1" PKG_CONFIG_SYSROOT_DIR="${selfdir}" 186 atf_check \ 187 -o match:"-isystem ${selfdir}/opt/bad/include" \ 188 pkgconf --cflags isystem 189} 190 191idirafter_munge_order_body() 192{ 193 export PKG_CONFIG_PATH="${selfdir}/lib1" 194 atf_check \ 195 -o inline:"-idirafter /opt/bad/include -idirafter /opt/bad2/include\n" \ 196 pkgconf --cflags idirafter 197} 198 199idirafter_munge_sysroot_body() 200{ 201 export PKG_CONFIG_PATH="${selfdir}/lib1" PKG_CONFIG_SYSROOT_DIR="${selfdir}" 202 atf_check \ 203 -o match:"-idirafter ${selfdir}/opt/bad/include" \ 204 pkgconf --cflags idirafter 205} 206 207idirafter_ordering_body() 208{ 209 export PKG_CONFIG_PATH="${selfdir}/lib1" 210 atf_check \ 211 -o inline:"-I/opt/bad/include1 -idirafter -I/opt/bad/include2 -I/opt/bad/include3\n" \ 212 pkgconf --cflags idirafter-ordering 213} 214 215pcpath_body() 216{ 217 export PKG_CONFIG_PATH="${selfdir}/lib2" 218 atf_check \ 219 -o inline:"-fPIC -I/test/include/foo\n" \ 220 pkgconf --cflags ${selfdir}/lib3/bar.pc 221} 222 223sysroot_munge_body() 224{ 225 sed "s|/sysroot/|${selfdir}/|g" ${selfdir}/lib1/sysroot-dir.pc > ${selfdir}/lib1/sysroot-dir-selfdir.pc 226 export PKG_CONFIG_PATH="${selfdir}/lib1" PKG_CONFIG_SYSROOT_DIR="${selfdir}" 227 atf_check \ 228 -o inline:"-L${selfdir}/lib -lfoo\n" \ 229 pkgconf --libs sysroot-dir-selfdir 230} 231 232virtual_variable_body() 233{ 234 atf_check -s exit:0 \ 235 pkgconf --exists pkg-config 236 atf_check -s exit:0 \ 237 pkgconf --exists pkgconf 238 239 atf_check -o inline:"${pcpath}\n" \ 240 pkgconf --variable=pc_path pkg-config 241 atf_check -o inline:"${pcpath}\n" \ 242 pkgconf --variable=pc_path pkgconf 243} 244 245fragment_collision_body() 246{ 247 atf_check -o inline:"-D_BAZ -D_BAR -D_FOO -D_THREAD_SAFE -pthread\n" \ 248 pkgconf --with-path="${selfdir}/lib1" --cflags fragment-collision 249} 250 251malformed_1_body() 252{ 253 atf_check -s exit:1 -o ignore \ 254 pkgconf --validate --with-path="${selfdir}/lib1" malformed-1 255} 256 257malformed_quoting_body() 258{ 259 atf_check -s exit:0 -o ignore \ 260 pkgconf --validate --with-path="${selfdir}/lib1" malformed-quoting 261} 262 263explicit_sysroot_body() 264{ 265 export PKG_CONFIG_SYSROOT_DIR=${selfdir} 266 atf_check -o inline:"${selfdir}/usr/share/test\n" \ 267 pkgconf --with-path="${selfdir}/lib1" --variable=pkgdatadir explicit-sysroot 268} 269 270empty_tuple_body() 271{ 272 atf_check -o inline:"\n" \ 273 pkgconf --with-path="${selfdir}/lib1" --cflags empty-tuple 274} 275 276solver_requires_private_debounce_body() 277{ 278 atf_check -o inline:"-I/metapackage-1 -I/metapackage-2 -lmetapackage-1 -lmetapackage-2\n" \ 279 pkgconf --with-path="${selfdir}/lib1" --cflags --libs metapackage 280} 281 282billion_laughs_body() 283{ 284 atf_check -o inline:"warning: truncating very long variable to 64KB\nwarning: truncating very long variable to 64KB\nwarning: truncating very long variable to 64KB\nwarning: truncating very long variable to 64KB\nwarning: truncating very long variable to 64KB\n" \ 285 pkgconf --with-path="${selfdir}/lib1" --validate billion-laughs 286} 287 288modversion_common_prefix_body() 289{ 290 atf_check -o inline:"foo: 1.2.3\nfoobar: 3.2.1\n" \ 291 pkgconf --with-path="${selfdir}/lib1" --modversion --verbose foo foobar 292} 293 294modversion_fullpath_body() 295{ 296 atf_check -o inline:"1.2.3\n" \ 297 pkgconf --modversion "${selfdir}/lib1/foo.pc" 298} 299 300modversion_provides_body() 301{ 302 atf_check -o inline:"1.2.3\n" \ 303 pkgconf --with-path="${selfdir}/lib1" --modversion unavailable 304} 305 306modversion_uninstalled_body() 307{ 308 atf_check -o inline:"1.2.3\n" \ 309 pkgconf --with-path="${selfdir}/lib1" --modversion omg 310} 311 312modversion_one_word_expression_body() 313{ 314 atf_check -o inline:"1.2.3\n" \ 315 pkgconf --with-path="${selfdir}/lib1" --modversion "foo > 1.0" 316} 317 318modversion_two_word_expression_body() 319{ 320 atf_check -o inline:"1.2.3\n" \ 321 pkgconf --with-path="${selfdir}/lib1" --modversion foo "> 1.0" 322} 323 324modversion_three_word_expression_body() 325{ 326 atf_check -o inline:"1.2.3\n" \ 327 pkgconf --with-path="${selfdir}/lib1" --modversion foo ">" 1.0 328} 329 330modversion_one_word_expression_no_space_body() 331{ 332 atf_check -o inline:"1.2.3\n" \ 333 pkgconf --with-path="${selfdir}/lib1" --modversion "foo >1.0" 334} 335 336modversion_one_word_expression_no_space_zero_body() 337{ 338 atf_check -o inline:"1.2.3\n" \ 339 pkgconf --with-path="${selfdir}/lib1" --modversion "foo >0.5" 340} 341 342define_prefix_child_prefix_1_body() 343{ 344 atf_check -o inline:"-I${selfdir}/lib1/include/child-prefix-1 -L${selfdir}/lib1/lib64 -lchild-prefix-1\n" \ 345 pkgconf --with-path="${selfdir}/lib1/child-prefix/pkgconfig" --define-prefix --cflags --libs child-prefix-1 346} 347 348define_prefix_child_prefix_1_env_body() 349{ 350 export PKG_CONFIG_PATH="${selfdir}/lib1/child-prefix/pkgconfig" 351 export PKG_CONFIG_RELOCATE_PATHS=1 352 atf_check -o inline:"-I${selfdir}/lib1/include/child-prefix-1 -L${selfdir}/lib1/lib64 -lchild-prefix-1\n" \ 353 pkgconf --cflags --libs child-prefix-1 354} 355