Add test to exercise broken command option handling

The ancient bundled popt mishandles some cases of option parsing.

http://lists.freedesktop.org/archives/pkg-config/2010-March/000508.html

Add a test program to exercise it. This should encourage people to use
an external popt until we have a better fix.
This commit is contained in:
Dan Nicholson 2010-06-16 16:49:52 -07:00
parent 68763c08de
commit a465eacaf6
2 changed files with 35 additions and 1 deletions

View file

@ -1,7 +1,8 @@
TESTS = check-cflags check-libs check-define-variable \
check-libs-private check-requires-private check-includedir \
check-conflicts check-missing check-idirafter check-whitespace
check-conflicts check-missing check-idirafter check-whitespace \
check-cmd-options
EXTRA_DIST = $(TESTS) common simple.pc requires-test.pc public-dep.pc \
private-dep.pc includedir.pc missing-requires-private.pc \

33
check/check-cmd-options Executable file
View file

@ -0,0 +1,33 @@
#! /bin/sh
# Make sure we're POSIX
if [ "$PKG_CONFIG_SHELL_IS_POSIX" != "1" ]; then
PKG_CONFIG_SHELL_IS_POSIX=1 PATH=`getconf PATH` exec sh $0 "$@"
fi
set -e
. ${srcdir}/common
# all of these should fail, but when '=' or ' ' aren't used consistently
# between the two options, broken popt sets the version to compare to be
# "a=b"
ARGS="--define-variable=a=b --atleast-pkgconfig-version=999.999"
EXPECT_RETURN=1
RESULT=""
run_test
ARGS="--define-variable=a=b --atleast-pkgconfig-version 999.999"
EXPECT_RETURN=1
RESULT=""
run_test
ARGS="--define-variable a=b --atleast-pkgconfig-version 999.999"
EXPECT_RETURN=1
RESULT=""
run_test
ARGS="--define-variable a=b --atleast-pkgconfig-version=999.999"
EXPECT_RETURN=1
RESULT=""
run_test