msm: consistency for equally ranked keys
[platform/upstream/rpm.git] / tests / rpmmacro.at
1 #    rpmmacro.at: test rpm macros
2 #
3 AT_BANNER([RPM macros])
4
5 # ------------------------------
6 AT_SETUP([simple rpm --eval])
7 AT_KEYWORDS([macros])
8 AT_CHECK([
9 runroot rpm --define "this that" --eval '%{this}'
10 ],
11 [0],
12 [that
13 ])
14 AT_CLEANUP
15
16 AT_SETUP([simple true conditional rpm --eval])
17 AT_KEYWORDS([macros])
18 AT_CHECK([
19 runroot rpm --define "this that" --eval '%{?this}'
20 ],
21 [0],
22 [that
23 ])
24 AT_CLEANUP
25
26 AT_SETUP([simple false conditional rpm --eval])
27 AT_KEYWORDS([macros])
28 AT_CHECK([
29 runroot rpm --define "this that" --eval '%{?that}'
30 ],
31 [0],
32 [
33 ])
34 AT_CLEANUP
35
36 AT_SETUP([uncompress macro])
37 AT_KEYWORDS([macros])
38 AT_CHECK([
39 runroot rpm \
40     --define "__gzip /my/bin/gzip" \
41     --eval "%{uncompress:/data/SOURCES/hello-2.0.tar.gz}"
42 ],
43 [0],
44 [/my/bin/gzip -dc /data/SOURCES/hello-2.0.tar.gz
45 ])
46 AT_CLEANUP
47
48 AT_SETUP([basename macro])
49 AT_KEYWORDS([macros])
50 AT_CHECK([
51 runroot rpm \
52     --eval "%{basename:/data/SOURCES/hello-2.0.tar.gz}"
53 ],
54 [0],
55 [hello-2.0.tar.gz
56 ])
57 AT_CLEANUP
58
59 AT_SETUP([suffix macro])
60 AT_KEYWORDS([macros])
61 AT_CHECK([
62 runroot rpm \
63     --eval "%{suffix:/data/SOURCES/hello-2.0.tar.gz}"
64 ],
65 [0],
66 [gz
67 ])
68 AT_CLEANUP
69
70 AT_SETUP([url2path macro])
71 AT_KEYWORDS([macros])
72 AT_CHECK([
73 runroot rpm \
74     --eval "%{url2path:http://hello.org/releases/hello-2.0.tar.gz}"
75 ],
76 [0],
77 [/releases/hello-2.0.tar.gz
78 ])
79 AT_CLEANUP
80
81 AT_SETUP([shell expansion])
82 AT_KEYWORDS([macros])
83 AT_CHECK([
84 runroot rpm \
85     --eval "%(echo foo)"
86 ],
87 [0],
88 [foo
89 ])
90 AT_CLEANUP
91
92 AT_SETUP([simple lua --eval])
93 AT_KEYWORDS([macros lua])
94 AT_CHECK([
95 runroot rpm --eval '%{lua:print(5*5)}'
96 ],
97 [0],
98 [25
99 ])
100 AT_CLEANUP
101
102 AT_SETUP([lua rpm extensions])
103 AT_KEYWORDS([macros lua])
104 AT_CHECK([
105 runroot rpm --eval '%{lua: rpm.define("foo bar") print(rpm.expand("%{foo}"))}'
106 ],
107 [0],
108 [bar
109 ])
110 AT_CLEANUP
111
112 AT_SETUP([lua posix extensions])
113 AT_KEYWORDS([macros lua])
114 AT_CHECK([
115 runroot rpm \
116   --eval '%{lua: posix.putenv("LUATEST=ok") print(posix.getenv("LUATEST"))}'
117 ],
118 [0],
119 [ok
120 ])
121 AT_CLEANUP
122
123 AT_SETUP([lua script exit behavior])
124 AT_KEYWORDS([macros lua])
125 AT_CHECK([
126 runroot rpm \
127   --eval '%{lua: os.exit()}))}'
128 ],
129 [0],
130 [
131 ],
132 [error: lua script failed: [[string "<lua>"]]:1: exit not permitted in this context]
133 )
134 AT_CLEANUP