rpm/tests/rpmmacro.at

147 lines
2.4 KiB
Plaintext

# rpmmacro.at: test rpm macros
#
AT_BANNER([RPM macros])
# ------------------------------
AT_SETUP([simple rpm --eval])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm --define "this that" --eval '%{this}'
],
[0],
[that
])
AT_CLEANUP
AT_SETUP([simple true conditional rpm --eval])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm --define "this that" --eval '%{?this}'
],
[0],
[that
])
AT_CLEANUP
AT_SETUP([simple false conditional rpm --eval])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm --define "this that" --eval '%{?that}'
],
[0],
[
])
AT_CLEANUP
# XXX this was broken by commit c22d5b12999de6633d89828165ea3ab2112993e8
AT_SETUP([nested macro in name])
AT_KEYWORDS([macros])
AT_CHECK([
AT_XFAIL_IF([test $RPM_XFAIL -ne 0])
runroot rpm --define "this that" --define "that_that foo" --eval '%{expand:%{%{this}_that}}'
],
[0],
[foo
])
AT_CLEANUP
AT_SETUP([uncompress macro])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm \
--define "__gzip /my/bin/gzip" \
--eval "%{uncompress:/data/SOURCES/hello-2.0.tar.gz}"
],
[0],
[/my/bin/gzip -dc /data/SOURCES/hello-2.0.tar.gz
])
AT_CLEANUP
AT_SETUP([basename macro])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm \
--eval "%{basename:/data/SOURCES/hello-2.0.tar.gz}"
],
[0],
[hello-2.0.tar.gz
])
AT_CLEANUP
AT_SETUP([suffix macro])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm \
--eval "%{suffix:/data/SOURCES/hello-2.0.tar.gz}"
],
[0],
[gz
])
AT_CLEANUP
AT_SETUP([url2path macro])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm \
--eval "%{url2path:http://hello.org/releases/hello-2.0.tar.gz}"
],
[0],
[/releases/hello-2.0.tar.gz
])
AT_CLEANUP
AT_SETUP([shell expansion])
AT_KEYWORDS([macros])
AT_CHECK([
runroot rpm \
--eval "%(echo foo)"
],
[0],
[foo
])
AT_CLEANUP
AT_SETUP([simple lua --eval])
AT_KEYWORDS([macros lua])
AT_CHECK([
runroot rpm --eval '%{lua:print(5*5)}'
],
[0],
[25
])
AT_CLEANUP
AT_SETUP([lua rpm extensions])
AT_KEYWORDS([macros lua])
AT_CHECK([
runroot rpm --eval '%{lua: rpm.define("foo bar") print(rpm.expand("%{foo}"))}'
],
[0],
[bar
])
AT_CLEANUP
AT_SETUP([lua posix extensions])
AT_KEYWORDS([macros lua])
AT_CHECK([
runroot rpm \
--eval '%{lua: posix.putenv("LUATEST=ok") print(posix.getenv("LUATEST"))}'
],
[0],
[ok
])
AT_CLEANUP
AT_SETUP([lua script exit behavior])
AT_KEYWORDS([macros lua])
AT_CHECK([
runroot rpm \
--eval '%{lua: os.exit()}))}'
],
[0],
[
],
[error: lua script failed: [[string "<lua>"]]:1: exit not permitted in this context]
)
AT_CLEANUP