AT_BANNER([wixl]) # AT_CHECK_... - add exeext automatically m4_define([AT_CHECK_WIXL], [ AT_CHECK([_wixl ]$@)]) m4_define([AT_CHECK_MSIINFO], [ AT_CHECK([_msiinfo ]$@)]) # 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([SampleUser]) AT_WIXLDATA([SampleUser.wxs]) AT_WIXLDATA([FoobarAppl10.exe]) AT_CHECK_WIXL([-o out.msi SampleUser.wxs], [0], [ignore], [ignore]) # FIXME: add tons of tests on out.msi AT_CHECK([test -f out.msi], [0]) AT_CLEANUP AT_SETUP([SampleMachine]) AT_WIXLDATA([SampleMachine.wxs]) AT_WIXLDATA([FoobarAppl10.exe]) AT_CHECK_WIXL([-o out.msi SampleMachine.wxs], [0], [ignore], [ignore]) AT_CHECK_MSIINFO([export out.msi Property | grep -q 'ALLUSERS 1'], [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', '{0E066A5A-AE0E-5F43-B984-F6C685AF13F0}', 'INSTALLDIR', 0, 'FoobarEXE') INSERT INTO `Component` (`Component`, `ComponentId`, `Directory_`, `Attributes`, `KeyPath`) VALUES ('Manual', '{BE256176-257D-5ACD-902D-801F8E305172}', 'INSTALLDIR', 0, 'Manual') INSERT INTO `Component` (`Component`, `ComponentId`, `Directory_`, `Attributes`, `KeyPath`) VALUES ('ProgramMenuDir', '{F47E26A5-C6A8-57BA-B6B5-CB2AE74E5256}', 'ProgramMenuDir', 4, 'reg87D9EA4ADD3AB0EF9CE081917EDEAAF5') ]) 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