Skip to content

Commit

Permalink
Merge branch 'master' into pr-105
Browse files Browse the repository at this point in the history
* master:
  Align Travis configuration with AppVeyor in #86 (xspec#96)
  Run XProc test on AppVeyor (#86)
  Highlight the link target (#79)
  Consolidate cleanup tasks in batch script(#73)
  • Loading branch information
AirQuick committed Mar 14, 2017
2 parents df57985 + f4811a5 commit 8618960
Show file tree
Hide file tree
Showing 5 changed files with 146 additions and 80 deletions.
12 changes: 8 additions & 4 deletions .travis.yml
Expand Up @@ -2,6 +2,7 @@ env:
matrix:
# latest Saxon 9.7 version
- SAXON_VERSION=9.7.0-15
XMLCALABASH_VERSION=1.1.15-97
# latest Saxon 9.6 version
- SAXON_VERSION=9.6.0-10
# Saxon version used in oXygen
Expand All @@ -19,10 +20,13 @@ before_script:
- wget -O ${SAXON_CP} http://central.maven.org/maven2/net/sf/saxon/Saxon-HE/${SAXON_VERSION}/Saxon-HE-${SAXON_VERSION}.jar
- chmod +x ${SAXON_CP}
# install XML Calabash
- export XMLCALABASH_VERSION=1.1.15-97
- wget -O /tmp/xspec/xmlcalabash-${XMLCALABASH_VERSION}.zip https://github.com/ndw/xmlcalabash1/releases/download/${XMLCALABASH_VERSION}/xmlcalabash-${XMLCALABASH_VERSION}.zip
- unzip /tmp/xspec/xmlcalabash-${XMLCALABASH_VERSION}.zip -d /tmp/xspec
- export XMLCALABASH_CP=/tmp/xspec/xmlcalabash-${XMLCALABASH_VERSION}/xmlcalabash-${XMLCALABASH_VERSION}.jar
- if [ -z ${XMLCALABASH_VERSION} ]; then
echo "XMLCalabash will not be installed as it uses a higher version of Saxon";
else
wget -O /tmp/xspec/xmlcalabash-${XMLCALABASH_VERSION}.zip https://github.com/ndw/xmlcalabash1/releases/download/${XMLCALABASH_VERSION}/xmlcalabash-${XMLCALABASH_VERSION}.zip;
unzip /tmp/xspec/xmlcalabash-${XMLCALABASH_VERSION}.zip -d /tmp/xspec;
export XMLCALABASH_CP=/tmp/xspec/xmlcalabash-${XMLCALABASH_VERSION}/xmlcalabash-${XMLCALABASH_VERSION}.jar;
fi

script:
- cd test
Expand Down
17 changes: 17 additions & 0 deletions appveyor.yml
Expand Up @@ -3,18 +3,35 @@ environment:
matrix:
# latest Saxon 9.7 version
- SAXON_VERSION: 9.7.0-15
XMLCALABASH_VERSION: 1.1.15-97
# latest Saxon 9.6 version
- SAXON_VERSION: 9.6.0-10
# Saxon version used in oXygen
- SAXON_VERSION: 9.6.0-7

install:
- ps: >-
# install Saxon
$saxon_home = Split-Path -Path "${env:SAXON_CP}" -Parent
mkdir -Path $saxon_home
Invoke-WebRequest -Uri "http://central.maven.org/maven2/net/sf/saxon/Saxon-HE/${env:SAXON_VERSION}/Saxon-HE-${env:SAXON_VERSION}.jar" -OutFile "${env:SAXON_CP}"
# install XML Calabash
if( Test-Path -Path env:\XMLCALABASH_VERSION ) {
$xmlcalabash_home = "${env:TEMP}\xspec\xmlcalabash-${env:XMLCALABASH_VERSION}"
${env:XMLCALABASH_CP} = "${xmlcalabash_home}\xmlcalabash-${env:XMLCALABASH_VERSION}.jar"
Invoke-WebRequest -Uri "https://github.com/ndw/xmlcalabash1/releases/download/${env:XMLCALABASH_VERSION}/xmlcalabash-${env:XMLCALABASH_VERSION}.zip" -OutFile "${xmlcalabash_home}.zip"
7z x "${xmlcalabash_home}.zip" -o"${xmlcalabash_home}\..\"
}
else {
echo "XMLCalabash will not be installed as it uses a higher version of Saxon"
}
build: off
test_script:
- cmd: >-
Expand Down
4 changes: 4 additions & 0 deletions src/reporter/test-report.css
Expand Up @@ -408,6 +408,10 @@ th { text-align: left; }

span.scenario-totals {float: right; width: 22.5%; text-align: left}

/* highlight the link target */
*:target {
box-shadow: -0.5rem 0 0 0 #FC511D;
}

/* ------------------------------------------------------------------------ */
/* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS COMMENT. */
Expand Down
133 changes: 85 additions & 48 deletions test/xspec-bat.cmd
Expand Up @@ -13,18 +13,23 @@ if errorlevel 1 (
)

rem
rem Output log files
rem Results log file
rem
set OUTPUT_RAW=%TEMP%\%~n0_raw.log
call :del "%OUTPUT_RAW%"
set OUTPUT_LINENUM=%TEMP%\%~n0_linenum.log
call :del "%OUTPUT_LINENUM%"
set RESULTS_FILE=%TEMP%\%~n0_results.log
call :del "%RESULTS_FILE%"

rem
rem Result log file
rem Work directory
rem - Created at :setup
rem - Removed recursively at :teardown
rem
set RESULTS_FILE=%TEMP%\%~n0_result.log
call :del "%RESULTS_FILE%"
set WORK_DIR=%TEMP%\%~n0_work

rem
rem Output log files for :run
rem
set OUTPUT_RAW=%WORK_DIR%\run_raw.log
set OUTPUT_LINENUM=%WORK_DIR%\run_linenum.log

rem
rem Name and extension of this file
Expand Down Expand Up @@ -140,23 +145,17 @@ endlocal
setlocal
call :setup "invoking xspec generates XML report file"

set EXPECTED_REPORT=..\tutorial\xspec\escape-for-regex-result.xml
call :del "%EXPECTED_REPORT%"

call :run ..\bin\xspec.bat ..\tutorial\escape-for-regex.xspec
call :verify_exist "%EXPECTED_REPORT%"
call :verify_exist ..\tutorial\xspec\escape-for-regex-result.xml

call :teardown
endlocal

setlocal
call :setup "invoking xspec generates HTML report file"

set EXPECTED_REPORT=..\tutorial\xspec\escape-for-regex-result.html
call :del "%EXPECTED_REPORT%"

call :run ..\bin\xspec.bat ..\tutorial\escape-for-regex.xspec
call :verify_exist "%EXPECTED_REPORT%"
call :verify_exist ..\tutorial\xspec\escape-for-regex-result.html

call :teardown
endlocal
Expand Down Expand Up @@ -198,23 +197,17 @@ endlocal
setlocal
call :setup "invoking xspec with -j option generates XML report file"

set EXPECTED_REPORT=..\tutorial\xspec\escape-for-regex-junit.xml
call :del "%EXPECTED_REPORT%"

call :run ..\bin\xspec.bat -j ..\tutorial\escape-for-regex.xspec
call :verify_exist "%EXPECTED_REPORT%"
call :verify_exist ..\tutorial\xspec\escape-for-regex-junit.xml

call :teardown
endlocal

setlocal
call :setup "invoking xspec with -j option generates JUnit report file"

set EXPECTED_REPORT=..\tutorial\xspec\escape-for-regex-junit.xml
call :del "%EXPECTED_REPORT%"

call :run ..\bin\xspec.bat -j ..\tutorial\escape-for-regex.xspec
call :verify_exist "%EXPECTED_REPORT%"
call :verify_exist ..\tutorial\xspec\escape-for-regex-junit.xml

call :teardown
endlocal
Expand All @@ -234,8 +227,7 @@ endlocal
setlocal
call :setup "invoking xspec.bat with TEST_DIR already set externally generates files inside TEST_DIR"

set TEST_DIR=%TEMP%\%~n0
call :mkdir "%TEST_DIR%"
set TEST_DIR=%WORK_DIR%

call :run ..\bin\xspec.bat ..\tutorial\escape-for-regex.xspec
call :verify_retval 0
Expand All @@ -255,7 +247,7 @@ setlocal
endlocal

setlocal
call :setup "invoking xspec.sh that passes a non xs:boolean does not raise a warning #46"
call :setup "invoking xspec.bat that passes a non xs:boolean does not raise a warning #46"

call :run ..\bin\xspec.bat ..\test\xspec-46.xspec
call :verify_retval 0
Expand All @@ -264,6 +256,20 @@ setlocal
call :teardown
endlocal

setlocal
call :setup "executing the Saxon XProc harness generates a report with UTF-8 encoding"

if defined XMLCALABASH_CP (
call :run java -Xmx1024m -cp "%XMLCALABASH_CP%" com.xmlcalabash.drivers.Main -isource=xspec-72.xspec xspec-home="file:/%PARENT_DIR_ABS:\=/%/" -oresult=xspec/xspec-72-result.html ..\src\harnesses\saxon\saxon-xslt-harness.xproc
call :run java -cp "%SAXON_CP%" net.sf.saxon.Query -s:xspec\xspec-72-result.html -qs:"declare default element namespace 'http://www.w3.org/1999/xhtml'; concat(/html/head/meta[@http-equiv eq 'Content-Type']/@content = 'text/html; charset=UTF-8', '
')" !method=text
call :verify_line 1 x "true"
) else (
call :skip "test for XProc skipped as XMLCalabash uses a higher version of Saxon"
)

call :teardown
endlocal

echo === END TEST CASES ==================================================

rem
Expand Down Expand Up @@ -298,27 +304,50 @@ rem Subroutines
rem

:del
if exist %1 del /q %1
if exist %1 (
del /q %1
if errorlevel 1 call :failed "Failed to del: %~1"
)
goto :EOF

:mkdir
if not exist %1 mkdir %1
mkdir %1
if errorlevel 1 call :failed "Failed to mkdir: %~1"
goto :EOF

:rmdir
call :del "%~1\*"
if exist %1 rmdir %1
if exist %1 (
call :del "%~1\*"
rmdir %1
if errorlevel 1 call :failed "Failed to rmdir: %~1"
)
goto :EOF

:setup
set CASE_NAME=%~1
:rmdir-s
if exist %1 (
rmdir /s /q %1
if errorlevel 1 call :failed "Failed to rmdir /s: %~1"
)
goto :EOF

if /i "%APPVEYOR%"=="True" appveyor AddTest "%CASE_NAME%" -Framework custom -Filename "%THIS_FILE_NX%" -Outcome Running
:appveyor
if /i "%APPVEYOR%"=="True" appveyor %*
goto :EOF

:setup
rem
rem Report 'Running'
rem
set CASE_NAME=%~1
call :appveyor AddTest "%CASE_NAME%" -Framework custom -Filename "%THIS_FILE_NX%" -Outcome Running
echo CASE: %CASE_NAME%

(echo # %CASE_NAME%) >> "%RESULTS_FILE%"

rem
rem Create the work directory
rem
call :mkdir "%WORK_DIR%"

rem
rem Create the XSpec output directories
rem
Expand All @@ -328,24 +357,25 @@ rem
goto :EOF

:teardown
if %CASE_RESULT% EQU 0 (
echo ...PASS
(echo %CASE_RESULT%) >> "%RESULTS_FILE%"
if /i "%APPVEYOR%"=="True" appveyor UpdateTest "%CASE_NAME%" -Framework custom -Filename "%THIS_FILE_NX%" -Outcome Passed -Duration 0
)

rem
rem Delete the output log files if any
rem
call :del "%OUTPUT_RAW%"
call :del "%OUTPUT_LINENUM%"

rem
rem Remove the XSpec output directories
rem
call :rmdir ..\test\xspec
call :rmdir ..\tutorial\xspec

rem
rem Remove the work directory
rem
call :rmdir-s "%WORK_DIR%"

rem
rem Report 'Passed'
rem
if %CASE_RESULT% EQU 0 (
echo ...PASS
(echo %CASE_RESULT%) >> "%RESULTS_FILE%"
call :appveyor UpdateTest "%CASE_NAME%" -Framework custom -Filename "%THIS_FILE_NX%" -Outcome Passed -Duration 0
)
goto :EOF

:verified
Expand All @@ -357,7 +387,14 @@ rem
echo ...FAIL: %~1
set CASE_RESULT=1
(echo %CASE_RESULT%) >> "%RESULTS_FILE%"
if /i "%APPVEYOR%"=="True" appveyor UpdateTest "%CASE_NAME%" -Framework custom -Filename "%THIS_FILE_NX%" -Outcome Failed -Duration 0 -ErrorMessage %1
if defined CASE_NAME call :appveyor UpdateTest "%CASE_NAME%" -Framework custom -Filename "%THIS_FILE_NX%" -Outcome Failed -Duration 0 -ErrorMessage %1
goto :EOF

:skip
echo ...SKIP: %~1
set CASE_RESULT=2
(echo # %~1) >> "%RESULTS_FILE%"
call :appveyor UpdateTest "%CASE_NAME%" -Framework custom -Filename "%THIS_FILE_NX%" -Outcome Skipped -Duration 0
goto :EOF

:run
Expand Down

0 comments on commit 8618960

Please sign in to comment.