From c832963ebe7939393f1108d31aa569723190177c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 16 Jul 2014 09:39:06 +0200 Subject: Add Windows test scripts (VC and MinGW) --- test/windows/all | 53 +++++++++++++++++++ test/windows/all-vcver | 3 ++ test/windows/build.bat | 130 ++++++++++++++++++++++++++++++++++++++++++++++ test/windows/mingw/build | 62 ++++++++++++++++++++++ test/windows/mingw/unpack | 3 ++ test/windows/setenv.bat | 34 ++++++++++++ test/windows/unpack | 43 +++++++++++++++ 7 files changed, 328 insertions(+) create mode 100755 test/windows/all create mode 100755 test/windows/all-vcver create mode 100755 test/windows/build.bat create mode 100755 test/windows/mingw/build create mode 100755 test/windows/mingw/unpack create mode 100644 test/windows/setenv.bat create mode 100755 test/windows/unpack diff --git a/test/windows/all b/test/windows/all new file mode 100755 index 0000000..31d5773 --- /dev/null +++ b/test/windows/all @@ -0,0 +1,53 @@ +#! /usr/bin/env bash + +trap 'exit 1' ERR + +function error () +{ + echo "$*" 1>&2 +} + +function usage () +{ + error "usage: $0 vc-version conf plat [action]" + error " valid configurations are: {Debug,Release}|all" + error " valid platforms are: {Win32,x64}|all" + error " valid actions are: /Build (default), /Clean, and /Rebuild" +} + +if [ "$1" = "" ]; then + error vc version expected + usage + exit 1 +fi + +if [ "$2" = "" ]; then + error configuration expected + usage + exit 1 +fi + +if [ "$3" = "" ]; then + error platform expected + usage + exit 1 +fi + +action=$4 +if [ "$action" == "" ]; then + action=/Build +fi + +cd xsd-i686-windows + +cmd.exe /C ..\\setenv.bat "$1" ..\\build.bat "$1" "$2" "$3" "$action" + +cd examples/cxx/tree +cmd.exe /C ..\\..\\..\\..\\setenv.bat "$1" test.bat +cd ../../.. + +cd examples/cxx/parser +cmd.exe /C ..\\..\\..\\..\\setenv.bat "$1" test.bat +cd ../../.. + +cd .. diff --git a/test/windows/all-vcver b/test/windows/all-vcver new file mode 100755 index 0000000..fccce22 --- /dev/null +++ b/test/windows/all-vcver @@ -0,0 +1,3 @@ +#! /bin/sh + +for v in 8 9 10 11 12; do ./unpack && ./all $v all all 2>&1 | tee all-$v.log; done diff --git a/test/windows/build.bat b/test/windows/build.bat new file mode 100755 index 0000000..dc427ab --- /dev/null +++ b/test/windows/build.bat @@ -0,0 +1,130 @@ +@echo off +rem +rem build.bat vc-version conf plat [/Build|/Clean|/Rebuild] +rem +rem conf: {Debug,Release}|all +rem plat: {Win32,x64}|all +rem + +setlocal + +if "_%1_" == "__" ( + echo no VC++ version specified + goto usage +) + +if "_%~2_" == "__" ( + echo no configuration specified + goto usage +) + +if "_%~3_" == "__" ( + echo no platform specified + goto usage +) + +set "failed=" + +if "_%1_" == "_8_" set "vcver=8" +if "_%1_" == "_9_" set "vcver=9" +if "_%1_" == "_10_" set "vcver=10" +if "_%1_" == "_11_" set "vcver=11" +if "_%1_" == "_12_" set "vcver=12" + +if "_%vcver%_" == "__" ( + echo unknown VC++ version %1 + goto usage +) + +set "confs=%~2" +set "plats=%~3" + +if "_%confs%_" == "_all_" set "confs=Debug Release" +if "_%plats%_" == "_all_" set "plats=Win32 x64" + +set "action=%4" +if "_%action%_" == "__" set "action=/Build" + +set "devenv=%DEVENV%" +if "_%devenv%_" == "__" set "devenv=devenv.com" + +goto start + +rem +rem %1 - solution name +rem %2 - configuration to build +rem %3 - platform to build +rem +:run_build + echo. + echo building %1 %3 %2 + "%devenv%" %1 %action% "%2|%3" 2>&1 + if errorlevel 1 set "failed=%failed% %1\%3\%2" +goto :eof + +:start + +for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_build examples/cxx/tree/tree-vc%vcver%.sln %%c %%p + ) +) + +if not "_%failed%_" == "__" goto error + +for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_build examples/cxx/tree/embedded/embedded-vc%vcver%.sln %%c %%p + ) +) + +if not "_%failed%_" == "__" goto error + +for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_build examples/cxx/tree/custom/custom-vc%vcver%.sln %%c %%p + ) +) + +if not "_%failed%_" == "__" goto error + +for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_build examples/cxx/tree/custom/calendar/calendar-vc%vcver%.sln %%c %%p + ) +) + +if not "_%failed%_" == "__" goto error + +for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_build examples/cxx/parser/parser-vc%vcver%.sln %%c %%p + ) +) + +if not "_%failed%_" == "__" goto error + +echo. +echo ALL BUILDS SUCCEEDED +echo. +goto end + +:usage +echo. +echo usage: build.bat vc-version conf plat [action] +echo valid configurations are: {Debug,Release}|all +echo valid platforms are: {Win32,x64}|all +echo valid actions are: /Build (default), /Clean, and /Rebuild +echo. + +:error +if not "_%failed%_" == "__" ( + echo. + for %%t in (%failed%) do echo FAILED: %%t + echo. +) +endlocal +exit /b 1 + +:end +endlocal diff --git a/test/windows/mingw/build b/test/windows/mingw/build new file mode 100755 index 0000000..b309908 --- /dev/null +++ b/test/windows/mingw/build @@ -0,0 +1,62 @@ +#! /usr/bin/env bash + +# Build XSD examples for MinGW. +# +# -rebuild +# -test +# +trap 'exit 1' ERR + +function error () +{ + echo "$*" 1>&2 +} + +# Xerces-C++ installation directory (not build directory). +# +XERCESROOT=/c/projects/xerces-mingw32 + +CPPFLAGS="-I$XERCESROOT/include" +CXXFLAGS="-W -Wall" +LDFLAGS="-L$XERCESROOT/lib -Wl,--enable-auto-import" +PATH="$XERCESROOT/lib:$PATH" + +test=n +rebuild=n + +while [ $# -gt 0 ]; do + case $1 in + -rebuild) + rebuild=y + shift + ;; + -test) + test=y + shift + ;; + *) + error "unknown option: $1" + exit 1 + ;; + esac +done + +cd xsd-i686-windows/examples + +# Clean everything up if we are rebuilding. +# +if [ $rebuild = y ]; then + make clean +fi + +# Build. +# +make CPPFLAGS="$CPPFLAGS" CXXFLAGS="$CXXFLAGS" LDFLAGS="$LDFLAGS" + +# Test. +# +if [ $test = y ]; then + make test +fi + +cd ../.. diff --git a/test/windows/mingw/unpack b/test/windows/mingw/unpack new file mode 100755 index 0000000..ff24c84 --- /dev/null +++ b/test/windows/mingw/unpack @@ -0,0 +1,3 @@ +#! /usr/bin/env bash + +../unpack -mingw diff --git a/test/windows/setenv.bat b/test/windows/setenv.bat new file mode 100644 index 0000000..411f931 --- /dev/null +++ b/test/windows/setenv.bat @@ -0,0 +1,34 @@ +@echo off + +if "_%1_" == "__" ( + echo no VC++ version specified + goto usage +) + +set ROOT=c:\projects +set "DIFF=c:\cygwin\bin\diff.exe -ubB" + +if "_%1_" == "_8_" set "DEVENV=c:\Program Files (x86)\Microsoft Visual Studio 8\Common7\IDE\devenv.com" +if "_%1_" == "_9_" set "DEVENV=c:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.com" +if "_%1_" == "_10_" set "DEVENV=c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" +if "_%1_" == "_11_" set "DEVENV=c:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.com" +if "_%1_" == "_12_" set "DEVENV=c:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.com" + +set PATH=%ROOT%\xsd\xsd-i686-windows\bin;%PATH% +set PATH=%ROOT%\xerces-vc\bin;%PATH% +set PATH=%ROOT%\xerces-vc\bin64;%PATH% + +if "_%2_" == "__" goto end + +%2 %3 %4 %5 %6 %7 %8 %9 +goto end + +:usage +echo. +echo usage: setenv.bat vc-version ... +echo. + +:error +exit /b 1 + +:end diff --git a/test/windows/unpack b/test/windows/unpack new file mode 100755 index 0000000..9d4d7f7 --- /dev/null +++ b/test/windows/unpack @@ -0,0 +1,43 @@ +#! /usr/bin/env bash + +# Unpack XSD for Windows. +# +# -mingw unpack for MinGW +# + +trap 'exit 1' ERR + +function error () +{ + echo "$*" 1>&2 +} + +mingw=n + +while [ $# -gt 0 ]; do + case $1 in + -mingw) + mingw=y + shift + ;; + *) + error "unknown option: $1" + exit 1 + ;; + esac +done + +if [ $mingw = y ]; then + base=/t +else + base=/cygdrive/t +fi + +rm -rf xsd-i686-windows xsd-*-i686-windows + +v=`echo $base/xsd-*.*.*-i686-windows.zip | sed -e "s%$base/xsd-\([^-]*\).*.zip%\1%"` + +echo unpacking xsd-$v-i686-windows from $base + +unzip -q $base/xsd-$v-i686-windows.zip +mv xsd-$v-i686-windows xsd-i686-windows -- cgit v1.1