diff --git a/exist-app/modules/testtrigger.xqm b/exist-app/modules/testtrigger.xqm index 671da1fce0f2424fb25a1d6c6860bcf4cc8dd9e9..e56797c7b2c0e3b725f645fe022fd1e567989433 100644 --- a/exist-app/modules/testtrigger.xqm +++ b/exist-app/modules/testtrigger.xqm @@ -43,19 +43,7 @@ as item()? { then error(QName("error://1", "deploy"), "Deploy token incorrect.") else let $sysout := util:log-system-out("TextAPI and package installation done. running tests…") - let $tests := - ( - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/commons-tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/collection/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tei2html-tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tei2html-textprocessing-tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/txt/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/manifest/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/item/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/html/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/annotations/tests")) - ) + let $tests := testtrigger:execute-tests() let $fileSeparator := util:system-property("file.separator") let $system-path := system:get-exist-home() || $fileSeparator @@ -68,3 +56,49 @@ as item()? { return util:log-system-out("Tests complete. See " || $filename) }; + +declare function testtrigger:execute-tests() +as element()+ { + let $test-results := + ( + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/txt/tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/commons-tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/collection/tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/manifest/tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/item/tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/html/tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tei2html-tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tei2html-textprocessing-tests")), + test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/annotations/tests")) + ) + + for $result in $test-results + order by $result//@package return + if ($result//@failures = 0 + and $result//@errors = 0) then + <OK name="{local:get-human-readable-pkg-name($result//@package)}" package="{$result//@package}"/> + else + <PROBLEM name="{local:get-human-readable-pkg-name($result//@package)}" + package="{$result//@package}" + errors="{$result//@errors}" + failures="{$result//@failures}"> + {$result//testcase[child::*[self::failure or self::error]]} + </PROBLEM> +}; + +declare function local:get-human-readable-pkg-name($package as xs:string) +as xs:string? { + switch ($package) + case "http://ahikar.sub.uni-goettingen.de/ns/tapi/tests" return "TextAPI general" + case "http://ahikar.sub.uni-goettingen.de/ns/tapi/txt/tests" return "TXT creation" + case "http://ahikar.sub.uni-goettingen.de/ns/commons-tests" return "Commons" + case "http://ahikar.sub.uni-goettingen.de/ns/tapi/collection/tests" return "TextAPI Collections" + case "http://ahikar.sub.uni-goettingen.de/ns/tapi/manifest/tests" return "TextAPI Manifests" + case "http://ahikar.sub.uni-goettingen.de/ns/tapi/item/tests" return "TextAPI Items" + case "http://ahikar.sub.uni-goettingen.de/ns/tapi/html/tests" return "HTML creation" + case "http://ahikar.sub.uni-goettingen.de/ns/tei2html-tests" return "TEI2HTML transformation" + case "http://ahikar.sub.uni-goettingen.de/ns/tei2html-textprocessing-tests" return "TEI2HTML text processing" + case "http://ahikar.sub.uni-goettingen.de/ns/annotations/tests" return "AnnotationAPI" + default return () +}; diff --git a/exist-app/tests/tests-runner.xq b/exist-app/tests/tests-runner.xq index 9c2ab1672f9d16ad5159b9d41b3a5f00490d22eb..664f46f3cb592aa40eabe1f07b8566052f8506b3 100644 --- a/exist-app/tests/tests-runner.xq +++ b/exist-app/tests/tests-runner.xq @@ -5,58 +5,6 @@ xquery version "3.1"; : Elevated rights (dba/admin) are required for some tests. :) -import module namespace ttt="http://ahikar.sub.uni-goettingen.de/ns/tapi/txt/tests" at "tapi-txt-tests.xqm"; -import module namespace ct="http://ahikar.sub.uni-goettingen.de/ns/commons-tests" at "commons-tests.xqm"; -import module namespace tct="http://ahikar.sub.uni-goettingen.de/ns/tapi/collection/tests" at "tapi-collection-tests.xqm"; -import module namespace test="http://exist-db.org/xquery/xqsuite" at "resource:org/exist/xquery/lib/xqsuite/xqsuite.xql"; -import module namespace thtmlt="http://ahikar.sub.uni-goettingen.de/ns/tapi/html/tests" at "tapi-html-tests.xqm"; -import module namespace titemt="http://ahikar.sub.uni-goettingen.de/ns/tapi/item/tests" at "tapi-item-tests.xqm"; -import module namespace tmt="http://ahikar.sub.uni-goettingen.de/ns/tapi/manifest/tests" at "tapi-manifest-tests.xqm"; -import module namespace tt="http://ahikar.sub.uni-goettingen.de/ns/tapi/tests" at "tapi-tests.xqm"; -import module namespace t2ht="http://ahikar.sub.uni-goettingen.de/ns/tei2html-tests" at "tei2html-tests.xqm"; -import module namespace t2htextt="http://ahikar.sub.uni-goettingen.de/ns/tei2html-textprocessing-tests" at "tei2html-textprocessing-tests.xqm"; -import module namespace at="http://ahikar.sub.uni-goettingen.de/ns/annotations/tests" at "../tests/annotation-tests.xqm"; +import module namespace testtrigger="http://ahikar.sub.uni-goettingen.de/ns/testtrigger" at "../modules/testtrigger.xqm"; -declare function local:get-human-readable-pkg-name($package as xs:string) -as xs:string? { - switch ($package) - case "http://ahikar.sub.uni-goettingen.de/ns/tapi/tests" return "TextAPI general" - case "http://ahikar.sub.uni-goettingen.de/ns/tapi/txt/tests" return "TXT creation" - case "http://ahikar.sub.uni-goettingen.de/ns/commons-tests" return "Commons" - case "http://ahikar.sub.uni-goettingen.de/ns/tapi/collection/tests" return "TextAPI Collections" - case "http://ahikar.sub.uni-goettingen.de/ns/tapi/manifest/tests" return "TextAPI Manifests" - case "http://ahikar.sub.uni-goettingen.de/ns/tapi/item/tests" return "TextAPI Items" - case "http://ahikar.sub.uni-goettingen.de/ns/tapi/html/tests" return "HTML creation" - case "http://ahikar.sub.uni-goettingen.de/ns/tei2html-tests" return "TEI2HTML transformation" - case "http://ahikar.sub.uni-goettingen.de/ns/tei2html-textprocessing-tests" return "TEI2HTML text processing" - case "http://ahikar.sub.uni-goettingen.de/ns/annotations/tests" return "AnnotationAPI" - default return () -}; - -let $test-results := - ( - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/txt/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/commons-tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/collection/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/manifest/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/item/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tapi/html/tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tei2html-tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/tei2html-textprocessing-tests")), - test:suite(util:list-functions("http://ahikar.sub.uni-goettingen.de/ns/annotations/tests")) - ) - -for $result in $test-results -order by $result//@package return - if ($result//@failures = 0 - and $result//@errors = 0) then - <OK name="{local:get-human-readable-pkg-name($result//@package)}" package="{$result//@package}"/> - else - <PROBLEM name="{local:get-human-readable-pkg-name($result//@package)}" - package="{$result//@package}" - errors="{$result//@errors}" - failures="{$result//@failures}"> - {$result//testcase[child::*[self::failure or self::error]]} - </PROBLEM> - \ No newline at end of file +testtrigger:execute-tests() \ No newline at end of file