summaryrefslogtreecommitdiffstats
path: root/src/kmk/testcase-stack.kmk
blob: e6103196e9f719afbf6ee147caf9a2d182bae8ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# $Id: testcase-stack.kmk 2413 2010-09-11 17:43:04Z bird $
## @file
# kBuild - testcase for the functions.
#

#
# Copyright (c) 2007-2010 knut st. osmundsen <bird-kBuild-spamx@anduin.net>
#
# This file is part of kBuild.
#
# kBuild is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# kBuild is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with kBuild.  If not, see <http://www.gnu.org/licenses/>
#
#

DEPTH = ../..
include $(PATH_KBUILD)/header.kmk

ifneq ($(not 1),)
 $(error The 'not' function is missing)
endif
ifneq ($(eq 1,1),1)
 $(error The 'eq' function is missing)
endif

ASSERT1 = $(if $(not $(eq $(STACK1),$(1))),$(error failure: STACK1:='$(STACK1)' expected='$(1)'))
$(call stack-push,STACK1,1)
$(call ASSERT,1)
$(call stack-push,STACK1,2)
$(call ASSERT,1 2)
$(call stack-push,STACK1,3)
$(call ASSERT,1 2 3)
$(call stack-push,STACK1,4)
$(call ASSERT,1 2 3 4)
$(call stack-push,STACK1,5)
$(call ASSERT,1 2 3 4 5)
$(call stack-popv,STACK1)
$(call ASSERT,1 2 3 4)
$(call stack-push,STACK1,5)
$(call ASSERT,1 2 3 4 5)
$(call stack-popv,STACK1)
$(call ASSERT,1 2 3 4)
$(call stack-popv,STACK1)
$(call ASSERT,1 2 3)
$(call stack-push,STACK1,4)
$(call ASSERT,1 2 3 4)
$(call stack-push,STACK1,5)
$(call ASSERT,1 2 3 4 5)
top := $(call stack-top,STACK1)
$(if $(not $(eq $(top),5)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected='5'))
$(call ASSERT,1 2 3 4 5)
top := $(call stack-pop,STACK1)
$(if $(not $(eq $(top),5)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected='5'))
$(call ASSERT,1 2 3 4)
top := $(call stack-pop,STACK1)
$(if $(not $(eq $(top),4)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected='4'))
$(call ASSERT,1 2 3)
top := $(call stack-pop,STACK1)
$(if $(not $(eq $(top),3)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected='3'))
$(call ASSERT,1 2)
top := $(call stack-pop,STACK1)
$(if $(not $(eq $(top),2)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected='2'))
$(call ASSERT,1)
top := $(call stack-top,STACK1)
$(if $(not $(eq $(top),1)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected='1'))
$(call ASSERT,1)
top := $(call stack-pop,STACK1)
$(if $(not $(eq $(top),1)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected='1'))
$(call ASSERT,)
top := $(call stack-pop,STACK1)
$(if $(not $(eq $(top),)),$(error failure STACK1:='$(STACK1)' top:='$(top)' expected=''))
$(call ASSERT,)

all_recursive:
	$(ECHO) The stack works.$(STACK1)