AT_BANNER([wixl])
# AT_CHECK_... - add exeext automatically
m4_define([AT_CHECK_WIXL], [
AT_CHECK([_wixl ]$@)])
# AT_WIXLDATA - copy data file from source tree
m4_define([AT_WIXLDATA], [AT_MSIDATA([wixl/$1], [m4_default([$2], [$1])])])
AT_SETUP([Invalid command line])
AT_CHECK_WIXL([], [1], [ignore], [ignore])
AT_CHECK_WIXL([out.msi foo.wxs], [1], [ignore], [ignore])
AT_CHECK_WIXL([-o out.msi], [1], [ignore], [ignore])
AT_CHECK_WIXL([-E], [1], [ignore], [ignore])
AT_CHECK_WIXL([-D], [1], [ignore], [ignore])
AT_CHECK_WIXL([-E -o out.msi], [1], [ignore], [ignore])
AT_CHECK([test -f out.msi], [1])
AT_CLEANUP
AT_SETUP([WiX tutorial SampleFirst])
AT_WIXLDATA([SampleFirst.wxs])
AT_WIXLDATA([FoobarAppl10.exe])
AT_WIXLDATA([Helper.dll])
AT_WIXLDATA([Manual.pdf])
AT_CHECK_WIXL([-o out.msi SampleFirst.wxs], [0], [ignore], [ignore])
# FIXME: add tons of tests on out.msi
AT_CHECK([test -f out.msi], [0])
AT_CLEANUP
AT_SETUP([Stable component GUIDs])
AT_WIXLDATA([ComponentGUID.wxs])
AT_WIXLDATA([FoobarAppl10.exe])
AT_WIXLDATA([Manual.pdf])
AT_CHECK_WIXL([-o out.msi ComponentGUID.wxs], [0], [ignore], [ignore])
# FIXME: add tons of tests on out.msi
AT_CHECK([msiinfo export -s out.msi Component | sort | grep INSERT], [0],
[INSERT INTO `Component` (`Component`, `ComponentId`, `Directory_`, `Attributes`, `KeyPath`) VALUES ('MainExecutable', '{E92F36A4-7332-5803-B56D-B30AED211451}', 'INSTALLDIR', 0, 'FoobarEXE')
INSERT INTO `Component` (`Component`, `ComponentId`, `Directory_`, `Attributes`, `KeyPath`) VALUES ('Manual', '{E44FE0D4-A612-50BF-B231-0662EB694E2F}', 'INSTALLDIR', 0, 'Manual')
INSERT INTO `Component` (`Component`, `ComponentId`, `Directory_`, `Attributes`, `KeyPath`) VALUES ('ProgramMenuDir', '{6B979E1B-8F32-5150-AA04-6D7B8BCB1614}', 'ProgramMenuDir', 4, 'reg5453B5C95074EA6F633E6D36318AFBF7')
])
AT_CLEANUP
AT_SETUP([WiX tutorial SampleFragment])
AT_WIXLDATA([SampleFragment.wxs])
AT_WIXLDATA([Manual.wxs])
AT_WIXLDATA([FoobarAppl10.exe])
AT_WIXLDATA([Helper.dll])
AT_WIXLDATA([Manual.pdf])
AT_CHECK_WIXL([-o out.msi SampleFragment.wxs Manual.wxs], [0], [ignore], [ignore])
# FIXME: add tons of tests on out.msi
AT_CHECK([test -f out.msi], [0])
AT_CLEANUP
AT_SETUP([Preprocessor variables])
export MY_VAR="Hello!"
AT_DATA([variables.wxs], [
])
AT_CHECK_WIXL([-E variables.wxs], [0], [
], [ignore])
AT_DATA([variables.wxs], [
])
AT_CHECK_WIXL([-E variables.wxs -D Foo -D Zig=Zag], [0], [
], [ignore])
AT_CLEANUP
AT_SETUP([Preprocessor include & condition])
AT_WIXLDATA([IncludeTest.wxs])
AT_WIXLDATA([IncludeWarn.wxi])
AT_CHECK_WIXL([-o out.msi IncludeTest.wxs], [0], [ignore],
[IncludeWarn.wxi:3: warning: IncludeWarn is included
])
AT_CHECK_WIXL([-D Bar -o out.msi IncludeTest.wxs], [0], [ignore],
[IncludeTest.wxs:11: warning: Bar
])
AT_CHECK_WIXL([-D Foo -o out.msi IncludeTest.wxs], [0], [ignore],
[IncludeTest.wxs:4: warning: Foo
])
AT_WIXLDATA([arch-condition.wxs])
AT_CHECK_WIXL([-o out.msi arch-condition.wxs], [0], [ignore],
[arch-condition.wxs:12: warning: no
])
AT_CHECK([test -f out.msi], [0])
AT_CLEANUP
AT_SETUP([System include directory])
AT_DATA([include.wxs], [
])
AT_CHECK_WIXL([-E include.wxs -D SourceDir=foo -D Win64=no], [0], [stdout])
AT_CHECK([grep -F zlib1.dll stdout], [0], [ignore])
AT_CLEANUP
AT_SETUP([ARP example])
AT_WIXLDATA([test-arp.wxs])
AT_WIXLDATA([FoobarAppl10.exe])
AT_CHECK_WIXL([-o out.msi test-arp.wxs], [0], [ignore], [ignore])
# FIXME: add tons of tests on out.msi
AT_CHECK([test -f out.msi], [0])
AT_CLEANUP
AT_SETUP([Binary/CustomAction])
AT_WIXLDATA([binary.wxs])
AT_WIXLDATA([Foo.dll])
AT_WIXLDATA([Manual.pdf])
AT_CHECK_WIXL([-o out.msi binary.wxs], [0], [ignore], [ignore])
# FIXME: add tons of tests on out.msi
AT_CHECK([test -f out.msi], [0])
AT_CLEANUP
AT_BANNER([wixl-heat])
AT_SETUP([Heat])
mkdir -p test/a/b test/c
touch test/a/file test/c/file
find test > list
AT_CHECK([cat list | _wixl_heat -p test/ | grep File | sort], [0],
[
], [ignore])
AT_CHECK([cat list | _wixl_heat -p test/ -x c | grep File | sort], [0],
[
], [ignore])
AT_CLEANUP