summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2014-07-16 09:39:06 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2014-07-16 09:39:06 +0200
commitc832963ebe7939393f1108d31aa569723190177c (patch)
treefb978ada240abbca55a0bf17283795b044615cea
parent0f61d97cb8e971308d91cfe305d20f1f33190dc0 (diff)
Add Windows test scripts (VC and MinGW)
-rwxr-xr-xtest/windows/all53
-rwxr-xr-xtest/windows/all-vcver3
-rwxr-xr-xtest/windows/build.bat130
-rwxr-xr-xtest/windows/mingw/build62
-rwxr-xr-xtest/windows/mingw/unpack3
-rw-r--r--test/windows/setenv.bat34
-rwxr-xr-xtest/windows/unpack43
7 files changed, 328 insertions, 0 deletions
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