source: trunk/src/kmk/testcase-ifcond.kmk@ 1722

Last change on this file since 1722 was 1722, checked in by bird, 17 years ago

kmk: The rest of the if operators.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.1 KB
Line 
1# $Id: testcase-ifcond.kmk 1722 2008-09-04 05:37:47Z bird $
2## @file
3# kBuild - testcase for the if conditionals.
4#
5
6#
7# Copyright (c) 2007 knut st. osmundsen <bird-src-spam@anduin.net>
8#
9# This file is part of kBuild.
10#
11# kBuild is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# kBuild is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with kBuild; if not, write to the Free Software
23# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24#
25#
26
27
28#DEPTH = ../..
29#include $(PATH_KBUILD)/header.kmk
30
31ifeq (1,0)
32#
33# Some very basic tests.
34#
35if 1
36$(warning works)
37else
38$(error busted)
39endif
40
41if 1 || 1
42$(warning works)
43else
44$(error )
45endif
46
47if 0 || 0
48$(error )
49else
50$(warning works)
51endif
52
53if 1 || 0
54$(warning works)
55else
56$(error )
57endif
58
59if 0 || 1
60$(warning works)
61else
62$(error )
63endif
64
65if 0 || 0 || 0 || 0 || 0 || 0 || 0
66$(error )
67else
68$(warning works)
69endif
70
71if 0 || 0 || 0 || 1 || 0 || 0 || 0
72$(warning works)
73else
74$(error )
75endif
76
77if 0 && 1
78$(error )
79else
80$(warning works)
81endif
82
83if 0 || 1 && 1
84$(warning works)
85else
86$(error )
87endif
88endif # all
89
90#
91# Parenthesis
92#
93if (1)
94$(warning works)
95else
96$(error )
97endif
98
99if ((((1))))
100$(warning works)
101else
102$(error )
103endif
104
105
106#
107# Equal and Not Equal.
108#
109if 1 == 1
110$(warning works)
111else
112$(error )
113endif
114
115if 2 == 3
116$(error )
117else
118$(warning works)
119endif
120
121if 2 != 3
122$(warning works)
123else
124$(error )
125endif
126
127
128#
129# XOR
130#
131if 1 ^ 1
132$(error )
133else
134$(warning works)
135endif
136
137if 2 ^ 1 == 3
138$(warning works)
139else
140$(error )
141endif
142
143if 7 == 2 ^ 1 ^ 4
144$(warning works)
145else
146$(error )
147endif
148
149
150#
151# Logical NOT
152#
153if !1
154$(error )
155else
156$(warning works)
157endif
158
159if !42 == 0
160$(warning works)
161else
162$(error )
163endif
164
165if !0 == 1
166$(warning works)
167else
168$(error )
169endif
170
171if !!0 == 0
172$(warning works)
173else
174$(error )
175endif
176
177
178#
179# Greater than
180#
181if 1 > 0
182$(warning works)
183else
184$(error )
185endif
186
187if 1024 > 1023
188$(warning works)
189else
190$(error )
191endif
192
193if 999 > 1023
194$(error )
195else
196$(warning works)
197endif
198
199
200#
201# Greater or equal than
202#
203if 20 > 0
204$(warning works)
205else
206$(error )
207endif
208
209if 20 >= 20
210$(warning works)
211else
212$(error )
213endif
214
215if 19 >= 20
216$(error )
217else
218$(warning works)
219endif
220
221
222#
223# target()
224#
225trg_deps_only: foobar
226trg_with_cmds: foobar
227 echo $@
228
229if target trg_with_cmds
230$(warning works)
231else
232$(error works)
233endif
234
235if target trg_deps_only
236$(error works)
237else
238$(warning works)
239endif
240
241if target foobar
242$(error works)
243else
244$(warning works)
245endif
246
247
248#
249# defined()
250#
251var_defined := 1
252var_not_defined :=
253
254if defined var_defined
255$(warning works)
256else
257$(error works)
258endif
259
260if defined(var_defined)
261$(warning works)
262else
263$(error works)
264endif
265
266if defined (var_defined)
267$(warning works)
268else
269$(error works)
270endif
271
272if defined (var_not_defined)
273$(error works)
274else
275$(warning works)
276endif
277
278
279
280all_recursive:
281 $(ECHO) "if works fine"
282
Note: See TracBrowser for help on using the repository browser.