2016-09-18 20:48:13 +00:00
#!/usr/bin/env atf-sh
. $( atf_get_srcdir) /test_env.sh
tests_init \
2016-11-05 04:07:18 +00:00
case_sensitivity \
depgraph_break_1 \
depgraph_break_2 \
depgraph_break_3 \
2016-11-05 04:30:21 +00:00
define_variable \
2022-08-16 19:42:13 +00:00
define_variable_override \
2016-09-18 20:48:13 +00:00
variable \
keep_system_libs \
libs \
libs_only \
2016-11-05 04:30:21 +00:00
libs_never_mergeback \
2016-09-18 20:48:13 +00:00
cflags_only \
2016-11-05 04:30:21 +00:00
cflags_never_mergeback \
2016-09-18 20:48:13 +00:00
incomplete_libs \
2016-11-05 04:07:18 +00:00
incomplete_cflags \
isystem_munge_order \
isystem_munge_sysroot \
2016-12-30 08:47:42 +00:00
idirafter_munge_order \
idirafter_munge_sysroot \
2016-12-31 02:25:02 +00:00
idirafter_ordering \
2023-08-19 01:16:30 +00:00
modversion_common_prefix \
modversion_fullpath \
modversion_provides \
2023-08-17 18:50:00 +00:00
modversion_uninstalled \
2023-12-01 20:20:39 +00:00
modversion_one_word_expression \
modversion_two_word_expression \
modversion_three_word_expression \
2024-07-02 18:14:05 +00:00
modversion_one_word_expression_no_space \
modversion_one_word_expression_no_space_zero \
2016-11-05 04:30:21 +00:00
pcpath \
2017-05-05 06:40:09 +00:00
virtual_variable \
2017-05-20 04:43:47 +00:00
fragment_collision \
2017-07-16 22:33:42 +00:00
malformed_1 \
2017-09-20 02:35:18 +00:00
malformed_quoting \
2018-07-29 00:45:57 +00:00
explicit_sysroot \
2022-08-08 08:56:53 +00:00
empty_tuple \
2023-01-20 22:11:00 +00:00
solver_requires_private_debounce \
2023-08-04 08:44:57 +00:00
billion_laughs
2016-11-05 04:07:18 +00:00
2021-07-25 02:39:29 +00:00
# sysroot_munge \
2016-11-05 04:07:18 +00:00
case_sensitivity_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
-o inline:"3\n" \
pkgconf --variable= foo case -sensitivity
atf_check \
-o inline:"4\n" \
pkgconf --variable= Foo case -sensitivity
}
depgraph_break_1_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check -s exit:1 -e ignore \
pkgconf --exists --print-errors 'foo > 0.6.0 foo < 0.8.0'
}
depgraph_break_2_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check -s exit:1 -e ignore \
pkgconf --exists --print-errors 'nonexisting foo <= 3'
}
depgraph_break_3_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check -s exit:1 -e ignore \
pkgconf --exists --print-errors 'depgraph-break'
}
2016-09-18 20:48:13 +00:00
2016-11-05 04:30:21 +00:00
define_variable_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check -o inline:"\\\${libdir}/typelibdir\n" \
pkgconf --variable= typelibdir --define-variable= 'libdir=\${libdir}' typelibdir
}
2022-08-16 19:42:13 +00:00
define_variable_override_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check -o inline:"/test\n" \
pkgconf --variable= prefix --define-variable= 'prefix=/test' typelibdir
}
2016-09-18 20:48:13 +00:00
variable_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
-o inline:"/test/include\n" \
pkgconf --variable= includedir foo
}
keep_system_libs_body( )
{
2018-04-03 05:46:35 +00:00
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
eval export " $LIBRARY_PATH_ENV " = "/test/local/lib"
2017-01-19 02:33:18 +00:00
atf_check \
2017-02-07 16:11:12 +00:00
-o inline:"\n" \
2017-01-19 02:33:18 +00:00
pkgconf --libs-only-L cflags-libs-only
2016-09-18 20:48:13 +00:00
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-L/test/local/lib\n" \
2016-09-18 20:48:13 +00:00
pkgconf --libs-only-L --keep-system-libs cflags-libs-only
}
libs_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-L/test/local/lib -lfoo\n" \
2016-09-18 20:48:13 +00:00
pkgconf --libs cflags-libs-only
}
libs_only_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-L/test/local/lib -lfoo\n" \
2016-09-18 20:48:13 +00:00
pkgconf --libs-only-L --libs-only-l cflags-libs-only
}
2016-11-05 04:30:21 +00:00
libs_never_mergeback_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-L/test/bar/lib -lfoo1\n" \
2021-06-23 12:09:05 +00:00
pkgconf --libs prefix-foo1
2016-11-05 04:30:21 +00:00
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-L/test/bar/lib -lfoo1 -lfoo2\n" \
2016-11-05 04:30:21 +00:00
pkgconf --libs prefix-foo1 prefix-foo2
}
2016-09-18 20:48:13 +00:00
cflags_only_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-I/test/local/include/foo\n" \
2016-09-18 20:48:13 +00:00
pkgconf --cflags-only-I --cflags-only-other cflags-libs-only
}
2016-11-05 04:30:21 +00:00
cflags_never_mergeback_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-I/test/bar/include/foo -DBAR -fPIC -DFOO\n" \
2016-11-05 04:30:21 +00:00
pkgconf --cflags prefix-foo1 prefix-foo2
}
2016-09-18 20:48:13 +00:00
incomplete_libs_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2017-02-07 16:11:12 +00:00
-o inline:"\n" \
2016-09-18 20:48:13 +00:00
pkgconf --libs incomplete
}
incomplete_cflags_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2017-02-07 16:11:12 +00:00
-o inline:"\n" \
2016-09-18 20:48:13 +00:00
pkgconf --cflags incomplete
}
2016-11-05 04:07:18 +00:00
isystem_munge_order_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-isystem /opt/bad/include -isystem /opt/bad2/include\n" \
2016-11-05 04:07:18 +00:00
pkgconf --cflags isystem
}
isystem_munge_sysroot_body( )
{
2021-06-23 12:09:05 +00:00
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 " PKG_CONFIG_SYSROOT_DIR = " ${ selfdir } "
2016-11-05 04:07:18 +00:00
atf_check \
2021-06-23 12:09:05 +00:00
-o match:" -isystem ${ selfdir } /opt/bad/include " \
2016-11-05 04:07:18 +00:00
pkgconf --cflags isystem
}
2016-12-30 08:47:42 +00:00
idirafter_munge_order_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-idirafter /opt/bad/include -idirafter /opt/bad2/include\n" \
2016-12-30 08:47:42 +00:00
pkgconf --cflags idirafter
}
idirafter_munge_sysroot_body( )
{
2021-06-23 12:09:05 +00:00
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 " PKG_CONFIG_SYSROOT_DIR = " ${ selfdir } "
2016-12-30 08:47:42 +00:00
atf_check \
2021-06-23 12:09:05 +00:00
-o match:" -idirafter ${ selfdir } /opt/bad/include " \
2016-12-30 08:47:42 +00:00
pkgconf --cflags idirafter
}
2016-12-31 02:25:02 +00:00
idirafter_ordering_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-I/opt/bad/include1 -idirafter -I/opt/bad/include2 -I/opt/bad/include3\n" \
2016-12-31 02:25:02 +00:00
pkgconf --cflags idirafter-ordering
}
2016-11-05 04:07:18 +00:00
pcpath_body( )
{
export PKG_CONFIG_PATH = " ${ selfdir } /lib2 "
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:"-fPIC -I/test/include/foo\n" \
2021-06-23 12:09:05 +00:00
pkgconf --cflags ${ selfdir } /lib3/bar.pc
2016-11-05 04:07:18 +00:00
}
2016-11-05 04:30:21 +00:00
sysroot_munge_body( )
{
2021-06-23 12:09:05 +00:00
sed " s|/sysroot/| ${ selfdir } /|g " ${ selfdir } /lib1/sysroot-dir.pc > ${ selfdir } /lib1/sysroot-dir-selfdir.pc
export PKG_CONFIG_PATH = " ${ selfdir } /lib1 " PKG_CONFIG_SYSROOT_DIR = " ${ selfdir } "
2016-11-05 04:30:21 +00:00
atf_check \
2023-01-21 20:22:03 +00:00
-o inline:" -L ${ selfdir } /lib -lfoo\n " \
2021-06-23 12:09:05 +00:00
pkgconf --libs sysroot-dir-selfdir
2016-11-05 04:30:21 +00:00
}
2017-01-23 05:21:51 +00:00
virtual_variable_body( )
{
atf_check -s exit:0 \
pkgconf --exists pkg-config
atf_check -s exit:0 \
pkgconf --exists pkgconf
atf_check -o inline:" ${ pcpath } \n " \
pkgconf --variable= pc_path pkg-config
atf_check -o inline:" ${ pcpath } \n " \
pkgconf --variable= pc_path pkgconf
}
2017-05-05 06:40:09 +00:00
fragment_collision_body( )
{
2023-01-21 21:43:23 +00:00
atf_check -o inline:"-D_BAZ -D_BAR -D_FOO -D_THREAD_SAFE -pthread\n" \
2017-05-05 06:40:09 +00:00
pkgconf --with-path= " ${ selfdir } /lib1 " --cflags fragment-collision
}
2017-05-20 04:43:47 +00:00
malformed_1_body( )
{
atf_check -s exit:1 -o ignore \
pkgconf --validate --with-path= " ${ selfdir } /lib1 " malformed-1
}
2017-07-16 22:33:42 +00:00
2017-09-20 02:35:18 +00:00
malformed_quoting_body( )
{
atf_check -s exit:0 -o ignore \
pkgconf --validate --with-path= " ${ selfdir } /lib1 " malformed-quoting
}
2017-07-16 22:33:42 +00:00
explicit_sysroot_body( )
{
2021-06-23 12:09:05 +00:00
export PKG_CONFIG_SYSROOT_DIR = ${ selfdir }
atf_check -o inline:" ${ selfdir } /usr/share/test\n " \
2017-07-16 22:33:42 +00:00
pkgconf --with-path= " ${ selfdir } /lib1 " --variable= pkgdatadir explicit-sysroot
}
2018-07-29 00:45:57 +00:00
empty_tuple_body( )
{
atf_check -o inline:"\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --cflags empty-tuple
}
2022-08-08 08:56:53 +00:00
solver_requires_private_debounce_body( )
{
2023-01-21 20:22:03 +00:00
atf_check -o inline:"-I/metapackage-1 -I/metapackage-2 -lmetapackage-1 -lmetapackage-2\n" \
2022-08-08 08:56:53 +00:00
pkgconf --with-path= " ${ selfdir } /lib1 " --cflags --libs metapackage
}
2023-01-20 22:11:00 +00:00
billion_laughs_body( )
{
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" \
pkgconf --with-path= " ${ selfdir } /lib1 " --validate billion-laughs
}
2023-08-17 18:50:00 +00:00
2023-08-19 01:16:30 +00:00
modversion_common_prefix_body( )
{
atf_check -o inline:"foo: 1.2.3\nfoobar: 3.2.1\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion --verbose foo foobar
}
modversion_fullpath_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --modversion " ${ selfdir } /lib1/foo.pc "
}
modversion_provides_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion unavailable
}
2023-08-17 18:50:00 +00:00
modversion_uninstalled_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion omg
}
2023-12-01 20:20:39 +00:00
modversion_one_word_expression_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion "foo > 1.0"
}
modversion_two_word_expression_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion foo "> 1.0"
}
modversion_three_word_expression_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion foo ">" 1.0
}
2024-07-02 18:14:05 +00:00
modversion_one_word_expression_no_space_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion "foo >1.0"
}
modversion_one_word_expression_no_space_zero_body( )
{
atf_check -o inline:"1.2.3\n" \
pkgconf --with-path= " ${ selfdir } /lib1 " --modversion "foo >0.5"
}