|
Implementations | |||||||
Tests | BaseX 8.5 beta XQ31 (QT3 vCVS) |
Saxon-EE 9.7.0.11 XP31 (QT3 v0.6) |
Saxon-EE 9.7.0.11 XQ31 (QT3 v0.6) |
XmlPrime 4.0.0.16079 XP31 (QT3 vCVS) |
XmlPrime 4.0.0.26293 XQ31 (QT3 vCVS) |
XmlPrime 4.0.0.27704 XQX31 (QT3 vCVS) |
|
---|---|---|---|---|---|---|---|
app-CatalogCheck | 11/14 | 0/0 | 13/14 | 0/0 | 13/13 | 13/0 | 0/6 |
Catalog001[+]
X Catalog001: Created on: 2011-07-10 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))), $tests := $testsets//fots-test-case, $environments := (//fots:environment | $testsets//fots:environment)[@name], $refs := $testsets//fots:environment[@ref] return $refs[not(@ref = $environments/@name)] |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog003[+]
X Catalog003: Created on: 2011-07-10 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $test in $testsets//fots:test-case[contains(test, "import schema")] where empty($test/(fots:dependency | ../fots:dependency)[@type='feature' and @value="schemaImport"]) return $test |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog004[+]
X Catalog004: Created on: 2011-08-10 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $schema in (.|$testsets)//fots:environment/fots:schema let $targetNamespace := doc(resolve-uri($schema/@file, base-uri($schema)))/*/@targetNamespace where not($schema/@uri eq $targetNamespace or (empty($targetNamespace) and string(@uri)='')) return ($schema, <file>{base-uri($schema)}</file>) |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog005[+]
X Catalog005: Created on: 2011-08-11 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; (: ask whether a test is XQuery-only :) declare function local:needs-xq($t as element(fots:test-case)) as xs:boolean { let $spec := $t/fots:dependency[@type='spec'][1] return exists($spec) and contains($spec/@value, 'XQ') and not(contains($spec/@value, 'XP')) and not(starts-with($t/@name, 'fo-test-' (: special exemption for generated tests :))) }; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) let $nsenvs := for $t in ($testsets|.) for $e in $t//fots:environment[@name] where exists($e/fots:namespace) return concat($t/*/@name, '~', $e/@name/string()) let $xq-testcases := $testsets//fots:test-case [local:needs-xq(.)] for $tc in $xq-testcases [concat(/*/@name, '~', fots:environment/@ref) = $nsenvs or fots:environment[fots:namespace]] return $tc/@name/string() |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog006[+]
X Catalog006: Created on: 2011-08-11 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; (: ask whether a test is XQuery-only :) declare function local:needs-xq($t as element(fots:test-case)) as xs:boolean { let $spec := $t/fots:dependency[@type='spec'][1] return exists($spec) and contains($spec/@value, 'XQ') and not(contains($spec/@value, 'XP')) and not(starts-with($t/@name, 'fo-test-' (: special exemption for generated tests :))) }; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) let $nsenvs := for $t in ($testsets|.) for $e in $t//fots:environment where exists($e/fots:decimal-format) return $e/@name/string() let $xq-testcases := $testsets//fots:test-case [local:needs-xq(.)] for $tc in $xq-testcases [fots:environment/@ref = $nsenvs or fots:environment[fots:decimal-format]] return $tc/@name/string() |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog007[+]
X Catalog007: Created on: 2011-08-23 Spec Dependencies: spec = XQ30+ Test: xquery version "3.0"; (: output the non-unique test names. There should be none :) declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $xq-testcase in $testsets//fots:test-case let $testname := $xq-testcase/@name group by $testname where count($xq-testcase) gt 1 return ($testname || "(" || count($xq-testcase) || ")") |
fail | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog008[+]
X Catalog008: Created on: 2011-08-23 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; for $xq-testcase in //fots:test-set let $testname := $xq-testcase/@name let $testfile := $xq-testcase/@file/doc(resolve-uri(., base-uri(..))) let $file-testname := $testfile/fots:test-set/@name where $testname != $file-testname return <out catalog-name="{string($testname)}" test-name="{string($file-testname)}"/> |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog009[+]
X Catalog009: Created on: 2011-08-23 Spec Dependencies: spec = XQ30+ Test: xquery version "3.0"; declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $dependencyTS in $testsets//fots:dependency let $name := $dependencyTS/@type let $value := $dependencyTS/@value group by $name, $value order by $name, $value return <dependency type='{$name}' value='{$value}' /> |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog010[+]
X Catalog010: Created on: 2011-08-23 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $changes := doc('../changes.xml')//change/@id/string() for $xq-test in //fots:test-set let $testfile := $xq-test/@file/doc(resolve-uri(., base-uri(..))) let $testset := $testfile/fots:test-set let $testcases := $testset/fots:test-case for $token in distinct-values((tokenize($testset/@covers-30, ' '), $testcases/@covers-30/tokenize(., ' '), tokenize($testset/@covers, ' '), $testcases/@covers/tokenize(., ' '))) where not($token = $changes) return <out test-set="{string($testset/@name)}" bad-covers-value="{$token}"/> |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog011[+]
X Catalog011: Created on: 2015-01-20 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; <r>{ let $changes := doc('../changes.xml')//spec[contains(@name, '31')]/change let $changesid := $changes/@id/string() let $testfiles := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) let $testsets := $testfiles/fots:test-set for $token in distinct-values($changesid) let $relevant-testsets := $testsets[tokenize(@covers, ' ') = $token] let $relevant-testcases := $testsets/fots:test-case[tokenize(@covers, ' ') = $token] let $count := count($relevant-testsets/fots:test-case) + count($relevant-testcases) where $count lt 5 return <out spec="{$changes[@id=$token]/../@name}" change="{$token}" tests="{$count}" names="{$relevant-testcases/@name}"> {$changes[@id=$token]/text()} </out> }</r> |
fail | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog012[+]
X Catalog012: Created on: 2012-07-10 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) return $testsets//fots:test-case[.//fots:assert-xml[starts-with(., '<?xml')]] |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog013[+]
X Catalog013: Created on: 2015-01-03 Spec Dependencies: spec = XQ10+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) return $testsets//fots:dependency[@type='spec'] [tokenize(normalize-space(@value), ' ')[not (. = ('XP20', 'XP20+', 'XP30', 'XP30+', 'XP31', 'XP31+', 'XQ10', 'XQ10+', 'XQ30', 'XQ30+', 'XQ31', 'XQ31+', 'XT30', 'XT30+'))]]/ concat(../@name, ' => ', @value) |
pass | n/a
notXP31 |
pass | n/a | pass | pass | |
Catalog014[+]
X Catalog014: Created on: 2015-01-20 Spec Dependencies: spec = XQ30+ Test: declare namespace fots = "http://www.w3.org/2010/09/qt-fots-catalog"; let $testsets := //fots:test-set/@file/doc(resolve-uri(., base-uri(..))) for $test in $testsets//fots:test-case where not(exists($test/(@covers | ../@covers))) where exists($test/((fots:dependency | ../fots:dependency)[@type='spec' and contains(@value, '31')])) where not(starts-with($test/@name, 'fo-test-' (: special exemption for generated tests :))) return <out test="{$test/@name}"/> |
pass | n/a
notXP31 |
pass | n/a | pass | pass |