]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - contrib/bmake/unit-tests/posix1.exp
Backport security fix for absolute path traversal vulnerability in bsdcpio.
[FreeBSD/stable/10.git] / contrib / bmake / unit-tests / posix1.exp
1 ${VAR} = "foo  bar baz"
2 a
3 b
4 c
5 foo baR baz,  bar baz, foo bar baz, fooadd baradd bazadd
6 mkdir -p 'dir'
7 touch 'dir/obj_1.h'
8 mkdir -p 'dir'
9 printf '#include "obj_1.h"\nconst char* obj_1 = "dir/obj_1.c";\n' \
10     >'dir/obj_1.c'
11 Local variables
12  ${@}="dir/obj_1.o" ${<}="dir/obj_1.c"
13  ${*}="dir/obj_1" ${?}="dir/obj_1.h dir/obj_1.c"
14  ${%}=""
15
16 Directory and filename parts of local variables
17  ${@D}="dir" ${@F}="obj_1.o"
18  ${<D}="dir" ${<F}="obj_1.c"
19  ${*D}="dir" ${*F}="obj_1"
20  ${?D}="dir dir" ${?F}="obj_1.h obj_1.c"
21  ${%D}="" ${%F}=""
22
23 Local variable substitutions
24  ${@:.o=}="dir/obj_1" ${<:.c=.C}="dir/obj_1.C"
25  ${*:=.h}="dir/obj_1.h" ${?:.h=.H}="dir/obj_1.H dir/obj_1.c"
26  ${%:=}=""
27
28 Target with suffix transformations
29  ${@D:=append}="dirappend"
30  ${@F:.o=.O}="obj_1.O"
31  
32  Implied source with suffix transformations
33  ${<D:r=rr}="dirr"
34  ${<F:.c=.C}="obj_1.C"
35  
36  Suffixless target with suffix transformations
37  ${*D:.=dot}="dir"
38  ${*F:.a=}="obj_1"
39  
40  Out-of-date dependencies with suffix transformations
41  ${?D:ir=}="d d"
42  ${?F:.h=.H}="obj_1.H obj_1.c"
43  
44  Member with suffix transformations
45  ${%D:.=}=""
46  ${%F:${VAR2}=${VAR}}=""
47
48 cc -c -o 'dir/obj_1.o' 'dir/obj_1.c'
49 mkdir -p '.'
50 touch 'dummy'
51 Local variables
52  ${@}="lib.a" ${<}="dir/obj_1.o"
53  ${*}="obj1" ${?}="dir/obj_1.o dummy"
54  ${%}="obj1.o"
55
56 Directory and filename parts of local variables
57  ${@D}="." ${@F}="lib.a"
58  ${<D}="dir" ${<F}="obj_1.o"
59  ${*D}="." ${*F}="obj1"
60  ${?D}="dir ." ${?F}="obj_1.o dummy"
61  ${%D}="." ${%F}="obj1.o"
62
63 Local variable substitutions
64  ${@:.o=}="lib.a" ${<:.c=.C}="dir/obj_1.o"
65  ${*:=.h}="obj1.h" ${?:.h=.H}="dir/obj_1.o dummy"
66  ${%:=}="obj1.o"
67
68 Target with suffix transformations
69  ${@D:=append}=".append"
70  ${@F:.o=.O}="lib.a"
71  
72  Implied source with suffix transformations
73  ${<D:r=rr}="dirr"
74  ${<F:.c=.C}="obj_1.o"
75  
76  Suffixless target with suffix transformations
77  ${*D:.=dot}="dot"
78  ${*F:.a=}="obj1"
79  
80  Out-of-date dependencies with suffix transformations
81  ${?D:ir=}="d ."
82  ${?F:.h=.H}="obj_1.o dummy"
83  
84  Member with suffix transformations
85  ${%D:.=}=""
86  ${%F:${VAR2}=${VAR}}="obj1foo  bar baz"
87
88 cp 'dir/obj_1.o' 'obj1.o'
89 ar -rcv 'lib.a' 'obj1.o'
90 a - obj1.o
91 rm -f 'obj1.o'
92 mkdir -p '.'
93 printf '#include "obj_2.h"\nconst char* obj_2 = "obj_2.c";\n' \
94     >'obj_2.c'
95 mkdir -p '.'
96 touch 'obj_2.h'
97 Local variables
98  ${@}="obj2.o" ${<}="obj_2.c"
99  ${*}="obj2" ${?}="obj_2.c obj_2.h dir/obj_1.h"
100  ${%}=""
101
102 Directory and filename parts of local variables
103  ${@D}="." ${@F}="obj2.o"
104  ${<D}="." ${<F}="obj_2.c"
105  ${*D}="." ${*F}="obj2"
106  ${?D}=". . dir" ${?F}="obj_2.c obj_2.h obj_1.h"
107  ${%D}="" ${%F}=""
108
109 Local variable substitutions
110  ${@:.o=}="obj2" ${<:.c=.C}="obj_2.C"
111  ${*:=.h}="obj2.h" ${?:.h=.H}="obj_2.c obj_2.H dir/obj_1.H"
112  ${%:=}=""
113
114 Target with suffix transformations
115  ${@D:=append}=".append"
116  ${@F:.o=.O}="obj2.O"
117  
118  Implied source with suffix transformations
119  ${<D:r=rr}="."
120  ${<F:.c=.C}="obj_2.C"
121  
122  Suffixless target with suffix transformations
123  ${*D:.=dot}="dot"
124  ${*F:.a=}="obj2"
125  
126  Out-of-date dependencies with suffix transformations
127  ${?D:ir=}=". . d"
128  ${?F:.h=.H}="obj_2.c obj_2.H obj_1.H"
129  
130  Member with suffix transformations
131  ${%D:.=}=""
132  ${%F:${VAR2}=${VAR}}=""
133
134 cc -c -o 'obj2.o' 'obj_2.c'
135 ar -rcv 'lib.a' 'obj2.o'
136 a - obj2.o
137 mkdir -p '.'
138 touch 'obj3.h'
139 mkdir -p 'dir'
140 touch 'dir/dummy'
141 mkdir -p '.'
142 printf '#include "obj3.h"\nconst char* obj3 = "obj3.c";\n' \
143     >'obj3.c'
144 Local variables
145  ${@}="lib.a" ${<}="obj3.c"
146  ${*}="obj3" ${?}="obj3.h dir/dummy obj3.c"
147  ${%}="obj3.o"
148
149 Directory and filename parts of local variables
150  ${@D}="." ${@F}="lib.a"
151  ${<D}="." ${<F}="obj3.c"
152  ${*D}="." ${*F}="obj3"
153  ${?D}=". dir ." ${?F}="obj3.h dummy obj3.c"
154  ${%D}="." ${%F}="obj3.o"
155
156 Local variable substitutions
157  ${@:.o=}="lib.a" ${<:.c=.C}="obj3.C"
158  ${*:=.h}="obj3.h" ${?:.h=.H}="obj3.H dir/dummy obj3.c"
159  ${%:=}="obj3.o"
160
161 Target with suffix transformations
162  ${@D:=append}=".append"
163  ${@F:.o=.O}="lib.a"
164  
165  Implied source with suffix transformations
166  ${<D:r=rr}="."
167  ${<F:.c=.C}="obj3.C"
168  
169  Suffixless target with suffix transformations
170  ${*D:.=dot}="dot"
171  ${*F:.a=}="obj3"
172  
173  Out-of-date dependencies with suffix transformations
174  ${?D:ir=}=". d ."
175  ${?F:.h=.H}="obj3.H dummy obj3.c"
176  
177  Member with suffix transformations
178  ${%D:.=}=""
179  ${%F:${VAR2}=${VAR}}="obj3foo  bar baz"
180
181 cc -c -o 'obj3.o' 'obj3.c'
182 ar -rcv 'lib.a' 'obj3.o'
183 a - obj3.o
184 rm -f 'obj3.o'
185 exit status 0