From 384d384d1b84142a23785c6c423064a29342f532 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 16 May 2014 07:26:08 -0700 Subject: Add test scripts for Windows (VC++, MinGW) --- test/windows/all | 53 +++++++++++++++++++++ test/windows/build.bat | 118 ++++++++++++++++++++++++++++++++++++++++++++++ test/windows/mingw/build | 66 ++++++++++++++++++++++++++ test/windows/mingw/unpack | 3 ++ test/windows/setenv.bat | 33 +++++++++++++ test/windows/unpack | 43 +++++++++++++++++ 6 files changed, 316 insertions(+) create mode 100755 test/windows/all 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..d8f3531 --- /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 libstudxml + +cmd.exe /C ..\\setenv.bat "$1" ..\\build.bat "$1" "$2" "$3" "$action" + +cd tests +cmd.exe /C ..\\..\\setenv.bat "$1" test.bat +cd .. + +cd examples +cmd.exe /C ..\\..\\setenv.bat "$1" test.bat +cd .. + +cd .. diff --git a/test/windows/build.bat b/test/windows/build.bat new file mode 100755 index 0000000..33edec6 --- /dev/null +++ b/test/windows/build.bat @@ -0,0 +1,118 @@ +@echo off +rem file : build.bat +rem copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +rem license : MIT; see accompanying LICENSE file + +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 libstudxml-vc%vcver%.sln %%c %%p + ) +) + +if not "_%failed%_" == "__" goto error + +for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_build tests/tests-vc%vcver%.sln %%c %%p + ) +) + +if not "_%failed%_" == "__" goto error + +for %%c in (%confs%) do ( + for %%p in (%plats%) do ( + call :run_build examples/examples-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..f0c09de --- /dev/null +++ b/test/windows/mingw/build @@ -0,0 +1,66 @@ +#! /usr/bin/env bash + +# Build libstudxml for MinGW +# +# -rebuild +# -test +# +trap 'exit 1' ERR + +function error () +{ + echo "$*" 1>&2 +} + +function clean () +{ + if [ -f $1/Makefile ]; then + make -C $1 distclean + fi +} + +LDFLAGS="-Wl,--enable-auto-import" + +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 + +# Clean everything up if we are rebuilding. +# +if [ $rebuild = y ]; then + clean libstudxml +fi + +# Build. +# +cd libstudxml + +if [ $rebuild = y -o ! -f Makefile ]; then + ./configure LDFLAGS="$LDFLAGS" DIFFFLAGS=-ubB +fi + +make + +# Test. +# +if [ $test = y ]; then + make check +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..80119d2 --- /dev/null +++ b/test/windows/setenv.bat @@ -0,0 +1,33 @@ +@echo off + +if "_%1_" == "__" ( + echo no VC++ version specified + goto usage +) + +set ROOT=c:\projects\studxml +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%\libstudxml\bin;%PATH% +set PATH=%ROOT%\libstudxml\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..bf8477a --- /dev/null +++ b/test/windows/unpack @@ -0,0 +1,43 @@ +#! /usr/bin/env bash + +# Unpack libstudxml 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/libstudxml +else + base=/cygdrive/t/libstudxml +fi + +rm -rf libstudxml libstudxml-* + +v=`echo $base/libstudxml-*.*.*.zip | sed -e "s%$base/libstudxml-\([^-]*\).*.zip%\1%"` + +echo unpacking libstudxml-$v from $base + +unzip -q $base/libstudxml-$v.zip +mv libstudxml-$v libstudxml -- cgit v1.1