forked from ariadne/pkgconf
Add tests for libraries quoted with double quotes, make them pass
parent
b88808f708
commit
d0bbc686bf
|
@ -42,8 +42,10 @@ pkgconf_argv_split(const char *src, int *argc, char ***argv)
|
||||||
|
|
||||||
while (*src_iter)
|
while (*src_iter)
|
||||||
{
|
{
|
||||||
if (quote == *src_iter)
|
if (quote == *src_iter) {
|
||||||
quote = 0;
|
quote = 0;
|
||||||
|
*dst_iter++ = *src_iter;
|
||||||
|
}
|
||||||
else if (quote)
|
else if (quote)
|
||||||
{
|
{
|
||||||
if (*src_iter == '\\')
|
if (*src_iter == '\\')
|
||||||
|
@ -81,6 +83,7 @@ pkgconf_argv_split(const char *src, int *argc, char ***argv)
|
||||||
case '"':
|
case '"':
|
||||||
case '\'':
|
case '\'':
|
||||||
quote = *src_iter;
|
quote = *src_iter;
|
||||||
|
*dst_iter++ = *src_iter;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case '\\':
|
case '\\':
|
||||||
|
|
|
@ -26,9 +26,21 @@ void test_escaped()
|
||||||
pkgconf_argv_free(argv);
|
pkgconf_argv_free(argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_quoted()
|
||||||
|
{
|
||||||
|
int argc;
|
||||||
|
char **argv;
|
||||||
|
|
||||||
|
pkgconf_argv_split("\"A B\"", &argc, &argv);
|
||||||
|
assert(argc == 1);
|
||||||
|
assert(!strcmp(argv[0], "\"A B\""));
|
||||||
|
pkgconf_argv_free(argv);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
(void) argc; (void) argv;
|
(void) argc; (void) argv;
|
||||||
test_simple();
|
test_simple();
|
||||||
test_escaped();
|
test_escaped();
|
||||||
|
test_quoted();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
prefix=/test
|
||||||
|
exec_prefix=${prefix}
|
||||||
|
libdir=${prefix}/lib
|
||||||
|
includedir=${prefix}/include
|
||||||
|
|
||||||
|
Name: framework-3
|
||||||
|
Description: pkg-config with space in framework name
|
||||||
|
Version: 1.3
|
||||||
|
Libs: -F${libdir} -framework "Spacey Framework"
|
|
@ -6,5 +6,5 @@ includedir=${prefix}/include
|
||||||
Name: quotes
|
Name: quotes
|
||||||
Description: A testing pkg-config file
|
Description: A testing pkg-config file
|
||||||
Version: 1.2.3
|
Version: 1.2.3
|
||||||
Libs: -L${libdir} -lfoo\ bar
|
Libs: -L${libdir} -lfoo\ bar "-lfoobie bletch"
|
||||||
Cflags: -DQUOTED=\"bla\"
|
Cflags: -DQUOTED=\"bla\"
|
||||||
|
|
|
@ -221,7 +221,7 @@ run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --list-all | grep -q 'multiline
|
||||||
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --cflags quotes" \
|
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --cflags quotes" \
|
||||||
"-DQUOTED=\\\"bla\\\""
|
"-DQUOTED=\\\"bla\\\""
|
||||||
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs quotes" \
|
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs quotes" \
|
||||||
'-lfoo\ bar'
|
'-lfoo\ bar "-lfoobie bletch"'
|
||||||
|
|
||||||
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs nolib; echo \$?" \
|
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs nolib; echo \$?" \
|
||||||
'0'
|
'0'
|
||||||
|
@ -241,6 +241,8 @@ run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs framework-2" \
|
||||||
"-F/test/lib -framework framework-2 -framework framework-1"
|
"-F/test/lib -framework framework-2 -framework framework-1"
|
||||||
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs framework-1 framework-2" \
|
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs framework-1 framework-2" \
|
||||||
"-F/test/lib -framework framework-1 -framework framework-2"
|
"-F/test/lib -framework framework-1 -framework framework-2"
|
||||||
|
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --libs framework-3" \
|
||||||
|
'-F/test/lib -framework "Spacey Framework"'
|
||||||
|
|
||||||
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --exists --print-errors 'foo > 0.6.0 foo < 0.8.0'; echo \$?" \
|
run_test "PKG_CONFIG_PATH='${selfdir}/lib1' ${1} --exists --print-errors 'foo > 0.6.0 foo < 0.8.0'; echo \$?" \
|
||||||
'1'
|
'1'
|
||||||
|
|
Loading…
Reference in New Issue