|
Packit |
db3073 |
#! /bin/sh
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# These tests check that the order of the flags in .pc files are correct
|
|
Packit |
db3073 |
# after resolving the package list. There are two things that are
|
|
Packit |
db3073 |
# critical in the current algorithm: the ordering of packages on the
|
|
Packit |
db3073 |
# command line, the ordering of packages based on Requires and the place
|
|
Packit |
db3073 |
# in the pkg-config path the .pc file was found, with packages earlier
|
|
Packit |
db3073 |
# in the path getting higher priority. There is one other factor that
|
|
Packit |
db3073 |
# makes the output currently work correctly that's only implicitly
|
|
Packit |
db3073 |
# tested here: stripping of all duplicates from the output string.
|
|
Packit |
db3073 |
#
|
|
Packit |
db3073 |
# There are 3 sets of packages here:
|
|
Packit |
db3073 |
#
|
|
Packit |
db3073 |
# 1. A typical setup where highest level package is earliest in the path
|
|
Packit |
db3073 |
# and has a straight dependency chain. 3-1 -> 2-1 -> 1-1 with 3-1 in the
|
|
Packit |
db3073 |
# first part of the user supplied path, 2-1 in the second part, and 1-1
|
|
Packit |
db3073 |
# found from the system path.
|
|
Packit |
db3073 |
#
|
|
Packit |
db3073 |
# 2. A similar setup to 1 except that now both 3-2 and 2-2 depend on
|
|
Packit |
db3073 |
# 1-2. This has a subtle effect on the algorithm when combined with the
|
|
Packit |
db3073 |
# order of the command line arguments. It only currently works because
|
|
Packit |
db3073 |
# duplicates get strip out in (hopefully) the correct order, so 1-2's
|
|
Packit |
db3073 |
# flags come out in the appropriate spot even though it was in the
|
|
Packit |
db3073 |
# package list twice.
|
|
Packit |
db3073 |
#
|
|
Packit |
db3073 |
# 3. Reverse the order of requirements so that the system level package
|
|
Packit |
db3073 |
# (1-3) depends on something in the user's path (2-3), which depends on
|
|
Packit |
db3073 |
# something earlier in the user's path (3-3). This is pretty unusual
|
|
Packit |
db3073 |
# since the user is typically overriding something higher in the stack
|
|
Packit |
db3073 |
# rather than lower, but it does illustrate the path ordering vs.
|
|
Packit |
db3073 |
# dependency ordering.
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
set -e
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
. ${srcdir}/common
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
order1="$srcdir/sort/sort:$srcdir/sort"
|
|
Packit |
db3073 |
order2="$srcdir/sort:$srcdir/sort/sort"
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
export PKG_CONFIG_PATH
|
|
Packit |
db3073 |
PKG_CONFIG_PATH="$order1"
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# Check package set -1
|
|
Packit |
db3073 |
RESULT="-DPATH3 -DPATH2 -DPATH1 -I/path3/include -I/path2/include \
|
|
Packit |
db3073 |
-I/path1/include"
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1 sort-order-2-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1 sort-order-1-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-1 sort-order-3-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-1 sort-order-1-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-1 sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-1 sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
RESULT="-L/path3/lib -L/path2/lib -L/path1/lib -Wl,-O3 -lpath3 -Wl,-O2 \
|
|
Packit |
db3073 |
-lpath2 -Wl,-O1 -lpath1"
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --libs sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1 sort-order-2-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1 sort-order-1-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --libs sort-order-2-1 sort-order-3-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --libs sort-order-2-1 sort-order-1-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --libs sort-order-1-1 sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --libs sort-order-1-1 sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# Check package set -2
|
|
Packit |
db3073 |
RESULT="-DPATH3 -DPATH2 -DPATH1 -I/path3/include -I/path2/include \
|
|
Packit |
db3073 |
-I/path1/include"
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2 sort-order-2-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2 sort-order-1-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-2 sort-order-3-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-2 sort-order-1-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-2 sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-2 sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
RESULT="-L/path3/lib -L/path2/lib -L/path1/lib -Wl,-O3 -lpath3 -Wl,-O2 \
|
|
Packit |
db3073 |
-lpath2 -Wl,-O1 -lpath1"
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --libs sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2 sort-order-2-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2 sort-order-1-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --libs sort-order-2-2 sort-order-3-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --libs sort-order-2-2 sort-order-1-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --libs sort-order-1-2 sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --libs sort-order-1-2 sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# Check package set -3
|
|
Packit |
db3073 |
RESULT="-DPATH1 -DPATH2 -DPATH3 -I/path3/include -I/path2/include \
|
|
Packit |
db3073 |
-I/path1/include"
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-3 sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-3 sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-3 sort-order-3-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-3 sort-order-1-3 sort-order-3-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3 sort-order-3-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3 sort-order-2-3 sort-order-3-3
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
RESULT="-L/path3/lib -L/path2/lib -L/path1/lib -Wl,-O1 -lpath1 -Wl,-O2 \
|
|
Packit |
db3073 |
-lpath2 -Wl,-O3 -lpath3"
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --libs sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-3-3 sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-3-3 sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --libs sort-order-2-3 sort-order-3-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-2-3 sort-order-1-3 sort-order-3-3
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3 sort-order-3-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3 sort-order-2-3 sort-order-3-3
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# Switch pkg-config path order
|
|
Packit |
db3073 |
PKG_CONFIG_PATH="$order2"
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# Check package set -1
|
|
Packit |
db3073 |
RESULT="-DPATH3 -DPATH2 -DPATH1 -I/path2/include -I/path3/include \
|
|
Packit |
db3073 |
-I/path1/include"
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1 sort-order-2-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-1 sort-order-1-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-1 sort-order-3-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-1 sort-order-1-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-1 sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-1 sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
RESULT="-L/path2/lib -L/path3/lib -L/path1/lib -Wl,-O3 -lpath3 -Wl,-O2 \
|
|
Packit |
db3073 |
-lpath2 -Wl,-O1 -lpath1"
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --libs sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1 sort-order-2-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --libs sort-order-3-1 sort-order-1-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --libs sort-order-2-1 sort-order-3-1 sort-order-1-1
|
|
Packit |
db3073 |
run_test --libs sort-order-2-1 sort-order-1-1 sort-order-3-1
|
|
Packit |
db3073 |
run_test --libs sort-order-1-1 sort-order-3-1 sort-order-2-1
|
|
Packit |
db3073 |
run_test --libs sort-order-1-1 sort-order-2-1 sort-order-3-1
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# Check package set -2
|
|
Packit |
db3073 |
RESULT="-DPATH3 -DPATH2 -DPATH1 -I/path2/include -I/path3/include \
|
|
Packit |
db3073 |
-I/path1/include"
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2 sort-order-2-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-2 sort-order-1-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-2 sort-order-3-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-2 sort-order-1-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-2 sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-2 sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
RESULT="-L/path2/lib -L/path3/lib -L/path1/lib -Wl,-O3 -lpath3 -Wl,-O2 \
|
|
Packit |
db3073 |
-lpath2 -Wl,-O1 -lpath1"
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --libs sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2 sort-order-2-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --libs sort-order-3-2 sort-order-1-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --libs sort-order-2-2 sort-order-3-2 sort-order-1-2
|
|
Packit |
db3073 |
run_test --libs sort-order-2-2 sort-order-1-2 sort-order-3-2
|
|
Packit |
db3073 |
run_test --libs sort-order-1-2 sort-order-3-2 sort-order-2-2
|
|
Packit |
db3073 |
run_test --libs sort-order-1-2 sort-order-2-2 sort-order-3-2
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
# Check package set -3
|
|
Packit |
db3073 |
RESULT="-DPATH1 -DPATH2 -DPATH3 -I/path2/include -I/path3/include \
|
|
Packit |
db3073 |
-I/path1/include"
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-3 sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-3-3 sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-3 sort-order-3-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-2-3 sort-order-1-3 sort-order-3-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3 sort-order-3-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --cflags sort-order-1-3 sort-order-2-3 sort-order-3-3
|
|
Packit |
db3073 |
|
|
Packit |
db3073 |
RESULT="-L/path2/lib -L/path3/lib -L/path1/lib -Wl,-O1 -lpath1 -Wl,-O2 \
|
|
Packit |
db3073 |
-lpath2 -Wl,-O3 -lpath3"
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --libs sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-3-3 sort-order-2-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-3-3 sort-order-1-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --libs sort-order-2-3 sort-order-3-3 sort-order-1-3
|
|
Packit |
db3073 |
run_test --libs sort-order-2-3 sort-order-1-3 sort-order-3-3
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3 sort-order-3-3 sort-order-2-3
|
|
Packit |
db3073 |
run_test --libs sort-order-1-3 sort-order-2-3 sort-order-3-3
|