xref: /freebsd/contrib/pkgconf/tests/symlink.sh (revision a3cefe7f2b4df0f70ff92d4570ce18e517af43ec)
1*a3cefe7fSPierre Pronchery#!/usr/bin/env atf-sh
2*a3cefe7fSPierre Pronchery
3*a3cefe7fSPierre Pronchery. $(atf_get_srcdir)/test_env.sh
4*a3cefe7fSPierre Pronchery
5*a3cefe7fSPierre Proncherytests_init \
6*a3cefe7fSPierre Pronchery	pcfiledir_symlink_absolute \
7*a3cefe7fSPierre Pronchery	pcfiledir_symlink_relative
8*a3cefe7fSPierre Pronchery
9*a3cefe7fSPierre Pronchery# - We need to create a temporary subtree, since symlinks are not preserved
10*a3cefe7fSPierre Pronchery#   in "make dist".
11*a3cefe7fSPierre Pronchery# - ${srcdir} is relative and since we need to compare paths, we would have
12*a3cefe7fSPierre Pronchery#   to portably canonicalize it again, which is hard. Instead, just keep
13*a3cefe7fSPierre Pronchery#   the whole thing nested.
14*a3cefe7fSPierre Proncherypcfiledir_symlink_absolute_body()
15*a3cefe7fSPierre Pronchery{
16*a3cefe7fSPierre Pronchery	mkdir -p tmp/child
17*a3cefe7fSPierre Pronchery	cp -f "${selfdir}/lib1/pcfiledir.pc" tmp/child/
18*a3cefe7fSPierre Pronchery	ln -f -s "${PWD}/tmp/child/pcfiledir.pc" tmp/pcfiledir.pc  # absolute
19*a3cefe7fSPierre Pronchery	ln -f -s tmp/pcfiledir.pc pcfiledir.pc
20*a3cefe7fSPierre Pronchery
21*a3cefe7fSPierre Pronchery	atf_check \
22*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
23*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir.pc
24*a3cefe7fSPierre Pronchery	atf_check \
25*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
26*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix tmp/pcfiledir.pc
27*a3cefe7fSPierre Pronchery	atf_check \
28*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
29*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix tmp/child/pcfiledir.pc
30*a3cefe7fSPierre Pronchery
31*a3cefe7fSPierre Pronchery	atf_check \
32*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
33*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix "${PWD}/pcfiledir.pc"
34*a3cefe7fSPierre Pronchery	atf_check \
35*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
36*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix "${PWD}/tmp/pcfiledir.pc"
37*a3cefe7fSPierre Pronchery	atf_check \
38*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
39*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix "${PWD}/tmp/child/pcfiledir.pc"
40*a3cefe7fSPierre Pronchery
41*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="."
42*a3cefe7fSPierre Pronchery	atf_check \
43*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
44*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
45*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${PWD}"
46*a3cefe7fSPierre Pronchery	atf_check \
47*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
48*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
49*a3cefe7fSPierre Pronchery
50*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="tmp"
51*a3cefe7fSPierre Pronchery	atf_check \
52*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
53*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
54*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${PWD}/tmp"
55*a3cefe7fSPierre Pronchery	atf_check \
56*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
57*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
58*a3cefe7fSPierre Pronchery
59*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="tmp/child"
60*a3cefe7fSPierre Pronchery	atf_check \
61*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
62*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
63*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${PWD}/tmp/child"
64*a3cefe7fSPierre Pronchery	atf_check \
65*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
66*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
67*a3cefe7fSPierre Pronchery}
68*a3cefe7fSPierre Pronchery
69*a3cefe7fSPierre Proncherypcfiledir_symlink_relative_body()
70*a3cefe7fSPierre Pronchery{
71*a3cefe7fSPierre Pronchery	mkdir -p tmp/child
72*a3cefe7fSPierre Pronchery	cp -f "${selfdir}/lib1/pcfiledir.pc" tmp/child/
73*a3cefe7fSPierre Pronchery	ln -f -s child/pcfiledir.pc tmp/pcfiledir.pc  # relative
74*a3cefe7fSPierre Pronchery	ln -f -s tmp/pcfiledir.pc pcfiledir.pc
75*a3cefe7fSPierre Pronchery
76*a3cefe7fSPierre Pronchery	atf_check \
77*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
78*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir.pc
79*a3cefe7fSPierre Pronchery	atf_check \
80*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
81*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix tmp/pcfiledir.pc
82*a3cefe7fSPierre Pronchery	atf_check \
83*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
84*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix tmp/child/pcfiledir.pc
85*a3cefe7fSPierre Pronchery
86*a3cefe7fSPierre Pronchery	atf_check \
87*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
88*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix "${PWD}/pcfiledir.pc"
89*a3cefe7fSPierre Pronchery	atf_check \
90*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
91*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix "${PWD}/tmp/pcfiledir.pc"
92*a3cefe7fSPierre Pronchery	atf_check \
93*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
94*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix "${PWD}/tmp/child/pcfiledir.pc"
95*a3cefe7fSPierre Pronchery
96*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="."
97*a3cefe7fSPierre Pronchery	atf_check \
98*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
99*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
100*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${PWD}"
101*a3cefe7fSPierre Pronchery	atf_check \
102*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
103*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
104*a3cefe7fSPierre Pronchery
105*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="tmp"
106*a3cefe7fSPierre Pronchery	atf_check \
107*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
108*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
109*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${PWD}/tmp"
110*a3cefe7fSPierre Pronchery	atf_check \
111*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
112*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
113*a3cefe7fSPierre Pronchery
114*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="tmp/child"
115*a3cefe7fSPierre Pronchery	atf_check \
116*a3cefe7fSPierre Pronchery		-o inline:"tmp/child\n" \
117*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
118*a3cefe7fSPierre Pronchery	export PKG_CONFIG_PATH="${PWD}/tmp/child"
119*a3cefe7fSPierre Pronchery	atf_check \
120*a3cefe7fSPierre Pronchery		-o inline:"${PWD}/tmp/child\n" \
121*a3cefe7fSPierre Pronchery		pkgconf --variable=prefix pcfiledir
122*a3cefe7fSPierre Pronchery}
123