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 ]) # FIXME: add tons of tests on out.msi 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], [0], [stdout]) AT_CHECK([grep -F gtk-demo.exe 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_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