Merge lp:~zorba-coders/zorba/fots-ctest into lp:zorba
- fots-ctest
- Merge into trunk
Status: | Merged | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Approved by: | Chris Hillery | ||||||||||||
Approved revision: | 11164 | ||||||||||||
Merged at revision: | 11167 | ||||||||||||
Proposed branch: | lp:~zorba-coders/zorba/fots-ctest | ||||||||||||
Merge into: | lp:zorba | ||||||||||||
Diff against target: |
7290 lines (+1731/-2755) 19 files modified
CMakeLists.txt (+10/-8) bin/CMakeLists.txt (+2/-1) test/CMakeLists.txt (+2/-0) test/fots/CMakeLists.txt (+1229/-0) test/fots/ImportFOTS.cmake (+106/-0) test/fots/README.TXT (+26/-0) test/fots/get-tests.xq (+25/-0) test/fots_driver/FOTSZorbaManifest.xml (+0/-66) test/fots_driver/README.TXT (+0/-49) test/fots_driver/cli.xq (+0/-197) test/fots_driver/environment.xq (+0/-561) test/fots_driver/errors.xq (+0/-36) test/fots_driver/evaluate.xq (+0/-565) test/fots_driver/feedback.xq (+331/-0) test/fots_driver/fots-driver.xq (+0/-752) test/fots_driver/reporting.xq (+0/-244) test/fots_driver/tools/dependencies.xq (+0/-27) test/fots_driver/tools/process.xq (+0/-130) test/fots_driver/util.xq (+0/-119) |
||||||||||||
To merge this branch: | bzr merge lp:~zorba-coders/zorba/fots-ctest | ||||||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Chris Hillery | Approve | ||
Sorin Marian Nasoi | Approve | ||
Review via email: mp+138071@code.launchpad.net |
Commit message
CTest integration for FOTS driver. Allows automated import of FOTS, and enabling one CTest test per FOTS test set *or* per FOTS test case.
Description of the change
Chris Hillery (ceejatec) wrote : | # |
Sorin Marian Nasoi (sorin.marian.nasoi) wrote : | # |
> A couple questions:
>
> 1. Can the result="" attribute of a <test-case> in FOTS driver output have
> values other than "pass" or "fail"? Currently I am determining whether a CTest
> test passes based on this output.
I tried to make the default output of FOTS driver the exact thing needed for a W3C ocnformance submission.
That is why the values of result are the ones defined in the:
http://
<xsd:simpleType name="resultSta
> 2. Would it be useful (for developers) to also allow CTest tests based on FOTS
> dependencies? If so, is it possible to use cli.xq to get a list of tests for a
> dependency, and to execute all tests for a dependency?
I do believe this is useful, for instance to run only the tests that have a HOF dependency.
:) I do think that is useful, and that is why this is already implemented:
Please try running the FOTS driver CLI with:
[...] -e mode:=list-
or
[...] -e mode:=run-test-sets -e testSetPrefixes
this should be exactly what you asked for.
The value passed to 'dependency' attribute should be in the form:
VALUE_SATISFIED. If SATISFIED is missing, 'true' is assumed.
the VALUE are the ones defined in the
http://
- 11141. By Sorin Marian Nasoi <email address hidden>
-
- the 'assertType' option was moved in the fots-driver:
list-test- cases method
- replaced 'showResult' with 'verbose'
- added 'expectedFailuresPath' optional param for mode 'run-test-sets'; the ExpectedFailure s.xml is a well formed XML, it's not a XML fragment.
If the test PASSED and it's marked as EXPECTED_FAIL or test FAILED and it's not marked as EXPECTED_FAIL => it's reported as FAIL (a.k.a regression); otherwise it's reported as PASS.
- the excepted test cases are reported as "notRun" - 11142. By Sorin Marian Nasoi <email address hidden>
-
Merged lp:zorba.
- 11143. By Sorin Marian Nasoi <email address hidden>
-
Fix for the bug added after removing the default element namespace declaration in the 'fots-driver' module.
- 11144. By Chris Hillery
-
Initial support for ExpectedFailures integrated with ctest.
- 11145. By Chris Hillery
-
Added EXPECTED_
FOTS_FAILURE( ), tied to FOTS driver ctest integration.
Initial pass of 1615 expected failures for current FOTS. - 11146. By Sorin Marian Nasoi <email address hidden>
-
Updated the structure of the ExpectedFailure
s.xml. - 11147. By Sorin Marian Nasoi <email address hidden>
-
Modified the 'fots-driver' to handle the new structure of the ExpectedFailure
s.xml. - 11148. By Sorin Marian Nasoi <email address hidden>
-
The test cases taht are not run are reported 'pass'/'fail' when the ExpectedFailure
s.xml is added as a parameter.
Otherwise they are reported as 'notRun'. - 11149. By Chris Hillery
-
Produce nested FOTSExpectedFai
lures.xml, hopefully for speed improvements. - 11150. By Chris Hillery
-
CamelCase element names to match driver.
- 11151. By Sorin Marian Nasoi <email address hidden>
-
The tests that are not run are always reported as "notRun" regardless of the fact that an ExpectedFailure
s.xml was passed or not. - 11152. By Sorin Marian Nasoi <email address hidden>
-
Merged lp:zorba step 1.
- 11153. By Sorin Marian Nasoi <email address hidden>
-
Merged lp:zorba step 2.
- 11154. By Sorin Marian Nasoi <email address hidden>
-
Fixed an error in the FOTS driver that caused test cases that expected an error but returned an empty result to be reported as PASS when run with verbose=true.
- 11155. By Sorin Marian Nasoi <email address hidden>
-
Added a regression report.
ALso the CTest integration is able to spot the regressions.
Sorin Marian Nasoi (sorin.marian.nasoi) : | # |
- 11156. By Chris Hillery
-
Updated to latest FOTS.
- 11157. By Chris Hillery
-
Output actual results and queries as CDATA blocks, for ease in cut-and-paste.
- 11158. By Sorin Marian Nasoi <email address hidden>
-
Merged latest fots-ctest version.
- 11159. By Sorin Marian Nasoi <email address hidden>
-
Merged latest lp:zorba.
- 11160. By Sorin Marian Nasoi <email address hidden>
-
- moved all functions related to giving info about the test cases results intoa new module called 'feedback.xq'
- in case 'ExpectedFailures.xml' is passed, there's a node called 'comment' that mentions the reason the test case was considered s 'pass' or 'fail' - 11161. By Sorin Marian Nasoi <email address hidden>
-
Updated the 'EXPECTED_
FOTS_FAILURE' list with:
- test cases that are slow
- test cases that are crashing
- test cases that are failing in the latest version of the FOTS, meaning 'FOTS_191212.tgz'.
Sorin Marian Nasoi (sorin.marian.nasoi) : | # |
- 11162. By Chris Hillery
-
Update set of elements output as CDATA.
- 11163. By Sorin Marian Nasoi <email address hidden>
-
Merged trunk.
- 11164. By Sorin Marian Nasoi <email address hidden>
-
Merged lp:zorba trunk.
Chris Hillery (ceejatec) : | # |
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue starting for merge proposal.
Log at: http://
Zorba Build Bot (zorba-buildbot) wrote : | # |
Validation queue job fots-ctest-
All tests succeeded!
Preview Diff
1 | === modified file 'CMakeLists.txt' |
2 | --- CMakeLists.txt 2012-10-08 12:09:36 +0000 |
3 | +++ CMakeLists.txt 2013-01-08 14:37:31 +0000 |
4 | @@ -550,12 +550,16 @@ |
5 | ADD_SUBDIRECTORY(scripts) |
6 | ADD_SUBDIRECTORY(cmake_modules) |
7 | |
8 | -# Subdirectory ordering: We need to include "test" before "config" so |
9 | -# ZorbaConfig knows about testdriver. We need to include "config" |
10 | -# before "modules" so external modules will be able to find |
11 | -# ZorbaConfig.cmake. We need to include "modules" before "include" so |
12 | -# config.h can know eg. whether we found CURL. We need to include "modules" |
13 | -# before "doc" so xqdoc can know what non-core modules are available. |
14 | +# Subdirectory ordering: We need to include "bin" before "test" so |
15 | +# that test/fots can add zorbacmd-based tests. We need to include |
16 | +# "test" before "config" so ZorbaConfig knows about testdriver. We |
17 | +# need to include "config" before "modules" so external modules will |
18 | +# be able to find ZorbaConfig.cmake. We need to include "modules" |
19 | +# before "include" so config.h can know eg. whether we found CURL. We |
20 | +# need to include "modules" before "doc" so xqdoc can know what |
21 | +# non-core modules are available. |
22 | + |
23 | +ADD_SUBDIRECTORY(bin) |
24 | |
25 | ADD_SUBDIRECTORY(test) |
26 | ADD_SUBDIRECTORY(config) |
27 | @@ -572,8 +576,6 @@ |
28 | ADD_SUBDIRECTORY (swig) |
29 | ENDIF (SWIG_FOUND) |
30 | |
31 | -ADD_SUBDIRECTORY(bin) |
32 | - |
33 | # add the uninstall support |
34 | # QQQ move to config/ |
35 | CONFIGURE_FILE( |
36 | |
37 | === modified file 'bin/CMakeLists.txt' |
38 | --- bin/CMakeLists.txt 2012-11-08 21:57:10 +0000 |
39 | +++ bin/CMakeLists.txt 2013-01-08 14:37:31 +0000 |
40 | @@ -15,6 +15,8 @@ |
41 | INCLUDE_DIRECTORIES(AFTER ${CMAKE_SOURCE_DIR}/src/) |
42 | INCLUDE_DIRECTORIES(AFTER ${CMAKE_CURRENT_SOURCE_DIR}) |
43 | |
44 | +INCLUDE("${CMAKE_SOURCE_DIR}/cmake_modules/ZorbaGenerateExe.cmake") |
45 | + |
46 | IF (ZORBA_WITH_DEBUGGER) |
47 | IF (NOT WIN32) |
48 | FIND_PACKAGE (Libedit) |
49 | @@ -49,7 +51,6 @@ |
50 | path_util.cpp |
51 | ) |
52 | |
53 | -INCLUDE("${CMAKE_SOURCE_DIR}/cmake_modules/ZorbaGenerateExe.cmake") |
54 | ZORBA_GENERATE_EXE("zorbacmd" "${SRCS}" "" "zorba" "bin") |
55 | |
56 | |
57 | |
58 | === modified file 'test/CMakeLists.txt' |
59 | --- test/CMakeLists.txt 2012-10-08 12:09:36 +0000 |
60 | +++ test/CMakeLists.txt 2013-01-08 14:37:31 +0000 |
61 | @@ -37,6 +37,8 @@ |
62 | ADD_SUBDIRECTORY(update) |
63 | ADD_SUBDIRECTORY(sax2) |
64 | |
65 | +ADD_SUBDIRECTORY(fots) |
66 | + |
67 | SET (TEST_PLAN_SERIALIZER_SRCS |
68 | test_plan_serializer.cpp |
69 | timer.cpp) |
70 | |
71 | === added directory 'test/fots' |
72 | === added file 'test/fots/CMakeLists.txt' |
73 | --- test/fots/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
74 | +++ test/fots/CMakeLists.txt 2013-01-08 14:37:31 +0000 |
75 | @@ -0,0 +1,1229 @@ |
76 | +# Copyright 2006-2008 The FLWOR Foundation. |
77 | +# |
78 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
79 | +# you may not use this file except in compliance with the License. |
80 | +# You may obtain a copy of the License at |
81 | +# |
82 | +# http://www.apache.org/licenses/LICENSE-2.0 |
83 | +# |
84 | +# Unless required by applicable law or agreed to in writing, software |
85 | +# distributed under the License is distributed on an "AS IS" BASIS, |
86 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
87 | +# See the License for the specific language governing permissions and |
88 | +# limitations under the License. |
89 | + |
90 | +# Add a target to import FOTS |
91 | +ADD_CUSTOM_TARGET(fots-import |
92 | + COMMAND "${CMAKE_COMMAND}" |
93 | + -D "ZORBA=${ZORBA_EXE}" |
94 | + -D "BUILDDIR=${PROJECT_BINARY_DIR}" |
95 | + -P "${CMAKE_CURRENT_SOURCE_DIR}/ImportFOTS.cmake") |
96 | + |
97 | +# Create cached version of activate setting |
98 | +SET (ZORBA_FOTS_ACTIVATE inactive CACHE STRING "Which FOTS tests to activate") |
99 | +MARK_AS_ADVANCED (ZORBA_FOTS_ACTIVATE) |
100 | + |
101 | +# Add targets to set activate flag |
102 | +ADD_CUSTOM_TARGET(fots-activate-sets |
103 | + COMMAND "${CMAKE_COMMAND}" |
104 | + -D "ZORBA_FOTS_ACTIVATE=sets" "${PROJECT_SOURCE_DIR}" |
105 | + WORKING_DIRECTORY "${PROJECT_BINARY_DIR}") |
106 | +ADD_CUSTOM_TARGET(fots-activate-cases |
107 | + COMMAND "${CMAKE_COMMAND}" |
108 | + -D "ZORBA_FOTS_ACTIVATE=cases" "${PROJECT_SOURCE_DIR}" |
109 | + WORKING_DIRECTORY "${PROJECT_BINARY_DIR}") |
110 | +ADD_CUSTOM_TARGET(fots-deactivate |
111 | + COMMAND "${CMAKE_COMMAND}" |
112 | + -D "ZORBA_FOTS_ACTIVATE=inactive" "${PROJECT_SOURCE_DIR}" |
113 | + WORKING_DIRECTORY "${PROJECT_BINARY_DIR}") |
114 | + |
115 | +# Load FOTS test scripts (if they exist) depending on flag |
116 | +IF ("${ZORBA_FOTS_ACTIVATE}" STREQUAL "sets") |
117 | + MESSAGE (STATUS "Adding FOTS test-set tests") |
118 | + SET (_fotsscript "${CMAKE_CURRENT_BINARY_DIR}/FOTSSetTests.cmake") |
119 | +ELSEIF ("${ZORBA_FOTS_ACTIVATE}" STREQUAL "cases") |
120 | + MESSAGE (STATUS "Adding FOTS test-case tests (may take a while...)") |
121 | + SET (_fotsscript "${CMAKE_CURRENT_BINARY_DIR}/FOTSCaseTests.cmake") |
122 | +ELSE ("${ZORBA_FOTS_ACTIVATE}" STREQUAL "sets") |
123 | + SET (_fotsscript "") |
124 | +ENDIF ("${ZORBA_FOTS_ACTIVATE}" STREQUAL "sets") |
125 | +IF (NOT _fotsscript STREQUAL "") |
126 | + IF (EXISTS "${_fotsscript}") |
127 | + INCLUDE ("${_fotsscript}") |
128 | + ELSE (EXISTS "${_fotsscript}") |
129 | + MESSAGE (WARNING "...${_fotsscript} does not exist, not adding FOTS tests " |
130 | + "after all (did you forget to run the 'fots-import' target?)") |
131 | + ENDIF (EXISTS "${_fotsscript}") |
132 | +ENDIF (NOT _fotsscript STREQUAL "") |
133 | + |
134 | + |
135 | +# Customized macro for FOTS tests |
136 | +MACRO (expected_fots_failure) |
137 | + PARSE_ARGUMENTS (EFF "" "" "SLOW;CRASH" ${ARGN}) |
138 | + LIST (LENGTH EFF_DEFAULT_ARGS _numargs) |
139 | + IF (NOT _numargs EQUAL 3) |
140 | + MESSAGE (FATAL_ERROR "Invalid arguments to EXPECTED_FOTS_FAILURE: ${ARGN}") |
141 | + ENDIF (NOT _numargs EQUAL 3) |
142 | + LIST (GET EFF_DEFAULT_ARGS 0 test_set) |
143 | + LIST (GET EFF_DEFAULT_ARGS 1 test_case) |
144 | + LIST (GET EFF_DEFAULT_ARGS 2 bugid) |
145 | + |
146 | + # First add test_set name to list of test_sets, if it's not already there |
147 | + GET_PROPERTY (_test_sets GLOBAL PROPERTY "_ALL_FOTS_TEST_SETS_") |
148 | + LIST (FIND _test_sets ${test_set} _found) |
149 | + IF (_found EQUAL -1) |
150 | + SET_PROPERTY (GLOBAL APPEND PROPERTY "_ALL_FOTS_TEST_SETS_" ${test_set}) |
151 | + ENDIF (_found EQUAL -1) |
152 | + |
153 | + # Determine "notrun" status |
154 | + SET (_notrun) |
155 | + IF (EFF_SLOW OR EFF_CRASH) |
156 | + SET (_notrun true) |
157 | + ENDIF (EFF_SLOW OR EFF_CRASH) |
158 | + |
159 | + # Append three values per test case - case name, bugnum, notRun |
160 | + SET_PROPERTY (GLOBAL APPEND PROPERTY "_FOTS_${test_set}_CASES_" |
161 | + ${test_case} ${bugid} "${_notrun}") |
162 | +ENDMACRO (expected_fots_failure) |
163 | + |
164 | +## |
165 | +## Place all known failing FOTS tests here! |
166 | +## |
167 | +#"slow" test |
168 | +EXPECTED_FOTS_FAILURE (SLOW fn-subsequence cbcl-subsequence-011 1069794) |
169 | +EXPECTED_FOTS_FAILURE (SLOW fn-subsequence cbcl-subsequence-012 1069794) |
170 | +EXPECTED_FOTS_FAILURE (SLOW fn-subsequence cbcl-subsequence-013 1069794) |
171 | +EXPECTED_FOTS_FAILURE (SLOW fn-subsequence cbcl-subsequence-014 1069794) |
172 | + |
173 | +#"crashing" test |
174 | +EXPECTED_FOTS_FAILURE (CRASH fn-matches.re re00975 1070533) |
175 | +EXPECTED_FOTS_FAILURE (CRASH fn-matches.re re00976 1070533) |
176 | +EXPECTED_FOTS_FAILURE (CRASH fn-matches.re re00976a 1070533) |
177 | +EXPECTED_FOTS_FAILURE (CRASH fn-unparsed-text-lines fn-unparsed-text-lines-052 1073175) |
178 | + |
179 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog001 0) |
180 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog002 0) |
181 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog003 0) |
182 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog004 0) |
183 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog005 0) |
184 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog006 0) |
185 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog007 0) |
186 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog008 0) |
187 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog009 0) |
188 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog010 0) |
189 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog011 0) |
190 | +EXPECTED_FOTS_FAILURE (app-CatalogCheck Catalog012 0) |
191 | +EXPECTED_FOTS_FAILURE (app-Demos sudoku 0) |
192 | +EXPECTED_FOTS_FAILURE (app-Demos currencysvg 0) |
193 | +EXPECTED_FOTS_FAILURE (app-Demos itunes 0) |
194 | +EXPECTED_FOTS_FAILURE (app-FunctxFn functx-fn-number-all 0) |
195 | +EXPECTED_FOTS_FAILURE (app-FunctxFunctx functx-functx-copy-attributes-1 0) |
196 | +EXPECTED_FOTS_FAILURE (app-FunctxFunctx functx-functx-copy-attributes-all 0) |
197 | +EXPECTED_FOTS_FAILURE (app-FunctxFunctx functx-functx-id-from-element-1 0) |
198 | +EXPECTED_FOTS_FAILURE (app-FunctxFunctx functx-functx-sort-as-numeric-all 0) |
199 | +EXPECTED_FOTS_FAILURE (app-FunctxFunctx functx-functx-sort-case-insensitive-all 0) |
200 | +EXPECTED_FOTS_FAILURE (app-FunctxFunctx functx-functx-sort-all 0) |
201 | +EXPECTED_FOTS_FAILURE (app-UseCaseNS ns-queries-results-q5 0) |
202 | +EXPECTED_FOTS_FAILURE (app-UseCaseNS ns-queries-results-q8 0) |
203 | +EXPECTED_FOTS_FAILURE (app-UseCaseSTRING string-queries-results-q1 0) |
204 | +EXPECTED_FOTS_FAILURE (app-UseCaseSTRING string-queries-results-q2 0) |
205 | +EXPECTED_FOTS_FAILURE (app-UseCaseSTRING string-queries-results-q4 0) |
206 | +EXPECTED_FOTS_FAILURE (app-UseCaseSTRING string-queries-results-q5 0) |
207 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q2 0) |
208 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q3 0) |
209 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q8 0) |
210 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q9 0) |
211 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q10 0) |
212 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q11 0) |
213 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q12 0) |
214 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q13 0) |
215 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q14 0) |
216 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q15 0) |
217 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q16 0) |
218 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q17 0) |
219 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q18 0) |
220 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q19 0) |
221 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-Q20 0) |
222 | +EXPECTED_FOTS_FAILURE (app-XMark XMark-All 0) |
223 | +EXPECTED_FOTS_FAILURE (fn-adjust-date-to-timezone cbcl-adjust-date-to-timezone-002 0) |
224 | +EXPECTED_FOTS_FAILURE (fn-adjust-date-to-timezone cbcl-adjust-date-to-timezone-003 0) |
225 | +EXPECTED_FOTS_FAILURE (fn-adjust-dateTime-to-timezone cbcl-adjust-dateTime-to-timezone-002 0) |
226 | +EXPECTED_FOTS_FAILURE (fn-adjust-dateTime-to-timezone cbcl-adjust-dateTime-to-timezone-003 0) |
227 | +EXPECTED_FOTS_FAILURE (fn-analyze-string analyzeString-008 0) |
228 | +EXPECTED_FOTS_FAILURE (fn-analyze-string analyzeString-017 0) |
229 | +EXPECTED_FOTS_FAILURE (fn-analyze-string analyzeString-017a 0) |
230 | +EXPECTED_FOTS_FAILURE (fn-available-environment-variables fn-available-environment-variables-011 0) |
231 | +EXPECTED_FOTS_FAILURE (fn-avg cbcl-avg-002 0) |
232 | +EXPECTED_FOTS_FAILURE (fn-avg cbcl-avg-003 0) |
233 | +EXPECTED_FOTS_FAILURE (fn-codepoints-to-string K-CodepointToStringFunc-13 0) |
234 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-4 0) |
235 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-4d 0) |
236 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-5 0) |
237 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-5d 0) |
238 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-6 0) |
239 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-8 0) |
240 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-9 0) |
241 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-10 0) |
242 | +EXPECTED_FOTS_FAILURE (fn-collection fn-collection-10d 0) |
243 | +EXPECTED_FOTS_FAILURE (fn-compare compare-010 0) |
244 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K-SeqDeepEqualFunc-56 0) |
245 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K-SeqDeepEqualFunc-57 0) |
246 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K-SeqDeepEqualFunc-58 0) |
247 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K-SeqDeepEqualFunc-59 0) |
248 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K-SeqDeepEqualFunc-60 0) |
249 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K-SeqDeepEqualFunc-61 0) |
250 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K-SeqDeepEqualFunc-62 0) |
251 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-36 0) |
252 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-37 0) |
253 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-38 0) |
254 | +EXPECTED_FOTS_FAILURE (fn-deep-equal K2-SeqDeepEqualFunc-39 0) |
255 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-mixed-args-005 0) |
256 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-mixed-args-006 0) |
257 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-mixed-args-009 0) |
258 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-mixed-args-010 0) |
259 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-mixed-args-011 0) |
260 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-mixed-args-018 0) |
261 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-mixed-args-032 0) |
262 | +EXPECTED_FOTS_FAILURE (fn-distinct-values fn-distinct-values-2 0) |
263 | +EXPECTED_FOTS_FAILURE (fn-distinct-values cbcl-distinct-values-002 0) |
264 | +EXPECTED_FOTS_FAILURE (fn-distinct-values cbcl-distinct-values-002b 0) |
265 | +EXPECTED_FOTS_FAILURE (fn-distinct-values cbcl-distinct-values-003 0) |
266 | +EXPECTED_FOTS_FAILURE (fn-doc fn-doc-25 0) |
267 | +EXPECTED_FOTS_FAILURE (fn-doc fn-doc-33 0) |
268 | +EXPECTED_FOTS_FAILURE (fn-environment-variable environment-variable-005 0) |
269 | +EXPECTED_FOTS_FAILURE (fn-environment-variable environment-variable-006 0) |
270 | +EXPECTED_FOTS_FAILURE (fn-environment-variable environment-variable-007 0) |
271 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-001d 0) |
272 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-001g 0) |
273 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-005 0) |
274 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-006 0) |
275 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-007a 0) |
276 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-007b 0) |
277 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-007c 0) |
278 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-008a 0) |
279 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-008b 0) |
280 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-008c 0) |
281 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-009 0) |
282 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-010 0) |
283 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-014 0) |
284 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-015 0) |
285 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-016 0) |
286 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-017 0) |
287 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-018 0) |
288 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-019 0) |
289 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-020 0) |
290 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-021 0) |
291 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-022 0) |
292 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-023 0) |
293 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-024 0) |
294 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-025 0) |
295 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-026 0) |
296 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-027 0) |
297 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en117 0) |
298 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en118 0) |
299 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en123 0) |
300 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en124 0) |
301 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en125 0) |
302 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en126 0) |
303 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en127 0) |
304 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en128 0) |
305 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en129 0) |
306 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en130 0) |
307 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en131 0) |
308 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en132 0) |
309 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en133 0) |
310 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en134 0) |
311 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en141 0) |
312 | +EXPECTED_FOTS_FAILURE (fn-format-date format-date-en151 0) |
313 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-001d 0) |
314 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-001g 0) |
315 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-002g 0) |
316 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-002h 0) |
317 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-002i 0) |
318 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-003d 0) |
319 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-003g 0) |
320 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-003m 0) |
321 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-003n 0) |
322 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-003p 0) |
323 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-005 0) |
324 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-006 0) |
325 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-009 0) |
326 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-010 0) |
327 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-011 0) |
328 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-012 0) |
329 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-013p 0) |
330 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-013s 0) |
331 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-013u 0) |
332 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-014 0) |
333 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-015 0) |
334 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-016 0) |
335 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-017 0) |
336 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-018 0) |
337 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-en141 0) |
338 | +EXPECTED_FOTS_FAILURE (fn-format-dateTime format-dateTime-en151 0) |
339 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-025 0) |
340 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-026 0) |
341 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-030 0) |
342 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-031 0) |
343 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-033 0) |
344 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-035 0) |
345 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-038 0) |
346 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-039 0) |
347 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-043 0) |
348 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-044 0) |
349 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-049 0) |
350 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-050 0) |
351 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-052 0) |
352 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-055 0) |
353 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-056 0) |
354 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-057 0) |
355 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-058 0) |
356 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-059 0) |
357 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-060 0) |
358 | +EXPECTED_FOTS_FAILURE (fn-format-integer format-integer-061 0) |
359 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat14 0) |
360 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat15 0) |
361 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat34 0) |
362 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat38 0) |
363 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat40 0) |
364 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat41 0) |
365 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat42 0) |
366 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat60a 0) |
367 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat60m 0) |
368 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat60o 0) |
369 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat60q 0) |
370 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat63 0) |
371 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat64 0) |
372 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat70 0) |
373 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat71 0) |
374 | +EXPECTED_FOTS_FAILURE (fn-format-number numberformat86 0) |
375 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-002g 0) |
376 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-002h 0) |
377 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-002i 0) |
378 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-013p 0) |
379 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-013s 0) |
380 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-013u 0) |
381 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-014 0) |
382 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-015 0) |
383 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-016 0) |
384 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-017 0) |
385 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-018 0) |
386 | +EXPECTED_FOTS_FAILURE (fn-format-time format-time-816err 0) |
387 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-001 0) |
388 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-002 0) |
389 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-003 0) |
390 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-004 0) |
391 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-005 0) |
392 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-006 0) |
393 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-012 0) |
394 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-013 0) |
395 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-014 0) |
396 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-015 0) |
397 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-017 0) |
398 | +EXPECTED_FOTS_FAILURE (fn-generate-id generate-id-018 0) |
399 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-5 0) |
400 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-7 0) |
401 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-8 0) |
402 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-9 0) |
403 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-12 0) |
404 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-13 0) |
405 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-15 0) |
406 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-16 0) |
407 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-17 0) |
408 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-18 0) |
409 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-19 0) |
410 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-20 0) |
411 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-21 0) |
412 | +EXPECTED_FOTS_FAILURE (fn-id fn-id-dtd-23 0) |
413 | +EXPECTED_FOTS_FAILURE (fn-id K2-SeqIDFunc-11 0) |
414 | +EXPECTED_FOTS_FAILURE (fn-id K2-SeqIDFunc-12 0) |
415 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-5 0) |
416 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-7 0) |
417 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-8 0) |
418 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-9 0) |
419 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-12 0) |
420 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-13 0) |
421 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-14 0) |
422 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-15 0) |
423 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-16 0) |
424 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-17 0) |
425 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-18 0) |
426 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-19 0) |
427 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-20 0) |
428 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-21 0) |
429 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-23 0) |
430 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-24 0) |
431 | +EXPECTED_FOTS_FAILURE (fn-idref fn-idref-dtd-25 0) |
432 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes fn-in-scope-prefixes-21 0) |
433 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes fn-in-scope-prefixes-22 0) |
434 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes fn-in-scope-prefixes-24 0) |
435 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes fn-in-scope-prefixes-25 0) |
436 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes K2-InScopePrefixesFunc-11 0) |
437 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes K2-InScopePrefixesFunc-12 0) |
438 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes K2-InScopePrefixesFunc-18 0) |
439 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes K2-InScopePrefixesFunc-26 0) |
440 | +EXPECTED_FOTS_FAILURE (fn-in-scope-prefixes K2-InScopePrefixesFunc-28 0) |
441 | +EXPECTED_FOTS_FAILURE (fn-iri-to-uri fn-iri-to-uri-18 0) |
442 | +EXPECTED_FOTS_FAILURE (fn-iri-to-uri fn-iri-to-uri-18A 0) |
443 | +EXPECTED_FOTS_FAILURE (fn-last last-11 0) |
444 | +EXPECTED_FOTS_FAILURE (fn-last last-24 0) |
445 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc001 0) |
446 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc002 0) |
447 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc003 0) |
448 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc004 0) |
449 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc005 0) |
450 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc018 0) |
451 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc019 0) |
452 | +EXPECTED_FOTS_FAILURE (fn-local-name-from-QName LocalNameFromQNameFunc020 0) |
453 | +EXPECTED_FOTS_FAILURE (fn-matches caselessmatch10 0) |
454 | +EXPECTED_FOTS_FAILURE (fn-matches caselessmatch11 0) |
455 | +EXPECTED_FOTS_FAILURE (fn-matches cbcl-matches-038 0) |
456 | +EXPECTED_FOTS_FAILURE (fn-matches cbcl-matches-039 0) |
457 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00041 0) |
458 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00055 0) |
459 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00058 0) |
460 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00059 0) |
461 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00060 0) |
462 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00063 0) |
463 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00071 0) |
464 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00072 0) |
465 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00127a 0) |
466 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00129a 0) |
467 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00130a 0) |
468 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00288 0) |
469 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00370 0) |
470 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00480 0) |
471 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00498 0) |
472 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00501 0) |
473 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00506 0) |
474 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00589 0) |
475 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00590 0) |
476 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00613 0) |
477 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00680 0) |
478 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00693 0) |
479 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00694 0) |
480 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00695 0) |
481 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00696 0) |
482 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00697 0) |
483 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00698 0) |
484 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00702 0) |
485 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00703 0) |
486 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00704 0) |
487 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00705 0) |
488 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00706 0) |
489 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00707 0) |
490 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00708 0) |
491 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00709 0) |
492 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00710 0) |
493 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00711 0) |
494 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00712 0) |
495 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00713 0) |
496 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00717 0) |
497 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00718 0) |
498 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00719 0) |
499 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00720 0) |
500 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00721 0) |
501 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00722 0) |
502 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00723 0) |
503 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00730 0) |
504 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00732 0) |
505 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00736 0) |
506 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00739 0) |
507 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00740 0) |
508 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00744 0) |
509 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00745 0) |
510 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00746 0) |
511 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00749 0) |
512 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00750 0) |
513 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00754 0) |
514 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00763 0) |
515 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00767 0) |
516 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00768 0) |
517 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00769 0) |
518 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00770 0) |
519 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00771 0) |
520 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00779 0) |
521 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00780 0) |
522 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00795 0) |
523 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00804 0) |
524 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00805 0) |
525 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00806 0) |
526 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00814 0) |
527 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00867 0) |
528 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00868 0) |
529 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00869 0) |
530 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00870 0) |
531 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00871 0) |
532 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00872 0) |
533 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00873 0) |
534 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00874 0) |
535 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00875 0) |
536 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00876 0) |
537 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00881 0) |
538 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00882 0) |
539 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00890 0) |
540 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00891 0) |
541 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00905 0) |
542 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00912 0) |
543 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00913 0) |
544 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00914 0) |
545 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00919 0) |
546 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00939 0) |
547 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00940 0) |
548 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00941 0) |
549 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00957 0) |
550 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00970 0) |
551 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00977 0) |
552 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00978 0) |
553 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00982 0) |
554 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00983 0) |
555 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00984 0) |
556 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00987 0) |
557 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00988 0) |
558 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00989 0) |
559 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00994 0) |
560 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00998 0) |
561 | +EXPECTED_FOTS_FAILURE (fn-matches.re re00999 0) |
562 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc001 0) |
563 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc002 0) |
564 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc003 0) |
565 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc004 0) |
566 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc005 0) |
567 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc018 0) |
568 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc019 0) |
569 | +EXPECTED_FOTS_FAILURE (fn-namespace-uri-from-QName NamespaceURIFromQNameFunc020 0) |
570 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-33 0) |
571 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-35 0) |
572 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-37 0) |
573 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-38 0) |
574 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-39 0) |
575 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-41 0) |
576 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-44 0) |
577 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-45 0) |
578 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-46 0) |
579 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-47 0) |
580 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-48 0) |
581 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-49 0) |
582 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-50 0) |
583 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-51 0) |
584 | +EXPECTED_FOTS_FAILURE (fn-nilled fn-nilled-52 0) |
585 | +EXPECTED_FOTS_FAILURE (fn-nilled cbcl-nilled-002 0) |
586 | +EXPECTED_FOTS_FAILURE (fn-nilled cbcl-nilled-005 0) |
587 | +EXPECTED_FOTS_FAILURE (fn-normalize-space fn-normalize-space-23 0) |
588 | +EXPECTED_FOTS_FAILURE (fn-normalize-space fn-normalize-space-25 0) |
589 | +EXPECTED_FOTS_FAILURE (fn-normalize-unicode cbcl-fn-normalize-unicode-001 0) |
590 | +EXPECTED_FOTS_FAILURE (fn-normalize-unicode cbcl-fn-normalize-unicode-006 0) |
591 | +EXPECTED_FOTS_FAILURE (fn-parse-xml parse-xml-001 0) |
592 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-001 0) |
593 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-005 0) |
594 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-006 0) |
595 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-007 0) |
596 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-008 0) |
597 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-009 0) |
598 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-010 0) |
599 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-011 0) |
600 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-012 0) |
601 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-013 0) |
602 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-014 0) |
603 | +EXPECTED_FOTS_FAILURE (fn-parse-xml-fragment parse-xml-fragment-015 0) |
604 | +EXPECTED_FOTS_FAILURE (fn-position position-23 0) |
605 | +EXPECTED_FOTS_FAILURE (fn-replace fn-replace-34 0) |
606 | +EXPECTED_FOTS_FAILURE (fn-replace fn-replace-35 0) |
607 | +EXPECTED_FOTS_FAILURE (fn-replace fn-replace-42 0) |
608 | +EXPECTED_FOTS_FAILURE (fn-replace K2-ReplaceFunc-8 0) |
609 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even fn-round-half-to-even-9 0) |
610 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even fn-round-half-to-even-30 0) |
611 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even fn-round-half-to-even-31 0) |
612 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even fn-round-half-to-even-32 0) |
613 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even fn-round-half-to-even-33 0) |
614 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even fn-round-half-to-even-34 0) |
615 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even fn-round-half-to-even-35 0) |
616 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even cbcl-round-half-to-even-001 0) |
617 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even cbcl-round-half-to-even-003 0) |
618 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even cbcl-round-half-to-even-005 0) |
619 | +EXPECTED_FOTS_FAILURE (fn-round-half-to-even cbcl-round-half-to-even-012 0) |
620 | +EXPECTED_FOTS_FAILURE (fn-serialize serialize-xml-007a 0) |
621 | +EXPECTED_FOTS_FAILURE (fn-serialize serialize-xml-008 0) |
622 | +EXPECTED_FOTS_FAILURE (fn-string fn-string-22 0) |
623 | +EXPECTED_FOTS_FAILURE (fn-string-length fn-string-length-22 0) |
624 | +EXPECTED_FOTS_FAILURE (fn-string-length fn-string-length-24 0) |
625 | +EXPECTED_FOTS_FAILURE (fn-subsequence cbcl-subsequence-004 0) |
626 | +EXPECTED_FOTS_FAILURE (fn-subsequence cbcl-subsequence-017 0) |
627 | +EXPECTED_FOTS_FAILURE (fn-subsequence cbcl-subsequence-018 0) |
628 | +EXPECTED_FOTS_FAILURE (fn-subsequence cbcl-subsequence-024 0) |
629 | +EXPECTED_FOTS_FAILURE (fn-substring-after fn-substring-after-24 0) |
630 | +EXPECTED_FOTS_FAILURE (fn-substring-before fn-substring-before-24 0) |
631 | +EXPECTED_FOTS_FAILURE (fn-tokenize fn-tokenize-31 0) |
632 | +EXPECTED_FOTS_FAILURE (fn-tokenize fn-tokenize-32 0) |
633 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-001 0) |
634 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-002 0) |
635 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-003 0) |
636 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-004 0) |
637 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-005 0) |
638 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-006 0) |
639 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-007 0) |
640 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-008 0) |
641 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-009 0) |
642 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-010 0) |
643 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-011 0) |
644 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-012 0) |
645 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-013 0) |
646 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-014 0) |
647 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-015 0) |
648 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-016 0) |
649 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-017 0) |
650 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-018 0) |
651 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-019 0) |
652 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-020 0) |
653 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-021 0) |
654 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-022 0) |
655 | +EXPECTED_FOTS_FAILURE (fn-unordered fn-unordered-mix-args-023 0) |
656 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text fn-unparsed-text-013 0) |
657 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text fn-unparsed-text-014 0) |
658 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text fn-unparsed-text-037 0) |
659 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text fn-unparsed-text-038 0) |
660 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text fn-unparsed-text-039 0) |
661 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text fn-unparsed-text-042 0) |
662 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text fn-unparsed-text-050 0) |
663 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-available fn-unparsed-text-available-013 0) |
664 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-available fn-unparsed-text-available-014 0) |
665 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-available fn-unparsed-text-available-023 0) |
666 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-available fn-unparsed-text-available-024 0) |
667 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-available fn-unparsed-text-available-036 0) |
668 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-available fn-unparsed-text-available-037 0) |
669 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-available fn-unparsed-text-available-038 0) |
670 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-013 0) |
671 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-014 0) |
672 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-037 0) |
673 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-038 0) |
674 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-039 0) |
675 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-040 0) |
676 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-042 0) |
677 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-047 0) |
678 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-048 0) |
679 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-049 0) |
680 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-050 0) |
681 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-051 0) |
682 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-053 0) |
683 | +EXPECTED_FOTS_FAILURE (fn-unparsed-text-lines fn-unparsed-text-lines-054 0) |
684 | +EXPECTED_FOTS_FAILURE (math-acos math-acos-003 0) |
685 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FOAR0001_9 0) |
686 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FOAR0002_1 0) |
687 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FOAR0002-5 0) |
688 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FOCA0001_1 0) |
689 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FOCA0003_1 0) |
690 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-1 0) |
691 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-10 0) |
692 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-11 0) |
693 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-12 0) |
694 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-2 0) |
695 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-3 0) |
696 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-4 0) |
697 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-5 0) |
698 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-6 0) |
699 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-7 0) |
700 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-8 0) |
701 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0001-9 0) |
702 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-1 0) |
703 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-2 0) |
704 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-3 0) |
705 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-4 0) |
706 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-6 0) |
707 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-7 0) |
708 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-8 0) |
709 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes FODT0002-9 0) |
710 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes XPTY0004_45 0) |
711 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes XQDY0091 0) |
712 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes XQST0046_13 0) |
713 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes XQST0046_14 0) |
714 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes XQST0085 0) |
715 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes XQTY0086_2 0) |
716 | +EXPECTED_FOTS_FAILURE (misc-CombinedErrorCodes XQTY0086_3 0) |
717 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-5 0) |
718 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-7 0) |
719 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-8 0) |
720 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-9 0) |
721 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-12 0) |
722 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-13 0) |
723 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-15 0) |
724 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-16 0) |
725 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-17 0) |
726 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-18 0) |
727 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-19 0) |
728 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-20 0) |
729 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-21 0) |
730 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-id-23 0) |
731 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-5 0) |
732 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-7 0) |
733 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-8 0) |
734 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-9 0) |
735 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-15 0) |
736 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-16 0) |
737 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-17 0) |
738 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-18 0) |
739 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-19 0) |
740 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-20 0) |
741 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-21 0) |
742 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-23 0) |
743 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-30 0) |
744 | +EXPECTED_FOTS_FAILURE (misc-MiscFunctions fn-idref-31 0) |
745 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-1 0) |
746 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-2 0) |
747 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-3 0) |
748 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-4 0) |
749 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-5 0) |
750 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-6 0) |
751 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-9 0) |
752 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-10 0) |
753 | +EXPECTED_FOTS_FAILURE (misc-Serialization K2-Serialization-11 0) |
754 | +EXPECTED_FOTS_FAILURE (misc-XMLEdition XML10-4ed-Excluded-char-1 0) |
755 | +EXPECTED_FOTS_FAILURE (misc-XMLEdition XML10-5ed-Included-char-1 0) |
756 | +EXPECTED_FOTS_FAILURE (misc-XMLEdition XML11-1ed-Included-char-1 0) |
757 | +EXPECTED_FOTS_FAILURE (op-add-dayTimeDurations cbcl-plus-002 0) |
758 | +EXPECTED_FOTS_FAILURE (op-add-dayTimeDurations cbcl-plus-004 0) |
759 | +EXPECTED_FOTS_FAILURE (op-add-dayTimeDurations cbcl-plus-006 0) |
760 | +EXPECTED_FOTS_FAILURE (op-add-dayTimeDurations cbcl-plus-008 0) |
761 | +EXPECTED_FOTS_FAILURE (op-add-dayTimeDuration-to-date cbcl-add-dayTimeDuration-to-date-003 0) |
762 | +EXPECTED_FOTS_FAILURE (op-add-dayTimeDuration-to-dateTime cbcl-add-dayTimeDuration-to-dateTime-003 0) |
763 | +EXPECTED_FOTS_FAILURE (op-add-yearMonthDuration-to-date cbcl-add-yearMonthDuration-to-date-003 0) |
764 | +EXPECTED_FOTS_FAILURE (op-add-yearMonthDuration-to-dateTime cbcl-add-yearMonthDuration-to-dateTime-003 0) |
765 | +EXPECTED_FOTS_FAILURE (op-date-greater-than cbcl-date-gt-001 0) |
766 | +EXPECTED_FOTS_FAILURE (op-date-greater-than cbcl-date-le-001 0) |
767 | +EXPECTED_FOTS_FAILURE (op-date-less-than cbcl-date-ge-001 0) |
768 | +EXPECTED_FOTS_FAILURE (op-date-less-than cbcl-date-lt-001 0) |
769 | +EXPECTED_FOTS_FAILURE (op-divide-dayTimeDuration cbcl-divide-dayTimeDuration-003 0) |
770 | +EXPECTED_FOTS_FAILURE (op-divide-dayTimeDuration-by-dayTimeDuration cbcl-divide-dayTimeDuration-by-dayTimeDuration-001 0) |
771 | +EXPECTED_FOTS_FAILURE (op-divide-dayTimeDuration-by-dayTimeDuration cbcl-divide-dayTimeDuration-by-dayTimeDuration-002 0) |
772 | +EXPECTED_FOTS_FAILURE (op-divide-dayTimeDuration-by-dayTimeDuration cbcl-divide-dayTimeDuration-by-dayTimeDuration-003 0) |
773 | +EXPECTED_FOTS_FAILURE (op-divide-yearMonthDuration cbcl-divide-yearMonthDuration-003 0) |
774 | +EXPECTED_FOTS_FAILURE (op-divide-yearMonthDuration-by-yearMonthDuration cbcl-divide-yearMonthDuration-by-yearMonthDuration-001 0) |
775 | +EXPECTED_FOTS_FAILURE (op-intersect fn-intersect-node-args-002 0) |
776 | +EXPECTED_FOTS_FAILURE (op-intersect fn-intersect-node-args-015 0) |
777 | +EXPECTED_FOTS_FAILURE (op-intersect fn-intersect-node-args-016 0) |
778 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-1 0) |
779 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-2 0) |
780 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-3 0) |
781 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-4 0) |
782 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-5 0) |
783 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-6 0) |
784 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-7 0) |
785 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-8 0) |
786 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-9 0) |
787 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-10 0) |
788 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-11 0) |
789 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-12 0) |
790 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-13 0) |
791 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-14 0) |
792 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-15 0) |
793 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-16 0) |
794 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-17 0) |
795 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-18 0) |
796 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-19 0) |
797 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-20 0) |
798 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-21 0) |
799 | +EXPECTED_FOTS_FAILURE (op-NOTATION-equal Comp-notation-22 0) |
800 | +EXPECTED_FOTS_FAILURE (op-numeric-divide op-numeric-divide-big-01 0) |
801 | +EXPECTED_FOTS_FAILURE (op-numeric-integer-divide cbcl-numeric-idivide-002 0) |
802 | +EXPECTED_FOTS_FAILURE (op-numeric-subtract op-numeric-subtract-big-01 0) |
803 | +EXPECTED_FOTS_FAILURE (op-subtract-dates cbcl-subtract-dates-001 0) |
804 | +EXPECTED_FOTS_FAILURE (op-subtract-dates cbcl-subtract-dates-002 0) |
805 | +EXPECTED_FOTS_FAILURE (op-subtract-dates cbcl-subtract-dates-003 0) |
806 | +EXPECTED_FOTS_FAILURE (op-subtract-dates cbcl-subtract-dates-004 0) |
807 | +EXPECTED_FOTS_FAILURE (op-subtract-dateTimes cbcl-subtract-dateTimes-001 0) |
808 | +EXPECTED_FOTS_FAILURE (op-subtract-dateTimes cbcl-subtract-dateTimes-002 0) |
809 | +EXPECTED_FOTS_FAILURE (op-subtract-dateTimes cbcl-subtract-dateTimes-003 0) |
810 | +EXPECTED_FOTS_FAILURE (op-subtract-dateTimes cbcl-subtract-dateTimes-004 0) |
811 | +EXPECTED_FOTS_FAILURE (op-subtract-dayTimeDuration-from-date cbcl-subtract-dayTimeDuration-from-date-002 0) |
812 | +EXPECTED_FOTS_FAILURE (op-subtract-dayTimeDuration-from-dateTime cbcl-subtract-dayTimeDuration-from-dateTime-002 0) |
813 | +EXPECTED_FOTS_FAILURE (op-subtract-dayTimeDurations cbcl-subtract-dayTimeDurations-003 0) |
814 | +EXPECTED_FOTS_FAILURE (op-subtract-dayTimeDurations cbcl-minus-002 0) |
815 | +EXPECTED_FOTS_FAILURE (op-subtract-dayTimeDurations cbcl-minus-004 0) |
816 | +EXPECTED_FOTS_FAILURE (op-subtract-dayTimeDurations cbcl-minus-006 0) |
817 | +EXPECTED_FOTS_FAILURE (op-subtract-dayTimeDurations cbcl-minus-008 0) |
818 | +EXPECTED_FOTS_FAILURE (op-subtract-times cbcl-subtract-times-001 0) |
819 | +EXPECTED_FOTS_FAILURE (op-subtract-times cbcl-subtract-times-002 0) |
820 | +EXPECTED_FOTS_FAILURE (op-subtract-times cbcl-subtract-times-003 0) |
821 | +EXPECTED_FOTS_FAILURE (op-subtract-times cbcl-subtract-times-004 0) |
822 | +EXPECTED_FOTS_FAILURE (op-subtract-yearMonthDuration-from-date cbcl-subtract-yearMonthDuration-from-date-002 0) |
823 | +EXPECTED_FOTS_FAILURE (op-subtract-yearMonthDuration-from-dateTime cbcl-subtract-yearMonthDuration-from-dateTime-002 0) |
824 | +EXPECTED_FOTS_FAILURE (op-subtract-yearMonthDurations cbcl-subtract-yearMonthDurations-003 0) |
825 | +EXPECTED_FOTS_FAILURE (op-union fn-union-node-args-015 0) |
826 | +EXPECTED_FOTS_FAILURE (op-union fn-union-node-args-016 0) |
827 | +EXPECTED_FOTS_FAILURE (op-union fn-union-node-args-017 0) |
828 | +EXPECTED_FOTS_FAILURE (prod-AllowingEmpty outer-013 0) |
829 | +EXPECTED_FOTS_FAILURE (prod-AllowingEmpty outer-016 0) |
830 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-3 0) |
831 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-26 0) |
832 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-27 0) |
833 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-28 0) |
834 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-1 0) |
835 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-2 0) |
836 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-3 0) |
837 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-4 0) |
838 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-5 0) |
839 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-6 0) |
840 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-7 0) |
841 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-8 0) |
842 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-9 0) |
843 | +EXPECTED_FOTS_FAILURE (prod-Annotation annotation-assertion-10 0) |
844 | +EXPECTED_FOTS_FAILURE (prod-AxisStep Axes085 0) |
845 | +EXPECTED_FOTS_FAILURE (prod-AxisStep Axes086 0) |
846 | +EXPECTED_FOTS_FAILURE (prod-AxisStep Axes089 0) |
847 | +EXPECTED_FOTS_FAILURE (prod-AxisStep cbcl-childAxis-001 0) |
848 | +EXPECTED_FOTS_FAILURE (prod-AxisStep cbcl-wild-002 0) |
849 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-3 0) |
850 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-5 0) |
851 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-6 0) |
852 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-8 0) |
853 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-14 0) |
854 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-16 0) |
855 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-17 0) |
856 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-18 0) |
857 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-19 0) |
858 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-20 0) |
859 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-21 0) |
860 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.abbr abbreviatedSyntax-25 0) |
861 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.ancestor ancestor-15 0) |
862 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.ancestor-or-self ancestorself-13 0) |
863 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.ancestor-or-self ancestorself-15 0) |
864 | +EXPECTED_FOTS_FAILURE (prod-AxisStep.ancestor-or-self unabbreviatedSyntax-11 0) |
865 | +EXPECTED_FOTS_FAILURE (prod-BaseURIDecl base-URI-4 0) |
866 | +EXPECTED_FOTS_FAILURE (prod-BaseURIDecl K2-BaseURIProlog-5 0) |
867 | +EXPECTED_FOTS_FAILURE (prod-BoundarySpaceDecl boundary-space-005 0) |
868 | +EXPECTED_FOTS_FAILURE (prod-BoundarySpaceDecl boundary-space-007 0) |
869 | +EXPECTED_FOTS_FAILURE (prod-BoundarySpaceDecl boundary-space-009 0) |
870 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr CastableAs648 0) |
871 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr Castable-UnionType-1 0) |
872 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr Castable-ListType-2 0) |
873 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-date-001 0) |
874 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-date-002 0) |
875 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-dateTime-001 0) |
876 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-dateTime-002 0) |
877 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-duration-001 0) |
878 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-duration-002 0) |
879 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-yearMonthDuration-001 0) |
880 | +EXPECTED_FOTS_FAILURE (prod-CastableExpr cbcl-castable-yearMonthDuration-002 0) |
881 | +EXPECTED_FOTS_FAILURE (prod-CastExpr CastAs673a 0) |
882 | +EXPECTED_FOTS_FAILURE (prod-CastExpr CastAs674a 0) |
883 | +EXPECTED_FOTS_FAILURE (prod-CastExpr CastAsNamespaceSensitiveType-10 0) |
884 | +EXPECTED_FOTS_FAILURE (prod-CastExpr K-SeqExprCast-71b 0) |
885 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-date-001 0) |
886 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-date-002 0) |
887 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-dateTime-001 0) |
888 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-dateTime-002 0) |
889 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-decimal-001 0) |
890 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-decimal-002 0) |
891 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-decimal-003 0) |
892 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-decimal-004 0) |
893 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-duration-001 0) |
894 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-duration-002 0) |
895 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-integer-001 0) |
896 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-integer-002 0) |
897 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-integer-003 0) |
898 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-integer-004 0) |
899 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-ncname-001 0) |
900 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-normalizedString-001 0) |
901 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-normalizedString-001b 0) |
902 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-token-001 0) |
903 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-token-001b 0) |
904 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-yearMonthDuration-001 0) |
905 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.derived cbcl-cast-yearMonthDuration-002 0) |
906 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-1 0) |
907 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-2 0) |
908 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-3 0) |
909 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-5 0) |
910 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-6 0) |
911 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-9 0) |
912 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-10 0) |
913 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-11 0) |
914 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-12 0) |
915 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-16 0) |
916 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-19 0) |
917 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-20 0) |
918 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-21 0) |
919 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-25 0) |
920 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-27 0) |
921 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-28 0) |
922 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-29 0) |
923 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-33 0) |
924 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-UnionType-34 0) |
925 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-1 0) |
926 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-2 0) |
927 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-4 0) |
928 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-7 0) |
929 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-11 0) |
930 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-12 0) |
931 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-14 0) |
932 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-21 0) |
933 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-22 0) |
934 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-28 0) |
935 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-29 0) |
936 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-30 0) |
937 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-31 0) |
938 | +EXPECTED_FOTS_FAILURE (prod-CastExpr.schema CastAs-ListType-32 0) |
939 | +EXPECTED_FOTS_FAILURE (prod-Comment XQueryComment012 0) |
940 | +EXPECTED_FOTS_FAILURE (prod-CompAttrConstructor K2-ComputeConAttr-51 0) |
941 | +EXPECTED_FOTS_FAILURE (prod-CompAttrConstructor K2-ComputeConAttr-53 0) |
942 | +EXPECTED_FOTS_FAILURE (prod-CompAttrConstructor K2-ComputeConAttr-58 0) |
943 | +EXPECTED_FOTS_FAILURE (prod-CompDocConstructor K2-ConDocNode-2 0) |
944 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-001 0) |
945 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-002 0) |
946 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-003 0) |
947 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-004 0) |
948 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-005 0) |
949 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-006 0) |
950 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-010 0) |
951 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-011 0) |
952 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-012 0) |
953 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-013 0) |
954 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-014 0) |
955 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-015 0) |
956 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-022 0) |
957 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-027 0) |
958 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-028 0) |
959 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-030 0) |
960 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-031 0) |
961 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-032 0) |
962 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-033 0) |
963 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-034 0) |
964 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-035 0) |
965 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-036 0) |
966 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-037 0) |
967 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-038 0) |
968 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-039 0) |
969 | +EXPECTED_FOTS_FAILURE (prod-CompNamespaceConstructor nscons-041 0) |
970 | +EXPECTED_FOTS_FAILURE (prod-CompTextConstructor K2-ConText-4 0) |
971 | +EXPECTED_FOTS_FAILURE (prod-ContextItemDecl contextDecl-016 0) |
972 | +EXPECTED_FOTS_FAILURE (prod-ContextItemDecl contextDecl-017 0) |
973 | +EXPECTED_FOTS_FAILURE (prod-ContextItemDecl contextDecl-031 0) |
974 | +EXPECTED_FOTS_FAILURE (prod-ContextItemDecl contextDecl-047 0) |
975 | +EXPECTED_FOTS_FAILURE (prod-ContextItemDecl contextDecl-049 0) |
976 | +EXPECTED_FOTS_FAILURE (prod-ContextItemDecl contextDecl-055 0) |
977 | +EXPECTED_FOTS_FAILURE (prod-CopyNamespacesDecl copynamespace-3 0) |
978 | +EXPECTED_FOTS_FAILURE (prod-CopyNamespacesDecl K2-CopyNamespacesProlog-5 0) |
979 | +EXPECTED_FOTS_FAILURE (prod-CountClause count-007 0) |
980 | +EXPECTED_FOTS_FAILURE (prod-CountClause count-008 0) |
981 | +EXPECTED_FOTS_FAILURE (prod-DecimalFormatDecl decimal-format-14 0) |
982 | +EXPECTED_FOTS_FAILURE (prod-DecimalFormatDecl decimal-format-907err 0) |
983 | +EXPECTED_FOTS_FAILURE (prod-DecimalFormatDecl decimal-format-908err 0) |
984 | +EXPECTED_FOTS_FAILURE (prod-DecimalFormatDecl decimal-format-910err 0) |
985 | +EXPECTED_FOTS_FAILURE (prod-DecimalFormatDecl decimal-format-911err 0) |
986 | +EXPECTED_FOTS_FAILURE (prod-DefaultNamespaceDecl defaultnamespacedeclerr-6 0) |
987 | +EXPECTED_FOTS_FAILURE (prod-DefaultNamespaceDecl defaultnamespacedeclerr-8 0) |
988 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList Constr-attr-nsprein-3 0) |
989 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList Constr-attr-nsprein-4 0) |
990 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList Constr-attr-ws-3 0) |
991 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList Constr-attr-ws-4 0) |
992 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList Constr-attr-ws-5 0) |
993 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList Constr-attr-entref-1 0) |
994 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList Constr-attr-entref-2 0) |
995 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList K2-DirectConElemAttr-75 0) |
996 | +EXPECTED_FOTS_FAILURE (prod-DirAttributeList DirectConElemAttr-1 0) |
997 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor Constr-pi-content-5 0) |
998 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor Constr-comment-5 0) |
999 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-35 0) |
1000 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-46 0) |
1001 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-49 0) |
1002 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-50 0) |
1003 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-51 0) |
1004 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-52 0) |
1005 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-53 0) |
1006 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-54 0) |
1007 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-66 0) |
1008 | +EXPECTED_FOTS_FAILURE (prod-DirectConstructor K2-DirectConOther-70 0) |
1009 | +EXPECTED_FOTS_FAILURE (prod-DirElemConstructor Constr-elem-curlybr-3 0) |
1010 | +EXPECTED_FOTS_FAILURE (prod-DirElemConstructor Constr-elem-curlybr-4 0) |
1011 | +EXPECTED_FOTS_FAILURE (prod-DirElemConstructor K2-DirectConElem-38 0) |
1012 | +EXPECTED_FOTS_FAILURE (prod-DirElemConstructor K2-DirectConElem-48 0) |
1013 | +EXPECTED_FOTS_FAILURE (prod-DirElemConstructor K2-DirectConElem-49 0) |
1014 | +EXPECTED_FOTS_FAILURE (prod-DirElemConstructor K2-DirectConElem-52 0) |
1015 | +EXPECTED_FOTS_FAILURE (prod-DirElemConstructor K2-DirectConElem-53a 0) |
1016 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-eol-3 0) |
1017 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-eol-4 0) |
1018 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-entref-1 0) |
1019 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-entref-3 0) |
1020 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-cdata-1 0) |
1021 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-nsmode-5 0) |
1022 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-nsmode-6 0) |
1023 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-nsmode-7 0) |
1024 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-nsmode-8 0) |
1025 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-nsmode-10 0) |
1026 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent Constr-cont-nsmode-11 0) |
1027 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent K2-DirectConElemContent-28 0) |
1028 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.namespace K2-DirectConElemNamespace-40 0) |
1029 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.namespace K2-DirectConElemNamespace-56 0) |
1030 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.namespace Constr-inscope-10 0) |
1031 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.namespace Constr-inscope-12 0) |
1032 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.namespace Constr-inscope-21 0) |
1033 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.namespace Constr-inscope-22 0) |
1034 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-15 0) |
1035 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-16 0) |
1036 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-17 0) |
1037 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-18 0) |
1038 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-19 0) |
1039 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-20 0) |
1040 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-21 0) |
1041 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-22 0) |
1042 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-23 0) |
1043 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-enclexpr-24 0) |
1044 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-genchref-1 0) |
1045 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-genchref-2 0) |
1046 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-genchref-3 0) |
1047 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace Constr-ws-genchref-4 0) |
1048 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace K2-DirectConElemWhitespace-10 0) |
1049 | +EXPECTED_FOTS_FAILURE (prod-DirElemContent.whitespace K2-DirectConElemWhitespace-25 0) |
1050 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType025 0) |
1051 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType026 0) |
1052 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType027 0) |
1053 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType037 0) |
1054 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType038 0) |
1055 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType039 0) |
1056 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType040 0) |
1057 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType041 0) |
1058 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType042 0) |
1059 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType043 0) |
1060 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType044 0) |
1061 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType048 0) |
1062 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType049 0) |
1063 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType050 0) |
1064 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType051 0) |
1065 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType052 0) |
1066 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr ForExprType053 0) |
1067 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr step-expr-si-2 0) |
1068 | +EXPECTED_FOTS_FAILURE (prod-FLWORExpr step-expr-si-3 0) |
1069 | +EXPECTED_FOTS_FAILURE (prod-ForClause ForExpr004 0) |
1070 | +EXPECTED_FOTS_FAILURE (prod-ForClause ForExpr013 0) |
1071 | +EXPECTED_FOTS_FAILURE (prod-ForClause ForExprType022 0) |
1072 | +EXPECTED_FOTS_FAILURE (prod-ForClause ForExprType023 0) |
1073 | +EXPECTED_FOTS_FAILURE (prod-ForClause ForExprType024 0) |
1074 | +EXPECTED_FOTS_FAILURE (prod-ForClause ForExprType036 0) |
1075 | +EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-003 0) |
1076 | +EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-005 0) |
1077 | +EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-009 0) |
1078 | +EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-011 0) |
1079 | +EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-036 0) |
1080 | +EXPECTED_FOTS_FAILURE (prod-FunctionCall FunctionCall-037 0) |
1081 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-001 0) |
1082 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-001a 0) |
1083 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-002 0) |
1084 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-002a 0) |
1085 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-003 0) |
1086 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-003a 0) |
1087 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-004 0) |
1088 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-007 0) |
1089 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-010 0) |
1090 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-011 0) |
1091 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-013 0) |
1092 | +EXPECTED_FOTS_FAILURE (prod-GroupByClause group-014 0) |
1093 | +EXPECTED_FOTS_FAILURE (prod-IfExpr CondExpr012 0) |
1094 | +EXPECTED_FOTS_FAILURE (prod-IfExpr CondExpr017 0) |
1095 | +EXPECTED_FOTS_FAILURE (prod-InstanceofExpr instanceof112 0) |
1096 | +EXPECTED_FOTS_FAILURE (prod-InstanceofExpr instanceof116 0) |
1097 | +EXPECTED_FOTS_FAILURE (prod-InstanceofExpr instanceof118 0) |
1098 | +EXPECTED_FOTS_FAILURE (prod-InstanceofExpr instanceof119 0) |
1099 | +EXPECTED_FOTS_FAILURE (prod-InstanceofExpr cbcl-instance-of-001 0) |
1100 | +EXPECTED_FOTS_FAILURE (prod-LetClause LetExpr020a 0) |
1101 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals056 0) |
1102 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals056a 0) |
1103 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals057 0) |
1104 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals057a 0) |
1105 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals058a 0) |
1106 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals059a 0) |
1107 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals060a 0) |
1108 | +EXPECTED_FOTS_FAILURE (prod-Literal Literals061a 0) |
1109 | +EXPECTED_FOTS_FAILURE (prod-Literal K-Literals-30 0) |
1110 | +EXPECTED_FOTS_FAILURE (prod-Literal K-Literals-31a 0) |
1111 | +EXPECTED_FOTS_FAILURE (prod-Literal K-Literals-46 0) |
1112 | +EXPECTED_FOTS_FAILURE (prod-Literal K-Literals-47a 0) |
1113 | +EXPECTED_FOTS_FAILURE (prod-Literal K-Literals-49 0) |
1114 | +EXPECTED_FOTS_FAILURE (prod-Literal K-Literals-50 0) |
1115 | +EXPECTED_FOTS_FAILURE (prod-Literal K2-Literals-7 0) |
1116 | +EXPECTED_FOTS_FAILURE (prod-Literal K2-Literals-20 0) |
1117 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-1 0) |
1118 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-2 0) |
1119 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-3 0) |
1120 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-8 0) |
1121 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-10 0) |
1122 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-12 0) |
1123 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-17 0) |
1124 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-18 0) |
1125 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport module-URIs-19 0) |
1126 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport modules-collide-var-001 0) |
1127 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport modules-collide-fn-001 0) |
1128 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport modules-circular 0) |
1129 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport modules-pub-priv-30 0) |
1130 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport modules-pub-priv-34 0) |
1131 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport cbcl-module-001 0) |
1132 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport cbcl-module-002 0) |
1133 | +EXPECTED_FOTS_FAILURE (prod-ModuleImport cbcl-module-004 0) |
1134 | +EXPECTED_FOTS_FAILURE (prod-NamespaceDecl namespaceDecl-23 0) |
1135 | +EXPECTED_FOTS_FAILURE (prod-NameTest K2-NameTest-30 0) |
1136 | +EXPECTED_FOTS_FAILURE (prod-NameTest K2-NameTest-31 0) |
1137 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-003 0) |
1138 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-004 0) |
1139 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-005 0) |
1140 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-011 0) |
1141 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-025 0) |
1142 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-026 0) |
1143 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-028 0) |
1144 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-031 0) |
1145 | +EXPECTED_FOTS_FAILURE (prod-OptionDecl.serialization Serialization-032 0) |
1146 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy20 0) |
1147 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy21 0) |
1148 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy40 0) |
1149 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy41 0) |
1150 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy49 0) |
1151 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy50 0) |
1152 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy51 0) |
1153 | +EXPECTED_FOTS_FAILURE (prod-OrderByClause orderBy59 0) |
1154 | +EXPECTED_FOTS_FAILURE (prod-PathExpr PathExpr-1 0) |
1155 | +EXPECTED_FOTS_FAILURE (prod-PathExpr PathExpr-2 0) |
1156 | +EXPECTED_FOTS_FAILURE (prod-PathExpr PathExpr-5p 0) |
1157 | +EXPECTED_FOTS_FAILURE (prod-PathExpr PathExpr-7p 0) |
1158 | +EXPECTED_FOTS_FAILURE (prod-PathExpr PathExpr-8p 0) |
1159 | +EXPECTED_FOTS_FAILURE (prod-PathExpr PathExpr-9p 0) |
1160 | +EXPECTED_FOTS_FAILURE (prod-Predicate K2-FilterExpr-5 0) |
1161 | +EXPECTED_FOTS_FAILURE (prod-Predicate K2-FilterExpr-7 0) |
1162 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-static-typing-1-ns 0) |
1163 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-1-ns 0) |
1164 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-2-ns 0) |
1165 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-3-ns 0) |
1166 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-4-ns 0) |
1167 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-6-ns 0) |
1168 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-7-ns 0) |
1169 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-8-ns 0) |
1170 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-higher-order-function-9-ns 0) |
1171 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature prohibit-schema-aware-1-s 0) |
1172 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature prohibit-schema-aware-2-s 0) |
1173 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature prohibit-higher-order-function-1-ns 0) |
1174 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature prohibit-higher-order-function-2-ns 0) |
1175 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature prohibit-higher-order-function-3-ns 0) |
1176 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature prohibit-higher-order-function-4-ns 0) |
1177 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature unknown-feature 0) |
1178 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature well-formed-feature-1 0) |
1179 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature well-formed-feature-2 0) |
1180 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature well-formed-feature-3 0) |
1181 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature well-formed-feature-4 0) |
1182 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-prohibit-1 0) |
1183 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-prohibit-2 0) |
1184 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-prohibit-3 0) |
1185 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-prohibit-4 0) |
1186 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-prohibit-5 0) |
1187 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-all-extensions-1 0) |
1188 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-all-optional-features-1-ns3 0) |
1189 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-all-optional-features-3-ns3 0) |
1190 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-all-optional-features-2-ns2 0) |
1191 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature prohibit-all-optional-features-1 0) |
1192 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-all-optional-features-5-ns 0) |
1193 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature require-all-optional-features-7-s 0) |
1194 | +EXPECTED_FOTS_FAILURE (prod-RequireProhibitFeature separate-modules-8-ns 0) |
1195 | +EXPECTED_FOTS_FAILURE (prod-ReturnClause ReturnExpr010 0) |
1196 | +EXPECTED_FOTS_FAILURE (prod-ReturnClause ReturnExpr016 0) |
1197 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema005 0) |
1198 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema016 0) |
1199 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema031 0) |
1200 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032 0) |
1201 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032a 0) |
1202 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032b 0) |
1203 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema032c 0) |
1204 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema040 0) |
1205 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema040a 0) |
1206 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport qischema070 0) |
1207 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-001 0) |
1208 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-002 0) |
1209 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-003 0) |
1210 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-004 0) |
1211 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-005 0) |
1212 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-006 0) |
1213 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-007 0) |
1214 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-008 0) |
1215 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-009 0) |
1216 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-010 0) |
1217 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport substitution-011 0) |
1218 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-schema-element-1 0) |
1219 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-schema-element-2 0) |
1220 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-schema-element-4 0) |
1221 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-schema-element-5 0) |
1222 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-schema-element-8 0) |
1223 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-validated-schema-element-1 0) |
1224 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-validated-schema-element-3 0) |
1225 | +EXPECTED_FOTS_FAILURE (prod-SchemaImport cbcl-validated-schema-element-4 0) |
1226 | +EXPECTED_FOTS_FAILURE (prod-TryCatchExpr try-catch-all-dynamic-errors-caught-14 0) |
1227 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-nomatch 0) |
1228 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-nomatch-2 0) |
1229 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-branch-1 0) |
1230 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-branch-1-dup 0) |
1231 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-branch-2 0) |
1232 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-branch-2-dup 0) |
1233 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-branch-both 0) |
1234 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-branch-both-dup 0) |
1235 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-union-multi 0) |
1236 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-in-xpath 0) |
1237 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-112 0) |
1238 | +EXPECTED_FOTS_FAILURE (prod-TypeswitchExpr typeswitch-116 0) |
1239 | +EXPECTED_FOTS_FAILURE (prod-ValidateExpr validateexpr-27 0) |
1240 | +EXPECTED_FOTS_FAILURE (prod-ValidateExpr validateexpr-35 0) |
1241 | +EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-101 0) |
1242 | +EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-102 0) |
1243 | +EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-104 0) |
1244 | +EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-105 0) |
1245 | +EXPECTED_FOTS_FAILURE (prod-ValidateExpr validate-as-106 0) |
1246 | +EXPECTED_FOTS_FAILURE (prod-VarDecl.external K2-ExternalVariablesWithout-18 0) |
1247 | +EXPECTED_FOTS_FAILURE (prod-VarDecl.external extvardeclwithtype-23 0) |
1248 | +EXPECTED_FOTS_FAILURE (prod-VarDecl.external K2-ExternalVariablesWith-22 0) |
1249 | +EXPECTED_FOTS_FAILURE (prod-VarDefaultValue extvardef-003a 0) |
1250 | +EXPECTED_FOTS_FAILURE (prod-VarDefaultValue extvardef-006b 0) |
1251 | +EXPECTED_FOTS_FAILURE (prod-VarDefaultValue extvardef-016a 0) |
1252 | +EXPECTED_FOTS_FAILURE (prod-VarDefaultValue extvardef-016b 0) |
1253 | +EXPECTED_FOTS_FAILURE (prod-VersionDecl VersionDecl-v1-processor-and-v3-query 0) |
1254 | +EXPECTED_FOTS_FAILURE (prod-VersionDecl version_declaration-023-v3 0) |
1255 | +EXPECTED_FOTS_FAILURE (prod-WhereClause WhereExpr001 0) |
1256 | +EXPECTED_FOTS_FAILURE (prod-WhereClause WhereExpr003 0) |
1257 | +EXPECTED_FOTS_FAILURE (prod-WhereClause WhereExpr022 0) |
1258 | +EXPECTED_FOTS_FAILURE (prod-WhereClause WhereExpr024 0) |
1259 | +EXPECTED_FOTS_FAILURE (prod-WhereClause WhereExpr025 0) |
1260 | +EXPECTED_FOTS_FAILURE (prod-WhereClause WhereExpr026 0) |
1261 | +EXPECTED_FOTS_FAILURE (prod-WindowClause WindowingUseCase07S 0) |
1262 | +EXPECTED_FOTS_FAILURE (prod-WindowClause WindowingUseCase11S 0) |
1263 | +EXPECTED_FOTS_FAILURE (prod-WindowClause WindowingUseCase13S 0) |
1264 | +EXPECTED_FOTS_FAILURE (prod-WindowClause SlidingWindowExpr507 0) |
1265 | +EXPECTED_FOTS_FAILURE (prod-WindowClause TumblingWindowExpr507 0) |
1266 | +EXPECTED_FOTS_FAILURE (xs-base64Binary base64-115 0) |
1267 | +EXPECTED_FOTS_FAILURE (xs-normalizedString cbcl-normalizedstring-002 0) |
1268 | +EXPECTED_FOTS_FAILURE (xs-normalizedString cbcl-normalizedstring-002b 0) |
1269 | +EXPECTED_FOTS_FAILURE (xs-normalizedString cbcl-normalizedstring-004 0) |
1270 | +EXPECTED_FOTS_FAILURE (xs-token cbcl-token-002 0) |
1271 | +EXPECTED_FOTS_FAILURE (xs-token cbcl-token-002b 0) |
1272 | +EXPECTED_FOTS_FAILURE (xs-token cbcl-token-004 0) |
1273 | + |
1274 | +# Initialize FOTSExpectedFailures.xml |
1275 | +SET (fots_expected_failures_file "${CMAKE_BINARY_DIR}/FOTSExpectedFailures.xml") |
1276 | +# QQQ For now, we output the outer <failures> element so we can load this |
1277 | +# using fn:doc(). This should probably go away. |
1278 | +FILE (WRITE "${fots_expected_failures_file}" "<failures>\n") |
1279 | + |
1280 | +# Loop through test sets |
1281 | +GET_PROPERTY (_test_sets GLOBAL PROPERTY "_ALL_FOTS_TEST_SETS_") |
1282 | +FOREACH (_test_set ${_test_sets}) |
1283 | + FILE (APPEND "${fots_expected_failures_file}" |
1284 | + " <TestSet name=\"${_test_set}\">\n") |
1285 | + # Loop through the test cases for each test set |
1286 | + GET_PROPERTY (_test_cases GLOBAL PROPERTY "_FOTS_${_test_set}_CASES_") |
1287 | + WHILE (_test_cases) |
1288 | + # Pop off three items and write out entry |
1289 | + LIST (GET _test_cases 0 _test_case) |
1290 | + LIST (GET _test_cases 1 _bugnum) |
1291 | + LIST (GET _test_cases 2 _notrun) |
1292 | + LIST (REMOVE_AT _test_cases 0 1 2) |
1293 | + IF (_notrun) |
1294 | + SET (_notrun " notRun=\"true\"") |
1295 | + ENDIF (_notrun) |
1296 | + FILE (APPEND "${fots_expected_failures_file}" |
1297 | + " <Test name=\"${_test_case}\" bug=\"${_bugnum}\"${_notrun}/>\n") |
1298 | + ENDWHILE (_test_cases) |
1299 | + FILE (APPEND "${fots_expected_failures_file}" " </TestSet>\n") |
1300 | +ENDFOREACH (_test_set) |
1301 | + |
1302 | +# QQQ Have to close this outer element, which means you can't call |
1303 | +# EXPECTED_FOTS_FAILURE from any other CMakeLists.txt. |
1304 | +FILE (APPEND "${fots_expected_failures_file}" "</failures>\n") |
1305 | |
1306 | === added file 'test/fots/ImportFOTS.cmake' |
1307 | --- test/fots/ImportFOTS.cmake 1970-01-01 00:00:00 +0000 |
1308 | +++ test/fots/ImportFOTS.cmake 2013-01-08 14:37:31 +0000 |
1309 | @@ -0,0 +1,106 @@ |
1310 | +# Copyright 2006-2008 The FLWOR Foundation. |
1311 | +# |
1312 | +# Licensed under the Apache License, Version 2.0 (the "License"); |
1313 | +# you may not use this file except in compliance with the License. |
1314 | +# You may obtain a copy of the License at |
1315 | +# |
1316 | +# http://www.apache.org/licenses/LICENSE-2.0 |
1317 | +# |
1318 | +# Unless required by applicable law or agreed to in writing, software |
1319 | +# distributed under the License is distributed on an "AS IS" BASIS, |
1320 | +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
1321 | +# See the License for the specific language governing permissions and |
1322 | +# limitations under the License. |
1323 | +# |
1324 | +# |
1325 | +# Downloads the latest FOTS archive and prepares for CTest integration. |
1326 | +# Required argument: BUILDDIR (should be ${PROJECT_BINARY_DIR}) |
1327 | +# Required argument: ZORBA (full path to Zorba command-line executable) |
1328 | + |
1329 | + |
1330 | +# Change this to publish updated FOTS archives |
1331 | +SET (FOTS_ARCHIVE "FOTS_191212.tgz") |
1332 | + |
1333 | +# Change this to modify which elements in FOTS driver results are output |
1334 | +# as CDATA |
1335 | +SET (FOTS_CDATA_ELEMENTS "fots:query test assert-xml") |
1336 | + |
1337 | +# Download and unpack pre-created archive |
1338 | +SET (_outdir "${BUILDDIR}/test/fots") |
1339 | +MESSAGE (STATUS "Downloading FOTS archive...") |
1340 | +FILE (DOWNLOAD http://zorbatest.lambda.nu:8080/~ceej/${FOTS_ARCHIVE} |
1341 | + "${_outdir}/${FOTS_ARCHIVE}" STATUS _dlstat SHOW_PROGRESS) |
1342 | +LIST (GET _dlstat 0 _dlcode) |
1343 | +IF (NOT _dlcode EQUAL 0) |
1344 | + LIST (GET _dlstat 1 _dlmsg) |
1345 | + MESSAGE (FATAL_ERROR "Error downloading FOTS archive: ${_dlmsg}") |
1346 | +ENDIF (NOT _dlcode EQUAL 0) |
1347 | + |
1348 | +MESSAGE (STATUS "Unpacking FOTS archive...") |
1349 | +EXECUTE_PROCESS (COMMAND "${CMAKE_COMMAND}" -E tar xf ${FOTS_ARCHIVE} |
1350 | + WORKING_DIRECTORY "${_outdir}" RESULT_VARIABLE _unpackstat) |
1351 | +IF (NOT _unpackstat EQUAL 0) |
1352 | + MESSAGE (FATAL_ERROR "Error unpackaging FOTS archive: ${_unpackstat}") |
1353 | +ENDIF (NOT _unpackstat EQUAL 0) |
1354 | + |
1355 | +# Scan FOTS catalogs and create ADD_TEST scripts. First, create a list |
1356 | +# of test sets. We assume that the FOTS driver is in a sibling directory |
1357 | +# named fots_driver. |
1358 | +MESSAGE (STATUS "Creating CTest scripts...") |
1359 | +EXECUTE_PROCESS (COMMAND "${ZORBA}" --omit-xml-declaration -f -q |
1360 | + "${CMAKE_CURRENT_LIST_DIR}/../fots_driver/cli.xq" |
1361 | + -e "fotsPath:=${_outdir}/2011/QT3-test-suite/catalog.xml" |
1362 | + -e mode:=list-test-sets |
1363 | + OUTPUT_VARIABLE _testsetsstring RESULT_VARIABLE _zstat) |
1364 | +IF (NOT _zstat EQUAL 0) |
1365 | + MESSAGE (FATAL_ERROR "Zorba failed with message: ${_zstat}\n" |
1366 | + "(perhaps you haven't built Zorba yet?)") |
1367 | +ENDIF (NOT _zstat EQUAL 0) |
1368 | +STRING (REGEX REPLACE "[\n\r]+" ";" _testsets ${_testsetsstring}) |
1369 | + |
1370 | +SET (_setscript "${_outdir}/FOTSSetTests.cmake") |
1371 | +SET (_casescript "${_outdir}/FOTSCaseTests.cmake") |
1372 | +FILE (REMOVE "${_setscript}") |
1373 | +FILE (REMOVE "${_casescript}") |
1374 | + |
1375 | +# Iterate through all test sets. |
1376 | +FOREACH (_testset ${_testsets}) |
1377 | + # Add a test for the whole test set. |
1378 | + FILE (APPEND "${_setscript}" |
1379 | + "ZORBA_ADD_TEST (FOTS/${_testset} zorbacmd -f -q " |
1380 | + "${CMAKE_CURRENT_LIST_DIR}/../fots_driver/cli.xq " |
1381 | + "-e fotsPath:=${_outdir}/2011/QT3-test-suite/catalog.xml " |
1382 | + "-e mode:=run-test-sets -e testSetPrefixes:=${_testset} " |
1383 | + "-e expectedFailuresPath:=${BUILDDIR}/FOTSExpectedFailures.xml " |
1384 | + "--disable-http-resolution --indent " |
1385 | + "-z \"cdata-section-elements=${FOTS_CDATA_ELEMENTS}\")\n" |
1386 | + "ZORBA_SET_TEST_PROPERTY (FOTS/${_testset} " |
1387 | + "FAIL_REGULAR_EXPRESSION \"result=\\\"fail\\\"\")\n") |
1388 | + |
1389 | + # Iterate through the test cases for this test set. |
1390 | +# EXECUTE_PROCESS (COMMAND "${ZORBA}" --omit-xml-declaration -f -q |
1391 | +# "${CMAKE_CURRENT_LIST_DIR}/../fots_driver/cli.xq" |
1392 | +# -e "fotsPath:=${_outdir}/2011/QT3-test-suite/catalog.xml" |
1393 | +# -e mode:=list-test-cases -e testSetPrefixes:=${_testset} |
1394 | +# OUTPUT_VARIABLE _testcasesstring) |
1395 | +# STRING (REGEX REPLACE "[\n\r]+" ";" _testcases ${_testcasesstring}) |
1396 | + EXECUTE_PROCESS (COMMAND "${ZORBA}" --omit-xml-declaration -f -q |
1397 | + "${CMAKE_CURRENT_LIST_DIR}/get-tests.xq" |
1398 | + --base-uri "${_outdir}/2011/QT3-test-suite/catalog.xml" |
1399 | + -e testSet:=${_testset} |
1400 | + OUTPUT_VARIABLE _testcases) |
1401 | + FOREACH (_testcase ${_testcases}) |
1402 | + # Add a test for the test case. |
1403 | + FILE (APPEND "${_casescript}" |
1404 | + "ZORBA_ADD_TEST (FOTS/${_testset}/${_testcase} zorbacmd -f -q " |
1405 | + "${CMAKE_CURRENT_LIST_DIR}/../fots_driver/cli.xq " |
1406 | + "-e fotsPath:=${_outdir}/2011/QT3-test-suite/catalog.xml " |
1407 | + "-e mode:=run-test-case " |
1408 | + "-e testSetName:=${_testset} -e testCaseName:=${_testcase} " |
1409 | + "-e expectedFailuresPath:=${BUILDDIR}/FOTSExpectedFailures.xml " |
1410 | + "--disable-http-resolution --indent " |
1411 | + "-z \"cdata-section-elements=${FOTS_CDATA_ELEMENTS}\")\n" |
1412 | + "ZORBA_SET_TEST_PROPERTY (FOTS/${_testset}/${_testcase} " |
1413 | + "PASS_REGULAR_EXPRESSION \"name=\\\"${_testcase}\\\" result=\\\"pass\\\"\")\n") |
1414 | + ENDFOREACH (_testcase) |
1415 | +ENDFOREACH (_testset) |
1416 | |
1417 | === added file 'test/fots/README.TXT' |
1418 | --- test/fots/README.TXT 1970-01-01 00:00:00 +0000 |
1419 | +++ test/fots/README.TXT 2013-01-08 14:37:31 +0000 |
1420 | @@ -0,0 +1,26 @@ |
1421 | +This directory contains scripts for integrating the Zorba FOTS Driver |
1422 | +(contained in the directory ../fots_driver) with CTest. |
1423 | + |
1424 | +It adds four targets to the Zorba project: one to download and import |
1425 | +FOTS, and three to configure which kinds of CTests are added to the |
1426 | +project. |
1427 | + |
1428 | + fots-import: This target will download FOTS and create CTest |
1429 | + scripts. This is somewhat slow (around a minute), but you only need |
1430 | + to do it once. You should not need to repeat this target unless you |
1431 | + delete your build directory, or you want to update to a newer FOTS. |
1432 | + |
1433 | + fots-activate-sets: This target will re-configure your project to |
1434 | + include one CTest test for each FOTS test set (roughly 370 tests). |
1435 | + This is the recommended approach for running FOTS tests as it |
1436 | + provides a good tradeoff between testing time and test granularity. |
1437 | + |
1438 | + fots-activate-cases: This target will re-configure your project to |
1439 | + include one CTest test for each FOTS test case (roughly 27000 |
1440 | + tests). This is only recommended when debugging a problem reported |
1441 | + with a specific test case, because CTest really isn't designed for |
1442 | + such a large number of tests; it will slow down considerably. |
1443 | + |
1444 | + fots-deactivate: This target will re-configure your project to |
1445 | + include no CTest tests for FOTS. Use this when doing normal |
1446 | + development. |
1447 | |
1448 | === added file 'test/fots/get-tests.xq' |
1449 | --- test/fots/get-tests.xq 1970-01-01 00:00:00 +0000 |
1450 | +++ test/fots/get-tests.xq 2013-01-08 14:37:31 +0000 |
1451 | @@ -0,0 +1,25 @@ |
1452 | +(: |
1453 | + : Copyright 2006-2011 The FLWOR Foundation. |
1454 | + : |
1455 | + : Licensed under the Apache License, Version 2.0 (the "License"); |
1456 | + : you may not use this file except in compliance with the License. |
1457 | + : You may obtain a copy of the License at |
1458 | + : |
1459 | + : http://www.apache.org/licenses/LICENSE-2.0 |
1460 | + : |
1461 | + : Unless required by applicable law or agreed to in writing, software |
1462 | + : distributed under the License is distributed on an "AS IS" BASIS, |
1463 | + : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
1464 | + : See the License for the specific language governing permissions and |
1465 | + : limitations under the License. |
1466 | + :) |
1467 | + |
1468 | +declare namespace c = "http://www.w3.org/2010/09/qt-fots-catalog"; |
1469 | + |
1470 | +declare variable $fotsPath as xs:string external := ""; |
1471 | +declare variable $testSet as xs:string external := ""; |
1472 | + |
1473 | +let $catalog := fn:doc(fn:static-base-uri())/c:catalog |
1474 | +let $test-set := $catalog/c:test-set[@name = $testSet] |
1475 | +let $test-relfile := fn:trace(data($test-set/@file), "Loading") |
1476 | +return fn:string-join(data(fn:doc($test-relfile)/c:test-set/c:test-case/@name), ';') |
1477 | |
1478 | === added directory 'test/fots_driver' |
1479 | === removed directory 'test/fots_driver' |
1480 | === added file 'test/fots_driver/FOTSZorbaManifest.xml' |
1481 | --- test/fots_driver/FOTSZorbaManifest.xml 1970-01-01 00:00:00 +0000 |
1482 | +++ test/fots_driver/FOTSZorbaManifest.xml 2013-01-08 14:37:31 +0000 |
1483 | @@ -0,0 +1,66 @@ |
1484 | +<?xml version="1.0" encoding="UTF-8"?> |
1485 | +<FOTS-test-suite-result xmlns="http://www.w3.org/2010/09/qt-fots-catalog"> |
1486 | + <implementation name="Zorba" version="trunk" anonymous-result-column="false"> |
1487 | + <organization name="http://www.zorba-xquery.com" anonymous="false"/> |
1488 | + <submitter name="Sorin Nasoi" email="spungi@gmail.com"/> |
1489 | + </implementation> |
1490 | + <dependencies-satisfied> |
1491 | + <dependency type="feature" value="collection-stability" satisfied="true"/> <!-- Is this correct? --> |
1492 | + <dependency type="feature" value="directory-as-collection-uri" satisfied="true"/> <!-- Is this correct? --> |
1493 | + <dependency type="feature" value="higherOrderFunctions" satisfied="false"/> |
1494 | + <dependency type="feature" value="moduleImport" satisfied="true"/> |
1495 | + <dependency type="feature" value="namespace-axis" satisfied="false"/> <!-- Is this correct? --> |
1496 | + <dependency type="feature" value="schema-location-hint" satisfied="false"/> <!-- Is this correct? --> |
1497 | + <dependency type="feature" value="schemaAware" satisfied="true"/> |
1498 | + <dependency type="feature" value="schemaImport" satisfied="true"/> |
1499 | + <dependency type="feature" value="schemaValidation" satisfied="true"/> |
1500 | + <dependency type="feature" value="staticTyping" satisfied="false"/> |
1501 | + <dependency type="feature" value="xpath-1.0-compatibility" satisfied="true"/> <!-- Is this correct? --> |
1502 | + |
1503 | + <dependency type="spec" value="XP10 XQ10" satisfied="true"/> |
1504 | + <dependency type="spec" value="XP10+" satisfied="true"/> |
1505 | + <dependency type="spec" value="XP20 XQ10" satisfied="true"/> |
1506 | + <dependency type="spec" value="XP20+" satisfied="true"/> |
1507 | + <dependency type="spec" value="XP30+" satisfied="true"/> |
1508 | + <dependency type="spec" value="XP30+ XQ10+" satisfied="true"/> |
1509 | + <dependency type="spec" value="XP30+ XQ30+" satisfied="true"/> |
1510 | + <dependency type="spec" value="XQ10" satisfied="true"/> |
1511 | + <dependency type="spec" value="XQ10 XP20" satisfied="true"/> |
1512 | + <dependency type="spec" value="XQ10+" satisfied="true"/> |
1513 | + <dependency type="spec" value="XQ10+ XP20+" satisfied="true"/> |
1514 | + <dependency type="spec" value="XQ10+ XP30+" satisfied="true"/> |
1515 | + <dependency type="spec" value="XQ30" satisfied="true"/> |
1516 | + <dependency type="spec" value="XQ30 XP30" satisfied="true"/> |
1517 | + <dependency type="spec" value="XQ30+" satisfied="true"/> |
1518 | + <dependency type="spec" value="XQ30+ XP30+" satisfied="true"/> |
1519 | + <dependency type="spec" value="XT30+" satisfied="false"/> |
1520 | + |
1521 | + <dependency type="xml-version" value="1.0" satisfied="true"/> |
1522 | + <dependency type="xml-version" value="1.0:4-" satisfied="true"/> |
1523 | + <dependency type="xml-version" value="1.0:5+ 1.1" satisfied="false"/> |
1524 | + <dependency type="xml-version" value="1.1" satisfied="false"/> |
1525 | + |
1526 | + <dependency type="language" value="de" satisfied="false"/> <!-- Is this correct? --> |
1527 | + <dependency type="language" value="en" satisfied="true"/> |
1528 | + <dependency type="language" value="xib" satisfied="false"/> <!-- Is this correct? --> |
1529 | + |
1530 | + <!-- Are these correct? --> |
1531 | + <dependency type="limits" value="year_lt_0" satisfied="true"/> |
1532 | + <dependency type="calendar" value="CB" satisfied="true"/> |
1533 | + <dependency type="format-integer-sequence" value="Α" satisfied="true"/> |
1534 | + <dependency type="format-integer-sequence" value="α" satisfied="true"/> |
1535 | + <dependency type="format-integer-sequence" value="Ù¡" satisfied="true"/> |
1536 | + <dependency type="format-integer-sequence" value="â‘ " satisfied="true"/> |
1537 | + <dependency type="format-integer-sequence" value="â‘´" satisfied="true"/> |
1538 | + <dependency type="format-integer-sequence" value="â’ˆ" satisfied="true"/> |
1539 | + <dependency type="format-integer-sequence" value="一" satisfied="true"/> |
1540 | + <dependency type="format-integer-sequence" value="ﯴ" satisfied="true"/> |
1541 | + <dependency type="default-language" value="en" satisfied="true"/> |
1542 | + <dependency type="unicode-normalization-form" value="FULLY-NORMALIZED" satisfied="true"/> |
1543 | + <dependency type="unicode-normalization-form" value="NFD" satisfied="true"/> |
1544 | + <dependency type="unicode-normalization-form" value="NFKC" satisfied="true"/> |
1545 | + <dependency type="unicode-normalization-form" value="NFKD" satisfied="true"/> |
1546 | + <dependency type="xsd-version" value="1.0" satisfied="true"/> |
1547 | + <dependency type="xsd-version" value="1.1" satisfied="false"/> |
1548 | + </dependencies-satisfied> |
1549 | +</FOTS-test-suite-result> |
1550 | |
1551 | === removed file 'test/fots_driver/FOTSZorbaManifest.xml' |
1552 | --- test/fots_driver/FOTSZorbaManifest.xml 2012-12-18 11:40:08 +0000 |
1553 | +++ test/fots_driver/FOTSZorbaManifest.xml 1970-01-01 00:00:00 +0000 |
1554 | @@ -1,66 +0,0 @@ |
1555 | -<?xml version="1.0" encoding="UTF-8"?> |
1556 | -<FOTS-test-suite-result xmlns="http://www.w3.org/2010/09/qt-fots-catalog"> |
1557 | - <implementation name="Zorba" version="trunk" anonymous-result-column="false"> |
1558 | - <organization name="http://www.zorba-xquery.com" anonymous="false"/> |
1559 | - <submitter name="Sorin Nasoi" email="spungi@gmail.com"/> |
1560 | - </implementation> |
1561 | - <dependencies-satisfied> |
1562 | - <dependency type="feature" value="collection-stability" satisfied="true"/> <!-- Is this correct? --> |
1563 | - <dependency type="feature" value="directory-as-collection-uri" satisfied="true"/> <!-- Is this correct? --> |
1564 | - <dependency type="feature" value="higherOrderFunctions" satisfied="false"/> |
1565 | - <dependency type="feature" value="moduleImport" satisfied="true"/> |
1566 | - <dependency type="feature" value="namespace-axis" satisfied="false"/> <!-- Is this correct? --> |
1567 | - <dependency type="feature" value="schema-location-hint" satisfied="false"/> <!-- Is this correct? --> |
1568 | - <dependency type="feature" value="schemaAware" satisfied="true"/> |
1569 | - <dependency type="feature" value="schemaImport" satisfied="true"/> |
1570 | - <dependency type="feature" value="schemaValidation" satisfied="true"/> |
1571 | - <dependency type="feature" value="staticTyping" satisfied="false"/> |
1572 | - <dependency type="feature" value="xpath-1.0-compatibility" satisfied="true"/> <!-- Is this correct? --> |
1573 | - |
1574 | - <dependency type="spec" value="XP10 XQ10" satisfied="true"/> |
1575 | - <dependency type="spec" value="XP10+" satisfied="true"/> |
1576 | - <dependency type="spec" value="XP20 XQ10" satisfied="true"/> |
1577 | - <dependency type="spec" value="XP20+" satisfied="true"/> |
1578 | - <dependency type="spec" value="XP30+" satisfied="true"/> |
1579 | - <dependency type="spec" value="XP30+ XQ10+" satisfied="true"/> |
1580 | - <dependency type="spec" value="XP30+ XQ30+" satisfied="true"/> |
1581 | - <dependency type="spec" value="XQ10" satisfied="true"/> |
1582 | - <dependency type="spec" value="XQ10 XP20" satisfied="true"/> |
1583 | - <dependency type="spec" value="XQ10+" satisfied="true"/> |
1584 | - <dependency type="spec" value="XQ10+ XP20+" satisfied="true"/> |
1585 | - <dependency type="spec" value="XQ10+ XP30+" satisfied="true"/> |
1586 | - <dependency type="spec" value="XQ30" satisfied="true"/> |
1587 | - <dependency type="spec" value="XQ30 XP30" satisfied="true"/> |
1588 | - <dependency type="spec" value="XQ30+" satisfied="true"/> |
1589 | - <dependency type="spec" value="XQ30+ XP30+" satisfied="true"/> |
1590 | - <dependency type="spec" value="XT30+" satisfied="false"/> |
1591 | - |
1592 | - <dependency type="xml-version" value="1.0" satisfied="true"/> |
1593 | - <dependency type="xml-version" value="1.0:4-" satisfied="true"/> |
1594 | - <dependency type="xml-version" value="1.0:5+ 1.1" satisfied="false"/> |
1595 | - <dependency type="xml-version" value="1.1" satisfied="false"/> |
1596 | - |
1597 | - <dependency type="language" value="de" satisfied="false"/> <!-- Is this correct? --> |
1598 | - <dependency type="language" value="en" satisfied="true"/> |
1599 | - <dependency type="language" value="xib" satisfied="false"/> <!-- Is this correct? --> |
1600 | - |
1601 | - <!-- Are these correct? --> |
1602 | - <dependency type="limits" value="year_lt_0" satisfied="true"/> |
1603 | - <dependency type="calendar" value="CB" satisfied="true"/> |
1604 | - <dependency type="format-integer-sequence" value="Α" satisfied="true"/> |
1605 | - <dependency type="format-integer-sequence" value="α" satisfied="true"/> |
1606 | - <dependency type="format-integer-sequence" value="Ù¡" satisfied="true"/> |
1607 | - <dependency type="format-integer-sequence" value="â‘ " satisfied="true"/> |
1608 | - <dependency type="format-integer-sequence" value="â‘´" satisfied="true"/> |
1609 | - <dependency type="format-integer-sequence" value="â’ˆ" satisfied="true"/> |
1610 | - <dependency type="format-integer-sequence" value="一" satisfied="true"/> |
1611 | - <dependency type="format-integer-sequence" value="ﯴ" satisfied="true"/> |
1612 | - <dependency type="default-language" value="en" satisfied="true"/> |
1613 | - <dependency type="unicode-normalization-form" value="FULLY-NORMALIZED" satisfied="true"/> |
1614 | - <dependency type="unicode-normalization-form" value="NFD" satisfied="true"/> |
1615 | - <dependency type="unicode-normalization-form" value="NFKC" satisfied="true"/> |
1616 | - <dependency type="unicode-normalization-form" value="NFKD" satisfied="true"/> |
1617 | - <dependency type="xsd-version" value="1.0" satisfied="true"/> |
1618 | - <dependency type="xsd-version" value="1.1" satisfied="false"/> |
1619 | - </dependencies-satisfied> |
1620 | -</FOTS-test-suite-result> |
1621 | |
1622 | === added file 'test/fots_driver/README.TXT' |
1623 | --- test/fots_driver/README.TXT 1970-01-01 00:00:00 +0000 |
1624 | +++ test/fots_driver/README.TXT 2013-01-08 14:37:31 +0000 |
1625 | @@ -0,0 +1,51 @@ |
1626 | +Information about the W3C XQuery/XPath/XSLT 3.* Test Suite can be found at: |
1627 | + http://dev.w3.org/2011/QT3-test-suite. |
1628 | + |
1629 | +In order to use the Zorba FOTS driver (written in XQuery) one has to follow |
1630 | +these steps: |
1631 | + |
1632 | +0) Build Zorba with ZORBA_WITH_BIG_INTEGER flag set to ON. |
1633 | + |
1634 | + For example with CMake: |
1635 | + cmake -DZORBA_WITH_BIG_INTEGER=ON .. |
1636 | + make |
1637 | + |
1638 | +1) Download the FOTS testsuite from W3C |
1639 | + Since currently there is no official release, a simple "cvs get" will do: |
1640 | + |
1641 | + $ export CVSROOT=":pserver:anonymous@dev.w3.org:/sources/public" |
1642 | + $ cvs login |
1643 | + (Logging in to anonymous@dev.w3.org) |
1644 | + CVS password: anonymous |
1645 | + $ cvs get 2011/QT3-test-suite |
1646 | + |
1647 | +3) run |
1648 | + ./zorba -f |
1649 | + -q ../../test/fots_driver/cli.xq |
1650 | + |
1651 | +Zorba FOTS driver usage examples: |
1652 | +If you run Zorba from a checkout of the trunk and the build/bin folder, |
1653 | +- /path/to/cli.xq can be set to ../../test/fots_driver/cli.xq |
1654 | + |
1655 | +Always try to output the result back to an XML file with nice indentation: |
1656 | +./zorba -f -q ../../test/fots_driver/cli.xq -e SET_CLI_OPTIONS_HERE -o output.xml --indent |
1657 | + |
1658 | + This way you will see trace information in the CLI window and detailed |
1659 | + results of the test cases in the 'output.xml'. |
1660 | + |
1661 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e fotsZorbaManifestPath:=/path/to/Zorba_manifest.xml -e mode:=list-test-sets |
1662 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets |
1663 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets -e testSetPrefixes:=prod,app |
1664 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e testSetPrefixes:=prod-Literal |
1665 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e dependency:=higherOrderFunctions |
1666 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e dependency:=higherOrderFunctions -e assertType:=assert-count |
1667 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-matching-test-cases -e pattern:=catch |
1668 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -o result.xml --indent |
1669 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e expectedFailuresPath:=ExpectedFailures.xml -o result.xml --indent |
1670 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e dependency:=higherOrderFunctions_false -o result.xml --indent |
1671 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e assertType:=assert-count -o result.xml --indent |
1672 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod-Literal -e verbose:=false -o result.xml --indent |
1673 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e testSetName:=prod-Literal -e testCaseName:=Literals001 -o result.xml --indent |
1674 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-and-report -o report.xml --indent |
1675 | +zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=report -e failuresFilePath:=failures.xml -e verbose:=false -o report.xml --indent |
1676 | +zorba -f -q /path/to/cli.xq -e mode:=generate-expected-failures -e failuresFilePath:=failures.xml -o ExpectedFailures.xml --indent |
1677 | |
1678 | === removed file 'test/fots_driver/README.TXT' |
1679 | --- test/fots_driver/README.TXT 2012-12-18 11:40:08 +0000 |
1680 | +++ test/fots_driver/README.TXT 1970-01-01 00:00:00 +0000 |
1681 | @@ -1,49 +0,0 @@ |
1682 | -Information about the W3C XQuery/XPath/XSLT 3.* Test Suite can be found at: |
1683 | - http://dev.w3.org/2011/QT3-test-suite. |
1684 | - |
1685 | -In order to use the Zorba FOTS driver (written in XQuery) one has to follow |
1686 | -these steps: |
1687 | - |
1688 | -0) Build Zorba with ZORBA_WITH_BIG_INTEGER flag set to ON. |
1689 | - |
1690 | - For example with CMake: |
1691 | - cmake -DZORBA_WITH_BIG_INTEGER=ON .. |
1692 | - make |
1693 | - |
1694 | -1) Download the FOTS testsuite from W3C |
1695 | - Since currently there is no official release, a simple "cvs get" will do: |
1696 | - |
1697 | - $ export CVSROOT=":pserver:anonymous@dev.w3.org:/sources/public" |
1698 | - $ cvs login |
1699 | - (Logging in to anonymous@dev.w3.org) |
1700 | - CVS password: anonymous |
1701 | - $ cvs get 2011/QT3-test-suite |
1702 | - |
1703 | -3) run |
1704 | - ./zorba -f |
1705 | - -q ../../test/fots_driver/cli.xq |
1706 | - |
1707 | -Zorba FOTS driver usage examples: |
1708 | -If you run Zorba from a checkout of the trunk and the build/bin folder, |
1709 | -- /path/to/cli.xq can be set to ../../test/fots_driver/cli.xq |
1710 | - |
1711 | -Always try to output the result back to an XML file with nice indentation: |
1712 | -./zorba -f -q ../../test/fots_driver/cli.xq -e SET_CLI_OPTIONS_HERE -o output.xml --indent |
1713 | - |
1714 | - This way you will see trace information in the CLI window and detailed |
1715 | - results of the test cases in the 'output.xml'. |
1716 | - |
1717 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e fotsZorbaManifestPath:=/path/to/Zorba_manifest.xml -e mode:=list-test-sets |
1718 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets |
1719 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets -e testSetPrefixes:=prod,app |
1720 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e testSetPrefixes:=prod-Literal |
1721 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e dependency:=higherOrderFunctions |
1722 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-matching-test-cases -e pattern:=catch |
1723 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -o result.xml --indent |
1724 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e dependency:=higherOrderFunctions_false -o result.xml --indent |
1725 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod-Literal -e verbose:=false -o result.xml --indent |
1726 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e testSetName:=prod-Literal -e testCaseName:=Literals001 -o result.xml --indent |
1727 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e assertType:=assert-count -e testSetName:=fn-innermost -o result.xml --indent |
1728 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e assertType:=assert-count -o result.xml --indent |
1729 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-and-report -o report.xml --indent |
1730 | -zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=report -e failuresFilePath:=failures.xml -e verbose:=false -o report.xml --indent |
1731 | |
1732 | === added file 'test/fots_driver/cli.xq' |
1733 | --- test/fots_driver/cli.xq 1970-01-01 00:00:00 +0000 |
1734 | +++ test/fots_driver/cli.xq 2013-01-08 14:37:31 +0000 |
1735 | @@ -0,0 +1,196 @@ |
1736 | +(: |
1737 | + : Copyright 2006-2011 The FLWOR Foundation. |
1738 | + : |
1739 | + : Licensed under the Apache License, Version 2.0 (the "License"); |
1740 | + : you may not use this file except in compliance with the License. |
1741 | + : You may obtain a copy of the License at |
1742 | + : |
1743 | + : http://www.apache.org/licenses/LICENSE-2.0 |
1744 | + : |
1745 | + : Unless required by applicable law or agreed to in writing, software |
1746 | + : distributed under the License is distributed on an "AS IS" BASIS, |
1747 | + : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
1748 | + : See the License for the specific language governing permissions and |
1749 | + : limitations under the License. |
1750 | + :) |
1751 | + |
1752 | +(:~ |
1753 | + : Zorba FOTS driver CLI |
1754 | + : @author Ghislain Fourny, Sorin Nasoi |
1755 | + :) |
1756 | + |
1757 | +import module namespace d = |
1758 | + "http://www.zorba-xquery.com/fots-driver" at "fots-driver.xq"; |
1759 | +import module namespace r = |
1760 | + "http://www.zorba-xquery.com/fots-driver/reporting" at "reporting.xq"; |
1761 | + |
1762 | +(:~ path to the place where FOTS can be found :) |
1763 | +declare variable $fotsPath as xs:string external := ""; |
1764 | + |
1765 | +(:~ path to the place where the FOTS Zorba manifest can be found :) |
1766 | +declare variable $fotsZorbaManifestPath as xs:string external := |
1767 | + "FOTSZorbaManifest.xml"; |
1768 | + |
1769 | +(:~ Path to the results from a previous run :) |
1770 | +declare variable $failuresFilePath as xs:string external := ""; |
1771 | + |
1772 | +(:~ choose the CLI option you want to run :) |
1773 | +declare variable $mode as xs:string external := ""; |
1774 | + |
1775 | +(:~ name/criteria for the test sets :) |
1776 | +declare variable $testSetPrefixes as xs:string external := ""; |
1777 | + |
1778 | +(:~ name/criteria for the test cases :) |
1779 | +declare variable $testCasePrefixes as xs:string external := ""; |
1780 | + |
1781 | +(:~ name for the test set :) |
1782 | +declare variable $testSetName as xs:string external := ""; |
1783 | + |
1784 | +(:~ name for the test case :) |
1785 | +declare variable $testCaseName as xs:string external := ""; |
1786 | + |
1787 | +(:~ Enable or disable verbose output :) |
1788 | +declare variable $verbose as xs:string external := "true"; |
1789 | + |
1790 | +(:~ assertion type :) |
1791 | +declare variable $assertType as xs:string external := ""; |
1792 | + |
1793 | +(:~ dependency: used in 'list-test-cases' and 'run-test-sets' modes:) |
1794 | +declare variable $dependency as xs:string external := ""; |
1795 | + |
1796 | +(:~ regex for the tests in the 'list-matching-test-cases' option :) |
1797 | +declare variable $pattern as xs:string external := ""; |
1798 | + |
1799 | +(:~ flags for the tests in the 'list-matching-test-cases' option :) |
1800 | +declare variable $flags as xs:string external := ""; |
1801 | + |
1802 | +(:~ Path to the ExpectedFailures file :) |
1803 | +declare variable $expectedFailuresPath as xs:string external :=""; |
1804 | + |
1805 | +(:~ Tokenize comma or empty string :) |
1806 | +declare %private function local:tokenize( |
1807 | + $input as xs:string |
1808 | +) as xs:string* |
1809 | +{ |
1810 | + let $tokens := tokenize($input, ",") |
1811 | + return if (exists($tokens)) then $tokens else "" |
1812 | +}; |
1813 | + |
1814 | +declare function local:usage() as xs:string |
1815 | +{ |
1816 | + string-join(( |
1817 | + "Zorba FOTS driver usage examples:", |
1818 | + "If you run Zorba from a checkout of the trunk and the build/bin folder,", |
1819 | + "- /path/to/cli.xq can be set to ../../test/fots_driver/cli.xq", |
1820 | + "", |
1821 | + "Always try to output the result back to an XML file with nice indentation:", |
1822 | + "./zorba -f -q ../../test/fots_driver/cli.xq -e SET_CLI_OPTIONS_HERE -o output.xml --indent", |
1823 | + "", |
1824 | + " This way you will see trace information in the CLI window and detailed", |
1825 | + " results of the test cases in the 'output.xml'.", |
1826 | + "", |
1827 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e fotsZorbaManifestPath:=/path/to/Zorba_manifest.xml -e mode:=list-test-sets", |
1828 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets", |
1829 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets -e testSetPrefixes:=prod,app", |
1830 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e testSetPrefixes:=prod-Literal", |
1831 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e dependency:=higherOrderFunctions", |
1832 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e dependency:=higherOrderFunctions -e assertType:=assert-count", |
1833 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-matching-test-cases -e pattern:=catch", |
1834 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -o result.xml --indent", |
1835 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e expectedFailuresPath:=ExpectedFailures.xml -o result.xml --indent", |
1836 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e dependency:=higherOrderFunctions_false -o result.xml --indent", |
1837 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e assertType:=assert-count -o result.xml --indent", |
1838 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod-Literal -e verbose:=false -o result.xml --indent", |
1839 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e testSetName:=prod-Literal -e testCaseName:=Literals001 -o result.xml --indent", |
1840 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-and-report -o report.xml --indent", |
1841 | + "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=report -e failuresFilePath:=failures.xml -e verbose:=false -o report.xml --indent", |
1842 | + "zorba -f -q /path/to/cli.xq -e mode:=generate-expected-failures -e failuresFilePath:=failures.xml -o ExpectedFailures.xml --indent", |
1843 | + "" |
1844 | + ), "
") |
1845 | +}; |
1846 | + |
1847 | +(:~ The test cases in this list have bugs assigned and should not be run :) |
1848 | +variable $exceptedTestCases := ( |
1849 | +"cbcl-subsequence-011", "cbcl-subsequence-012", "cbcl-subsequence-013", |
1850 | +"cbcl-subsequence-014" (:see bug lp:1069794 :) |
1851 | +, "re00975", "re00976", "re00976a" (:see bug lp:1070533 :) |
1852 | +, "fn-unparsed-text-lines-052" (:see bug lp:1073175 :) |
1853 | +); |
1854 | + |
1855 | +(:~ The test in this list have bugs assigned already and should not be run :) |
1856 | +variable $exceptedTestSets := (); |
1857 | + |
1858 | +switch ($mode) |
1859 | +case "list-test-sets" |
1860 | + return |
1861 | + string-join( |
1862 | + (d:list-test-sets( |
1863 | + trace($fotsPath, "Path to FOTS catalog.xml set to: "), |
1864 | + local:tokenize(trace($testSetPrefixes, "'testSetPrefixes' set to: ")))), |
1865 | + "
") |
1866 | +case "list-test-cases" |
1867 | + return |
1868 | + string-join( |
1869 | + (d:list-test-cases( trace($fotsPath, |
1870 | + "Path to FOTS catalog.xml set to: "), |
1871 | + local:tokenize(trace($testSetPrefixes, |
1872 | + "'testSetPrefixes' set to: ")), |
1873 | + "", |
1874 | + trace($dependency, |
1875 | + "'dependency' set to:"), |
1876 | + trace($assertType, |
1877 | + "'assertType' set to: "))), |
1878 | + "
") |
1879 | +case "list-matching-test-cases" |
1880 | + return string-join((d:list-matching-test-cases( |
1881 | + trace($fotsPath, |
1882 | + "Path to FOTS catalog.xml set to: "), |
1883 | + trace($pattern, |
1884 | + "pattern set to: "), |
1885 | + trace($flags, |
1886 | + "flags were set to: ")), ""), |
1887 | + "
") |
1888 | +case "run-test-sets" |
1889 | + return d:run-fots($fotsPath, |
1890 | + $fotsZorbaManifestPath, |
1891 | + d:list-test-sets($fotsPath, |
1892 | + local:tokenize(trace($testSetPrefixes, |
1893 | + "'testSetPrefixes' set to: "))), |
1894 | + d:list-test-cases($fotsPath, |
1895 | + local:tokenize($testSetPrefixes), |
1896 | + local:tokenize(trace($testCasePrefixes, |
1897 | + "'testCasePrefixes' set to: ")), |
1898 | + trace($dependency, |
1899 | + "'dependency' set to:"), |
1900 | + trace($assertType, |
1901 | + "'assertType' set to: ")), |
1902 | + $exceptedTestCases, |
1903 | + $exceptedTestSets, |
1904 | + xs:boolean($verbose), |
1905 | + $expectedFailuresPath) |
1906 | +case "run-test-case" |
1907 | + return d:run-fots($fotsPath, |
1908 | + $fotsZorbaManifestPath, |
1909 | + trace($testSetName, "'testSetName' set to: "), |
1910 | + trace($testCaseName,"'testCaseName' set to: "), |
1911 | + $exceptedTestCases, |
1912 | + $exceptedTestSets, |
1913 | + xs:boolean($verbose), |
1914 | + $expectedFailuresPath) |
1915 | +case "run-and-report" |
1916 | + return r:run-and-report($fotsPath, |
1917 | + $fotsZorbaManifestPath, |
1918 | + $exceptedTestCases, |
1919 | + $exceptedTestSets, |
1920 | + (: the reports to W3C are always generated with verbose set to false:) |
1921 | + fn:false()) |
1922 | +case "report" |
1923 | + return r:report($fotsPath, |
1924 | + $failuresFilePath, |
1925 | + $exceptedTestCases, |
1926 | + $exceptedTestSets, |
1927 | + xs:boolean($verbose)) |
1928 | +case "generate-expected-failures" |
1929 | + return r:generate-expected-failures($failuresFilePath) |
1930 | +default |
1931 | + return local:usage() |
1932 | |
1933 | === removed file 'test/fots_driver/cli.xq' |
1934 | --- test/fots_driver/cli.xq 2012-12-18 11:40:08 +0000 |
1935 | +++ test/fots_driver/cli.xq 1970-01-01 00:00:00 +0000 |
1936 | @@ -1,197 +0,0 @@ |
1937 | -(: |
1938 | - : Copyright 2006-2011 The FLWOR Foundation. |
1939 | - : |
1940 | - : Licensed under the Apache License, Version 2.0 (the "License"); |
1941 | - : you may not use this file except in compliance with the License. |
1942 | - : You may obtain a copy of the License at |
1943 | - : |
1944 | - : http://www.apache.org/licenses/LICENSE-2.0 |
1945 | - : |
1946 | - : Unless required by applicable law or agreed to in writing, software |
1947 | - : distributed under the License is distributed on an "AS IS" BASIS, |
1948 | - : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
1949 | - : See the License for the specific language governing permissions and |
1950 | - : limitations under the License. |
1951 | - :) |
1952 | - |
1953 | -(:~ |
1954 | - : Zorba FOTS driver CLI |
1955 | - : @author Ghislain Fourny, Sorin Nasoi |
1956 | - :) |
1957 | - |
1958 | -import module namespace d = |
1959 | - "http://www.zorba-xquery.com/fots-driver" at "fots-driver.xq"; |
1960 | -import module namespace r = |
1961 | - "http://www.zorba-xquery.com/fots-driver/reporting" at "reporting.xq"; |
1962 | - |
1963 | -(:~ path to the place where FOTS can be found :) |
1964 | -declare variable $fotsPath as xs:string external := ""; |
1965 | - |
1966 | -(:~ path to the place where the FOTS Zorba manifest can be found :) |
1967 | -declare variable $fotsZorbaManifestPath as xs:string external := |
1968 | - "FOTSZorbaManifest.xml"; |
1969 | - |
1970 | -(:~ Path to the results from a previous run :) |
1971 | -declare variable $failuresFilePath as xs:string external := ""; |
1972 | - |
1973 | -(:~ choose the CLI option you want to run :) |
1974 | -declare variable $mode as xs:string external := ""; |
1975 | - |
1976 | -(:~ name/criteria for the test sets :) |
1977 | -declare variable $testSetPrefixes as xs:string external := ""; |
1978 | - |
1979 | -(:~ name/criteria for the test cases :) |
1980 | -declare variable $testCasePrefixes as xs:string external := ""; |
1981 | - |
1982 | -(:~ name for the test set :) |
1983 | -declare variable $testSetName as xs:string external := ""; |
1984 | - |
1985 | -(:~ name for the test case :) |
1986 | -declare variable $testCaseName as xs:string external := ""; |
1987 | - |
1988 | -(:~ Enable or disable verbose output :) |
1989 | -declare variable $verbose as xs:string external := "true"; |
1990 | - |
1991 | -(:~ |
1992 | - Enable or disable showing the actual query result in the output. |
1993 | - True by default. |
1994 | -:) |
1995 | -declare variable $showResult as xs:string external := "true"; |
1996 | - |
1997 | -(:~ assertion type :) |
1998 | -declare variable $assertType as xs:string external := ""; |
1999 | - |
2000 | -(:~ dependency: used in 'list-test-cases' and 'run-test-sets' modes:) |
2001 | -declare variable $dependency as xs:string external := ""; |
2002 | - |
2003 | -(:~ regex for the tests in the 'list-matching-test-cases' option :) |
2004 | -declare variable $pattern as xs:string external := ""; |
2005 | - |
2006 | -(:~ flags for the tests in the 'list-matching-test-cases' option :) |
2007 | -declare variable $flags as xs:string external := ""; |
2008 | - |
2009 | -(:~ Tokenize comma or empty string :) |
2010 | -declare %private function local:tokenize( |
2011 | - $input as xs:string |
2012 | -) as xs:string* |
2013 | -{ |
2014 | - let $tokens := tokenize($input, ",") |
2015 | - return if (exists($tokens)) then $tokens else "" |
2016 | -}; |
2017 | - |
2018 | -declare function local:usage() as xs:string |
2019 | -{ |
2020 | - string-join(( |
2021 | - "Zorba FOTS driver usage examples:", |
2022 | - "If you run Zorba from a checkout of the trunk and the build/bin folder,", |
2023 | - "- /path/to/cli.xq can be set to ../../test/fots_driver/cli.xq", |
2024 | - "", |
2025 | - "Always try to output the result back to an XML file with nice indentation:", |
2026 | - "./zorba -f -q ../../test/fots_driver/cli.xq -e SET_CLI_OPTIONS_HERE -o output.xml --indent", |
2027 | - "", |
2028 | - " This way you will see trace information in the CLI window and detailed", |
2029 | - " results of the test cases in the 'output.xml'.", |
2030 | - "", |
2031 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e fotsZorbaManifestPath:=/path/to/Zorba_manifest.xml -e mode:=list-test-sets", |
2032 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets", |
2033 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-sets -e testSetPrefixes:=prod,app", |
2034 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e testSetPrefixes:=prod-Literal", |
2035 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-test-cases -e dependency:=higherOrderFunctions", |
2036 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=list-matching-test-cases -e pattern:=catch", |
2037 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -o result.xml --indent", |
2038 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod -e dependency:=higherOrderFunctions_false -o result.xml --indent", |
2039 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-sets -e testSetPrefixes:=prod-Literal -e verbose:=false -o result.xml --indent", |
2040 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e testSetName:=prod-Literal -e testCaseName:=Literals001 -o result.xml --indent", |
2041 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e assertType:=assert-count -e testSetName:=fn-innermost -o result.xml --indent", |
2042 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-test-case -e assertType:=assert-count -o result.xml --indent", |
2043 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=run-and-report -o report.xml --indent", |
2044 | - "zorba -f -q /path/to/cli.xq -e fotsPath:=/path/to/QT3-test-suite/catalog.xml -e mode:=report -e failuresFilePath:=failures.xml -e verbose:=false -o report.xml --indent", |
2045 | - "" |
2046 | - ), "
") |
2047 | -}; |
2048 | - |
2049 | -(:~ The test cases in this list have bugs assigned and should not be run :) |
2050 | -variable $exceptedTestCases := ( |
2051 | -"cbcl-subsequence-011", "cbcl-subsequence-012", "cbcl-subsequence-013", |
2052 | -"cbcl-subsequence-014" (:see bug lp:1069794 :) |
2053 | -, "re00975", "re00976", "re00976a" (:see bug lp:1070533 :) |
2054 | -, "fn-unparsed-text-lines-052" (:see bug lp:1073175 :) |
2055 | -); |
2056 | - |
2057 | -(:~ The test in this list have bugs assigned already and should not be run :) |
2058 | -variable $exceptedTestSets := (); |
2059 | - |
2060 | -switch ($mode) |
2061 | -case "list-test-sets" |
2062 | - return |
2063 | - string-join( |
2064 | - (d:list-test-sets( |
2065 | - trace($fotsPath, "Path to FOTS catalog.xml set to: "), |
2066 | - local:tokenize(trace($testSetPrefixes, "'testSetPrefixes' set to: ")))), |
2067 | - "
") |
2068 | -case "list-test-cases" |
2069 | - return |
2070 | - string-join( |
2071 | - (d:list-test-cases( trace($fotsPath, |
2072 | - "Path to FOTS catalog.xml set to: "), |
2073 | - local:tokenize(trace($testSetPrefixes, |
2074 | - "'testSetPrefixes' set to: ")), |
2075 | - "", |
2076 | - trace($dependency, |
2077 | - "'dependency' set to:"))), |
2078 | - "
") |
2079 | -case "list-matching-test-cases" |
2080 | - return string-join((d:list-matching-test-cases( |
2081 | - trace($fotsPath, |
2082 | - "Path to FOTS catalog.xml set to: "), |
2083 | - trace($pattern, |
2084 | - "pattern set to: "), |
2085 | - trace($flags, |
2086 | - "flags were set to: ")), ""), |
2087 | - "
") |
2088 | -case "run-test-sets" |
2089 | - return d:run-fots($fotsPath, |
2090 | - $fotsZorbaManifestPath, |
2091 | - d:list-test-sets($fotsPath, |
2092 | - local:tokenize(trace($testSetPrefixes, |
2093 | - "'testSetPrefixes' set to: "))), |
2094 | - d:list-test-cases($fotsPath, |
2095 | - local:tokenize($testSetPrefixes), |
2096 | - local:tokenize(trace($testCasePrefixes, |
2097 | - "'$testCasePrefixes' set to: ")), |
2098 | - trace($dependency, |
2099 | - "'dependency' set to:")), |
2100 | - $exceptedTestCases, |
2101 | - $exceptedTestSets, |
2102 | - $assertType, |
2103 | - xs:boolean($verbose), |
2104 | - xs:boolean($showResult)) |
2105 | -case "run-test-case" |
2106 | - return d:run-fots($fotsPath, |
2107 | - $fotsZorbaManifestPath, |
2108 | - trace($testSetName,"'testSetName' set to: "), |
2109 | - trace($testCaseName,"'testCaseName' set to: "), |
2110 | - $exceptedTestCases, |
2111 | - $exceptedTestSets, |
2112 | - trace($assertType,"'assertType' set to: "), |
2113 | - xs:boolean($verbose), |
2114 | - xs:boolean($showResult)) |
2115 | -case "run-and-report" |
2116 | - return r:run-and-report($fotsPath, |
2117 | - $fotsZorbaManifestPath, |
2118 | - d:list-test-sets($fotsPath, |
2119 | - local:tokenize($testSetPrefixes)), |
2120 | - '', |
2121 | - $exceptedTestCases, |
2122 | - $exceptedTestSets, |
2123 | - $assertType, |
2124 | - fn:false(), (: the reports to W3C are always generated with verbose set to false:) |
2125 | - xs:boolean($showResult)) |
2126 | -case "report" |
2127 | - return r:report($fotsPath, |
2128 | - $failuresFilePath, |
2129 | - $exceptedTestCases, |
2130 | - $exceptedTestSets, |
2131 | - xs:boolean($verbose)) |
2132 | -default |
2133 | - return local:usage() |
2134 | |
2135 | === added file 'test/fots_driver/environment.xq' |
2136 | --- test/fots_driver/environment.xq 1970-01-01 00:00:00 +0000 |
2137 | +++ test/fots_driver/environment.xq 2013-01-08 14:37:31 +0000 |
2138 | @@ -0,0 +1,562 @@ |
2139 | +(: |
2140 | + : Copyright 2006-2011 The FLWOR Foundation. |
2141 | + : |
2142 | + : Licensed under the Apache License, Version 2.0 (the "License"); |
2143 | + : you may not use this file except in compliance with the License. |
2144 | + : You may obtain a copy of the License at |
2145 | + : |
2146 | + : http://www.apache.org/licenses/LICENSE-2.0 |
2147 | + : |
2148 | + : Unless required by applicable law or agreed to in writing, software |
2149 | + : distributed under the License is distributed on an "AS IS" BASIS, |
2150 | + : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
2151 | + : See the License for the specific language governing permissions and |
2152 | + : limitations under the License. |
2153 | + :) |
2154 | + |
2155 | +(:~ |
2156 | + : Zorba FOTS driver environment |
2157 | + : @author Sorin Nasoi |
2158 | + :) |
2159 | + |
2160 | +module namespace env = |
2161 | + "http://www.zorba-xquery.com/fots-driver/environment"; |
2162 | + |
2163 | +import module namespace xqxq = |
2164 | + "http://www.zorba-xquery.com/modules/xqxq"; |
2165 | +import module namespace util = |
2166 | + "http://www.zorba-xquery.com/fots-driver/util" at "util.xq"; |
2167 | + |
2168 | +declare namespace fots = |
2169 | + "http://www.w3.org/2010/09/qt-fots-catalog"; |
2170 | + |
2171 | +declare namespace ann = |
2172 | + "http://www.zorba-xquery.com/annotations"; |
2173 | + |
2174 | + |
2175 | +declare variable $env:hof as xs:string := |
2176 | + string-join( |
2177 | + ( "declare namespace op = 'http://www.zorba-xquery.com/options/features';", |
2178 | + "declare namespace f = 'http://www.zorba-xquery.com/features';", |
2179 | + "declare option op:enable 'f:hof';"), |
2180 | + "
"); |
2181 | + |
2182 | + |
2183 | +(:~ |
2184 | + : If there is a dependency on XQuery 3.0 and there is at least one HOF |
2185 | + : function in the test, return the strings for enabling the HOF feature. |
2186 | + : |
2187 | + : @param $deps the dependencies of the test set and test case |
2188 | + : @param $test the Query test. |
2189 | + : @return the strings for enabling the HOF feature |
2190 | + :) |
2191 | +declare function env:enable-HOF-feature( |
2192 | + $deps as element(fots:dependency)*, |
2193 | + $test as xs:string |
2194 | +) as xs:string? |
2195 | +{ |
2196 | + let $depSpec := string-join(distinct-values( for $dep in $deps |
2197 | + where $dep[@type="spec"] |
2198 | + return data($dep/@value)),""), |
2199 | + $depFeature := string-join(distinct-values(for $dep in $deps |
2200 | + where $dep[@type="feature"] |
2201 | + return data($dep/@value)),"") |
2202 | + return |
2203 | + if ((contains($depSpec,"XQ30") or contains($depSpec,"XP30")) and |
2204 | + contains($depFeature,"higherOrderFunctions")) |
2205 | + then $env:hof else () |
2206 | +}; |
2207 | + |
2208 | + |
2209 | +(:~ |
2210 | + : Check if an XQuery version declaration needs to be added. |
2211 | + : |
2212 | + : @param $deps the dependencies of the test set and test case. |
2213 | + : @param $test the Query test. |
2214 | + : @return the XQuery version declaration. |
2215 | + :) |
2216 | +declare function env:add-xquery-version-decl( |
2217 | + $deps as element(fots:dependency)*, |
2218 | + $test as xs:string |
2219 | +) as xs:string? |
2220 | +{ |
2221 | + let $dependencies := string-join(distinct-values(for $dep in $deps |
2222 | + where $dep[@type="spec"] |
2223 | + return data($dep/@value)),"") |
2224 | + return |
2225 | + if ((contains($dependencies,"XQ30") or contains($dependencies,"XP30")) and |
2226 | + not(contains($test, "xquery version "))) |
2227 | + then 'xquery version "3.0";' |
2228 | + else if(contains($dependencies,"XQ10") and |
2229 | + not(contains($test, "xquery version "))) |
2230 | + then 'xquery version "1.0";' |
2231 | + else () |
2232 | +}; |
2233 | + |
2234 | + |
2235 | +(:~ |
2236 | + : Sets the declared default element namespace. |
2237 | + : |
2238 | + : @param $env the environment of the catalog/test-set (given with 'ref'). |
2239 | + : @param $envCase the environment of the test-case. |
2240 | + : @return the declare default element namespace. |
2241 | + :) |
2242 | +declare function env:decl-def-elem-namespace( |
2243 | + $env as element(fots:environment)?, |
2244 | + $envCase as element(fots:environment)? |
2245 | +) as xs:string? |
2246 | +{ |
2247 | + for $ns in ($env/fots:namespace, $envCase/fots:namespace) |
2248 | + where $ns[@prefix=""] |
2249 | + return concat('declare default element namespace "', |
2250 | + data($ns/@uri), |
2251 | + '";') |
2252 | +}; |
2253 | + |
2254 | + |
2255 | +(:~ |
2256 | + : Adds the declare namespace statements. |
2257 | + : |
2258 | + : @param $env the environment of the catalog/test-set (given with 'ref'). |
2259 | + : @param $case the test-case. |
2260 | + : @param $testSetBaseURI the URI of the test set file. |
2261 | + : @return the declare namespace statements. |
2262 | + :) |
2263 | +declare %ann:nondeterministic function env:decl-namespaces( |
2264 | + $env as element(fots:environment)?, |
2265 | + $case as element(fots:test-case), |
2266 | + $testSetBaseURI as xs:anyURI |
2267 | +) as xs:string? |
2268 | +{ |
2269 | + string-join( |
2270 | + for $ns in ($env/fots:namespace, $case/fots:environment/fots:namespace) |
2271 | + where not($ns[@prefix=""]) and |
2272 | + not(env:is-schema-prefix-bound(data($ns/@prefix), |
2273 | + $case, |
2274 | + $testSetBaseURI)) |
2275 | + return concat('declare namespace ', |
2276 | + data($ns/@prefix), |
2277 | + ' = "', |
2278 | + data($ns/@uri), |
2279 | + '";') |
2280 | + ," ") |
2281 | +}; |
2282 | + |
2283 | + |
2284 | +(:~ |
2285 | + : Return true if the prefix will be bound to a schema in the Query |
2286 | + : It's a bug in the FOTS if this function returns true: TODO report to W3C |
2287 | + :) |
2288 | +declare %private %ann:nondeterministic function env:is-schema-prefix-bound( |
2289 | + $prefix as xs:string, |
2290 | + $case as element(fots:test-case), |
2291 | + $testSetBaseURI as xs:anyURI |
2292 | +) as xs:boolean |
2293 | +{ |
2294 | + contains(util:get-value($case, |
2295 | + $testSetBaseURI, |
2296 | + "test"), |
2297 | + concat("import schema namespace ", |
2298 | + $prefix)) |
2299 | +}; |
2300 | + |
2301 | + |
2302 | +(:~ |
2303 | + : Returns the the declare base-uri prolog statement. |
2304 | + : |
2305 | + : @param $env the environment of the catalog/test-set (given with 'ref'). |
2306 | + : @param $envCase the environment of the test-case. |
2307 | + : @return the declare base-uri prolog statement. |
2308 | + :) |
2309 | +declare function env:decl-base-uri( |
2310 | + $env as element(fots:environment)?, |
2311 | + $envCase as element(fots:environment)? |
2312 | +) as xs:string? |
2313 | +{ |
2314 | + for $baseURI in ($env/fots:static-base-uri, $envCase/fots:static-base-uri) |
2315 | + return concat("declare base-uri '", |
2316 | + data($baseURI/@uri), |
2317 | + "';") |
2318 | +}; |
2319 | + |
2320 | + |
2321 | +(:~ |
2322 | + : Add the decimal format declarations. |
2323 | + : |
2324 | + : @param $decimal-formats decimal formats. |
2325 | + : @return the decimal formats declarations. |
2326 | + :) |
2327 | +declare function env:decl-decimal-formats( |
2328 | + $decimal-formats as element(fots:decimal-format)* |
2329 | +) as xs:string* |
2330 | +{ |
2331 | + if(empty($decimal-formats)) |
2332 | + then () |
2333 | + else |
2334 | + for $tmp in $decimal-formats |
2335 | + let $default := if(exists($tmp/@name)) |
2336 | + then () |
2337 | + else "default" |
2338 | + let $name := if(exists($tmp/@name)) |
2339 | + then data($tmp/@name) |
2340 | + else () |
2341 | + return |
2342 | + string-join(("declare", |
2343 | + $default, |
2344 | + "decimal-format", |
2345 | + $name, |
2346 | + env:set-properties($tmp), |
2347 | + ";"),' ') |
2348 | +}; |
2349 | + |
2350 | + |
2351 | +declare %private function env:set-properties( |
2352 | + $decimal-format as element(fots:decimal-format) |
2353 | +) as xs:string* |
2354 | +{ |
2355 | + for $att in $decimal-format/attribute::* |
2356 | + let $name := node-name($att) |
2357 | + let $value := data($att) |
2358 | + return |
2359 | + if(exists(index-of(("decimal-separator", "grouping-separator", "infinity", |
2360 | + "minus-sign", "NaN", "percent", "per-mille", |
2361 | + "zero-digit", "digit", "pattern-separator"), |
2362 | + xs:string($name)))) |
2363 | + then concat($name, '="' , $value, '"') |
2364 | + else () |
2365 | +}; |
2366 | + |
2367 | + |
2368 | +(:~ |
2369 | + : Adds the variable declarations. |
2370 | + : @param $env environment. |
2371 | + : @param $case test case. |
2372 | + : @param $envBaseURI the relative URI for the environment. |
2373 | + : @param $testSetBaseURI the URI of the test set. |
2374 | + : @return the variable declarations. |
2375 | + :) |
2376 | +declare %ann:nondeterministic function env:add-var-decl( |
2377 | + $env as element(fots:environment)?, |
2378 | + $case as element(fots:test-case), |
2379 | + $envBaseURI as xs:anyURI, |
2380 | + $testSetBaseURI as xs:anyURI |
2381 | +) as xs:string? |
2382 | +{ |
2383 | + concat( env:var-decl-with-value($env, |
2384 | + $envBaseURI), |
2385 | + env:var-decl-with-value($case/fots:environment, |
2386 | + $testSetBaseURI), |
2387 | + env:var-decl-without-value($env, |
2388 | + $case/fots:environment)) |
2389 | +}; |
2390 | + |
2391 | + |
2392 | +declare %private function env:var-decl-with-value( |
2393 | + $env as element(fots:environment)?, |
2394 | + $baseURI as xs:anyURI |
2395 | +) as xs:string? |
2396 | +{ |
2397 | + string-join( |
2398 | + for $param in $env/fots:param |
2399 | + let $select := $param/@select |
2400 | + let $file := $env/fots:source[@uri = translate($select, "'", "")]/@file |
2401 | + let $type := $param/@as |
2402 | + let $varValue := if(starts-with($select, "'") and |
2403 | + ends-with($select, "'") and |
2404 | + exists($file)) |
2405 | + then concat('"', |
2406 | + resolve-uri($file, $baseURI), |
2407 | + '"') |
2408 | + else $select |
2409 | + where (exists($select) and |
2410 | +(: if there is an attribute 'declared' set to true, this means that the variable |
2411 | + is declared within the 'test' itself so no additional variable declaration |
2412 | + is needed :) |
2413 | + empty($param[@declared="true"])) |
2414 | + return concat("declare variable $", |
2415 | + $param/@name, |
2416 | + ((concat(" as ", $type)))[$type], |
2417 | + " := ", |
2418 | + $varValue, |
2419 | + ";") |
2420 | + ," ") |
2421 | +}; |
2422 | + |
2423 | + |
2424 | +declare %private function env:var-decl-without-value( |
2425 | + $env as element(fots:environment)?, |
2426 | + $envCase as element(fots:environment)? |
2427 | +) as xs:string? |
2428 | +{ |
2429 | + string-join( |
2430 | + (for $param in ($env/fots:param, $envCase/fots:param) |
2431 | + let $select := $param/@select |
2432 | + let $type := $param/@as |
2433 | + where (empty($select) and |
2434 | + empty($param[@declared="true"])) |
2435 | + return concat("declare variable $", |
2436 | + $param/@name, |
2437 | + ((concat(" as ", $type)))[$type], |
2438 | + " external;"), |
2439 | + for $source in ($env/fots:source, $envCase/fots:source) |
2440 | + let $role := $source/@role |
2441 | + where starts-with($role,"$") |
2442 | + return concat("declare variable ", |
2443 | + $role, |
2444 | + " external;")) |
2445 | + ," ") |
2446 | +}; |
2447 | + |
2448 | + |
2449 | +(:~ |
2450 | + : Returns the string for setting the context item if needed. |
2451 | + : @param $env environment. |
2452 | + : @param $envBaseURI test base URI of the environment. |
2453 | + : @return the string for setting the context item if needed. |
2454 | + :) |
2455 | +declare function env:set-context-item( |
2456 | + $env as element(fots:environment)?, |
2457 | + $envBaseURI as xs:anyURI? |
2458 | +) as xs:string? { |
2459 | + if (exists($env/fots:source[@role = "."])) |
2460 | + then string-join((env:declare-context-item($env, $envBaseURI), |
2461 | + 'xqxq:bind-context-item($queryID, $contextItem);') |
2462 | + ,"
") |
2463 | + else () |
2464 | +}; |
2465 | + |
2466 | + |
2467 | +declare %private function env:declare-context-item( |
2468 | + $env as element(fots:environment)?, |
2469 | + $envBaseURI as xs:anyURI? |
2470 | +) as xs:string |
2471 | +{ |
2472 | + let $ciURI := resolve-uri($env/fots:source[@role = "."]/@file, $envBaseURI) |
2473 | + return |
2474 | + if(empty($env/fots:source[@validation = "strict"])) |
2475 | + then concat('variable $contextItem := doc("', $ciURI, '");') |
2476 | + else string-join( |
2477 | + ("
", |
2478 | + "variable $contextItemQuery := xqxq:prepare-main-module('", |
2479 | + env:get-schema-import($env), |
2480 | + concat('validate { doc("', $ciURI, '")', "}',", " "), |
2481 | + "resolver:url-resolver#2, ());", |
2482 | + "variable $contextItem := xqxq:evaluate($contextItemQuery);") |
2483 | + ,"
") |
2484 | +}; |
2485 | + |
2486 | + |
2487 | +(:~ |
2488 | + : Returns the strings for variable binding in XQXQ. |
2489 | + : |
2490 | + : @param $env the environment of the catalog/test-set (given with 'ref'). |
2491 | + : @param $envBaseURI the relative URI for the environment. |
2492 | + : @return the strings for variable binding in XQXQ. |
2493 | + :) |
2494 | +declare function env:set-variables( |
2495 | + $env as element(fots:environment)?, |
2496 | + $envBaseURI as xs:anyURI |
2497 | +) as xs:string? |
2498 | +{ |
2499 | + if(empty($env)) |
2500 | + then () |
2501 | + else |
2502 | + let $srcNames := for $source in $env/fots:source |
2503 | + where starts-with(data($source/@role),"$") |
2504 | + return substring-after(data($source/@role),"$"), |
2505 | + $srcValues := for $srcName in $srcNames |
2506 | + return concat('doc("', |
2507 | + resolve-uri($env/fots:source[@role = concat("$",$srcName)]/@file, $envBaseURI), |
2508 | + '")') |
2509 | + return |
2510 | + string-join( |
2511 | + (for $srcName in $srcNames |
2512 | + let $index := index-of($srcNames, $srcName) |
2513 | + return |
2514 | + concat('xqxq:bind-variable( $queryID, xs:QName("', $srcName, '")', ', ', |
2515 | + $srcValues[$index], ');'), |
2516 | + |
2517 | + for $param in $env/fots:param |
2518 | + let $select:= $param/@select |
2519 | + let $file := $env/fots:source[@uri = translate($select, "'", "")]/@file |
2520 | + let $varValue := if(starts-with($select, "'") and |
2521 | + ends-with($select, "'") and |
2522 | + exists($file)) |
2523 | + then concat('"', |
2524 | + resolve-uri($file, $envBaseURI), |
2525 | + '"') |
2526 | + else $select |
2527 | + let $varName := $param/@name |
2528 | + where (exists($select) and |
2529 | +(: if there is an attribute 'declared' set to true, this means that the variable |
2530 | + is declared within the 'test' itself :) |
2531 | + exists($param[@declared="true"])) |
2532 | + return |
2533 | + concat('xqxq:bind-variable( $queryID, xs:QName("', |
2534 | + $param/@name, |
2535 | + '")', ', ', |
2536 | + $varValue, ');')) |
2537 | + , "
") |
2538 | +}; |
2539 | + |
2540 | + |
2541 | +declare %private function env:get-schema-import ( |
2542 | + $env as element(fots:environment)? |
2543 | +) as xs:string |
2544 | +{ |
2545 | + if (empty($env)) |
2546 | + then "" |
2547 | + else |
2548 | + let $namespace := $env/fots:namespace[@uri = data($env/fots:schema/@uri)] |
2549 | + let $prefix as xs:string := if(exists($namespace)) |
2550 | + then xs:string(data($namespace/@prefix)) |
2551 | + else "p" |
2552 | + return |
2553 | + if($prefix = "") |
2554 | + then concat('import schema default element namespace "', |
2555 | + $env/fots:schema/@uri, |
2556 | + '";
') |
2557 | + else concat('import schema namespace ', |
2558 | + $prefix, |
2559 | + ' = "', |
2560 | + $env/fots:schema/@uri, |
2561 | + '";
') |
2562 | +}; |
2563 | + |
2564 | + |
2565 | +(:~ |
2566 | + : Returns the XQXQ URL resolver declaration. |
2567 | + : @param $case the test case. |
2568 | + : @param $env the environment. |
2569 | + : @param $envBaseURI URI of the environment. |
2570 | + : @param $testSetBaseURI URI to the test set that defines the test case. |
2571 | + : @return the XQXQ URL resolver declaration. |
2572 | + :) |
2573 | +declare function env:resolver( |
2574 | + $case as element(fots:test-case), |
2575 | + $env as element(fots:environment)?, |
2576 | + $envBaseURI as xs:anyURI?, |
2577 | + $testSetBaseURI as xs:anyURI |
2578 | +) as xs:string? |
2579 | +{ |
2580 | + let $envSchema := $env/fots:schema, |
2581 | + $tcSchema := $case/fots:environment/fots:schema, |
2582 | + $schemas := ($envSchema, $tcSchema), |
2583 | + $modules := $case/fots:module, |
2584 | + $resources := ($env/fots:resource, $case/fots:environment/fots:schema) |
2585 | + return |
2586 | + if (empty($schemas) and empty($modules) and empty($resources)) |
2587 | + then () |
2588 | + else string-join( |
2589 | + ("declare namespace resolver = 'http://www.zorba-xquery.com/modules/xqxq/url-resolver';", |
2590 | + $env:hof, |
2591 | + "declare function resolver:url-resolver($namespace as xs:string, $entity as xs:string) {", |
2592 | + "switch($entity)", |
2593 | + if (exists($schemas)) |
2594 | + then string-join(("case 'schema'", |
2595 | + " return switch($namespace)", |
2596 | + (for $schema in $envSchema |
2597 | + return concat(" case '", |
2598 | + data($schema/@uri), |
2599 | + "' return doc('", |
2600 | + resolve-uri($schema/@file, $envBaseURI), |
2601 | + "')"), |
2602 | + for $schema in $tcSchema |
2603 | + return concat(" case '", |
2604 | + data($schema/@uri), |
2605 | + "' return doc('", |
2606 | + resolve-uri($schema/@file, $testSetBaseURI), |
2607 | + "')")), |
2608 | + " default return ()"), |
2609 | + "
") |
2610 | + else (), |
2611 | + if (exists($modules)) |
2612 | + then string-join(("case 'module'", |
2613 | + " return switch($namespace)", |
2614 | + for $module in $modules |
2615 | + return concat(" case '", |
2616 | + data($module/@uri), |
2617 | + "' return unparsed-text('", |
2618 | + resolve-uri($module/@file, $testSetBaseURI), |
2619 | + "') "), |
2620 | + " default return ()"), |
2621 | + "
") |
2622 | + else (), |
2623 | + if (exists($resources)) then |
2624 | + string-join(("case ''", |
2625 | + " return switch($namespace)", |
2626 | + for $resource in $resources |
2627 | + return concat(" case '", |
2628 | + data($resource/@uri), |
2629 | + "' return unparsed-text('", |
2630 | + resolve-uri($resource/@file, $envBaseURI), |
2631 | + "'", |
2632 | + if(exists($resource/@encoding)) |
2633 | + then concat (",'", |
2634 | + data($resource/@encoding), |
2635 | + "'") |
2636 | + else (), |
2637 | + ") "), |
2638 | + " default return ()") |
2639 | + ,"
") |
2640 | + else () |
2641 | + , "default return ()","};"), |
2642 | + "
") |
2643 | +}; |
2644 | + |
2645 | + |
2646 | +(:~ |
2647 | + : Checks the dependencies according to the Zorba manifest. |
2648 | + : |
2649 | + : @param $deps the dependencies of the test set and test case |
2650 | + : @param $zorbaManifest Zorba manifest document. |
2651 | + : @return if true empty string, otherwise returns a string with the |
2652 | + : dependencies that were not matched. |
2653 | + :) |
2654 | +declare function env:check-dependencies( |
2655 | + $deps as element(fots:dependency)*, |
2656 | + $zorbaManifest |
2657 | +) as xs:string* |
2658 | +{ |
2659 | + if(empty($deps)) |
2660 | + then () |
2661 | + else |
2662 | + for $dep in $deps |
2663 | + let $satisfied := if(exists($dep/@satisfied)) |
2664 | + then data($dep/@satisfied) |
2665 | + else "true" |
2666 | + let $zorbaDep := $zorbaManifest//fots:dependency[ @type = $dep/@type and |
2667 | + @value = $dep/@value and |
2668 | + @satisfied = $satisfied] |
2669 | + return |
2670 | + if(empty($zorbaDep)) |
2671 | + then concat("Dependency (type=", |
2672 | + $dep/@type, |
2673 | + ", value=", |
2674 | + $dep/@value, |
2675 | + ", satisfied=", |
2676 | + $satisfied, |
2677 | + ") was not met. ") |
2678 | + else () |
2679 | +}; |
2680 | + |
2681 | + |
2682 | +(:~ |
2683 | + : Retrieves the environment from a test-set/catalog given an environment name. |
2684 | + : @param $catalog FOTS catalog file. |
2685 | + : @param $testSet test set. |
2686 | + : @param $envName name of the environment. |
2687 | + : @return the environment with the given name. |
2688 | + :) |
2689 | +declare function env:get-environment ( |
2690 | + $catalog, |
2691 | + $testSet as element (fots:test-set), |
2692 | + $envName as xs:string |
2693 | +) as element(fots:environment)? |
2694 | +{ |
2695 | + let $envTestSet := $testSet/test-set//environment[@name = $envName] |
2696 | + return |
2697 | + if (empty($envTestSet)) |
2698 | + then $catalog/catalog//environment[@name = $envName] |
2699 | + else $envTestSet |
2700 | +}; |
2701 | |
2702 | === removed file 'test/fots_driver/environment.xq' |
2703 | --- test/fots_driver/environment.xq 2012-12-18 11:40:08 +0000 |
2704 | +++ test/fots_driver/environment.xq 1970-01-01 00:00:00 +0000 |
2705 | @@ -1,561 +0,0 @@ |
2706 | -(: |
2707 | - : Copyright 2006-2011 The FLWOR Foundation. |
2708 | - : |
2709 | - : Licensed under the Apache License, Version 2.0 (the "License"); |
2710 | - : you may not use this file except in compliance with the License. |
2711 | - : You may obtain a copy of the License at |
2712 | - : |
2713 | - : http://www.apache.org/licenses/LICENSE-2.0 |
2714 | - : |
2715 | - : Unless required by applicable law or agreed to in writing, software |
2716 | - : distributed under the License is distributed on an "AS IS" BASIS, |
2717 | - : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
2718 | - : See the License for the specific language governing permissions and |
2719 | - : limitations under the License. |
2720 | - :) |
2721 | - |
2722 | -(:~ |
2723 | - : Zorba FOTS driver environment |
2724 | - : @author Sorin Nasoi |
2725 | - :) |
2726 | - |
2727 | -module namespace env = |
2728 | - "http://www.zorba-xquery.com/fots-driver/environment"; |
2729 | - |
2730 | -import module namespace xqxq = |
2731 | - "http://www.zorba-xquery.com/modules/xqxq"; |
2732 | -import module namespace util = |
2733 | - "http://www.zorba-xquery.com/fots-driver/util" at "util.xq"; |
2734 | - |
2735 | -declare namespace fots = |
2736 | - "http://www.w3.org/2010/09/qt-fots-catalog"; |
2737 | - |
2738 | -declare namespace ann = |
2739 | - "http://www.zorba-xquery.com/annotations"; |
2740 | - |
2741 | - |
2742 | -declare variable $env:hof as xs:string := |
2743 | - string-join( |
2744 | - ( "declare namespace op = 'http://www.zorba-xquery.com/options/features';", |
2745 | - "declare namespace f = 'http://www.zorba-xquery.com/features';", |
2746 | - "declare option op:enable 'f:hof';"), |
2747 | - "
"); |
2748 | - |
2749 | - |
2750 | -(:~ |
2751 | - : If there is a dependency on XQuery 3.0 and there is at least one HOF |
2752 | - : function in the test, return the strings for enabling the HOF feature. |
2753 | - : |
2754 | - : @param $deps the dependencies of the test set and test case |
2755 | - : @param $test the Query test. |
2756 | - : @return the strings for enabling the HOF feature |
2757 | - :) |
2758 | -declare function env:enable-HOF-feature( |
2759 | - $deps as element(fots:dependency)*, |
2760 | - $test as xs:string |
2761 | -) as xs:string? |
2762 | -{ |
2763 | - let $depSpec := string-join(distinct-values( for $dep in $deps |
2764 | - where $dep[@type="spec"] |
2765 | - return data($dep/@value)),""), |
2766 | - $depFeature := string-join(distinct-values(for $dep in $deps |
2767 | - where $dep[@type="feature"] |
2768 | - return data($dep/@value)),"") |
2769 | - return |
2770 | - if ((contains($depSpec,"XQ30") or contains($depSpec,"XP30")) and |
2771 | - contains($depFeature,"higherOrderFunctions")) |
2772 | - then $env:hof else () |
2773 | -}; |
2774 | - |
2775 | - |
2776 | -(:~ |
2777 | - : Check if an XQuery version declaration needs to be added. |
2778 | - : |
2779 | - : @param $deps the dependencies of the test set and test case. |
2780 | - : @param $test the Query test. |
2781 | - : @return the XQuery version declaration. |
2782 | - :) |
2783 | -declare function env:add-xquery-version-decl( |
2784 | - $deps as element(fots:dependency)*, |
2785 | - $test as xs:string |
2786 | -) as xs:string? |
2787 | -{ |
2788 | - let $dependencies := string-join(distinct-values(for $dep in $deps |
2789 | - where $dep[@type="spec"] |
2790 | - return data($dep/@value)),"") |
2791 | - return |
2792 | - if ((contains($dependencies,"XQ30") or contains($dependencies,"XP30")) and |
2793 | - not(contains($test, "xquery version "))) |
2794 | - then 'xquery version "3.0";' |
2795 | - else if(contains($dependencies,"XQ10") and |
2796 | - not(contains($test, "xquery version "))) |
2797 | - then 'xquery version "1.0";' |
2798 | - else () |
2799 | -}; |
2800 | - |
2801 | - |
2802 | -(:~ |
2803 | - : Sets the declared default element namespace. |
2804 | - : |
2805 | - : @param $env the environment of the catalog/test-set (given with 'ref'). |
2806 | - : @param $envCase the environment of the test-case. |
2807 | - : @return the declare default element namespace. |
2808 | - :) |
2809 | -declare function env:decl-def-elem-namespace( |
2810 | - $env as element(fots:environment)?, |
2811 | - $envCase as element(fots:environment)? |
2812 | -) as xs:string? |
2813 | -{ |
2814 | - for $ns in ($env/fots:namespace, $envCase/fots:namespace) |
2815 | - where $ns[@prefix=""] |
2816 | - return concat('declare default element namespace "', |
2817 | - data($ns/@uri), |
2818 | - '";') |
2819 | -}; |
2820 | - |
2821 | - |
2822 | -(:~ |
2823 | - : Adds the declare namespace statements. |
2824 | - : |
2825 | - : @param $env the environment of the catalog/test-set (given with 'ref'). |
2826 | - : @param $case the test-case. |
2827 | - : @param $testSetBaseURI the URI of the test set file. |
2828 | - : @return the declare namespace statements. |
2829 | - :) |
2830 | -declare %ann:nondeterministic function env:decl-namespaces( |
2831 | - $env as element(fots:environment)?, |
2832 | - $case as element(fots:test-case), |
2833 | - $testSetBaseURI as xs:anyURI |
2834 | -) as xs:string? |
2835 | -{ |
2836 | - string-join( |
2837 | - for $ns in ($env/fots:namespace, $case/fots:environment/fots:namespace) |
2838 | - where not($ns[@prefix=""]) and |
2839 | - not(env:is-schema-prefix-bound(data($ns/@prefix), |
2840 | - $case, |
2841 | - $testSetBaseURI)) |
2842 | - return concat('declare namespace ', |
2843 | - data($ns/@prefix), |
2844 | - ' = "', |
2845 | - data($ns/@uri), |
2846 | - '";') |
2847 | - ," ") |
2848 | -}; |
2849 | - |
2850 | - |
2851 | -(:~ |
2852 | - : Return true if the prefix will be bound to a schema in the Query |
2853 | - : It's a bug in the FOTS if this function returns true: TODO report to W3C |
2854 | - :) |
2855 | -declare %private %ann:nondeterministic function env:is-schema-prefix-bound( |
2856 | - $prefix as xs:string, |
2857 | - $case as element(fots:test-case), |
2858 | - $testSetBaseURI as xs:anyURI |
2859 | -) as xs:boolean |
2860 | -{ |
2861 | - contains(util:get-value($case, |
2862 | - $testSetBaseURI, |
2863 | - "test"), |
2864 | - concat("import schema namespace ", |
2865 | - $prefix)) |
2866 | -}; |
2867 | - |
2868 | - |
2869 | -(:~ |
2870 | - : Returns the the declare base-uri prolog statement. |
2871 | - : |
2872 | - : @param $env the environment of the catalog/test-set (given with 'ref'). |
2873 | - : @param $envCase the environment of the test-case. |
2874 | - : @return the declare base-uri prolog statement. |
2875 | - :) |
2876 | -declare function env:decl-base-uri( |
2877 | - $env as element(fots:environment)?, |
2878 | - $envCase as element(fots:environment)? |
2879 | -) as xs:string? |
2880 | -{ |
2881 | - for $baseURI in ($env/fots:static-base-uri, $envCase/fots:static-base-uri) |
2882 | - return concat("declare base-uri '", |
2883 | - data($baseURI/@uri), |
2884 | - "';") |
2885 | -}; |
2886 | - |
2887 | - |
2888 | -(:~ |
2889 | - : Add the decimal format declarations. |
2890 | - : |
2891 | - : @param $decimal-formats decimal formats. |
2892 | - : @return the decimal formats declarations. |
2893 | - :) |
2894 | -declare function env:decl-decimal-formats( |
2895 | - $decimal-formats as element(fots:decimal-format)* |
2896 | -) as xs:string* |
2897 | -{ |
2898 | - if(empty($decimal-formats)) |
2899 | - then () |
2900 | - else |
2901 | - for $tmp in $decimal-formats |
2902 | - let $default := if(exists($tmp/@name)) |
2903 | - then () |
2904 | - else "default" |
2905 | - let $name := if(exists($tmp/@name)) |
2906 | - then data($tmp/@name) |
2907 | - else () |
2908 | - return |
2909 | - string-join(("declare", |
2910 | - $default, |
2911 | - "decimal-format", |
2912 | - $name, |
2913 | - env:set-properties($tmp), |
2914 | - ";"),' ') |
2915 | -}; |
2916 | - |
2917 | - |
2918 | -declare %private function env:set-properties( |
2919 | - $decimal-format as element(fots:decimal-format) |
2920 | -) as xs:string* |
2921 | -{ |
2922 | - for $att in $decimal-format/attribute::* |
2923 | - let $name := node-name($att) |
2924 | - let $value := data($att) |
2925 | - return |
2926 | - if(exists(index-of(("decimal-separator", "grouping-separator", "infinity", |
2927 | - "minus-sign", "NaN", "percent", "per-mille", |
2928 | - "zero-digit", "digit", "pattern-separator"), |
2929 | - xs:string($name)))) |
2930 | - then concat($name, '="' , $value, '"') |
2931 | - else () |
2932 | -}; |
2933 | - |
2934 | - |
2935 | -(:~ |
2936 | - : Adds the variable declarations. |
2937 | - : @param $env environment. |
2938 | - : @param $case test case. |
2939 | - : @param $envBaseURI the relative URI for the environment. |
2940 | - : @param $testSetBaseURI the URI of the test set. |
2941 | - : @return the variable declarations. |
2942 | - :) |
2943 | -declare %ann:nondeterministic function env:add-var-decl( |
2944 | - $env as element(fots:environment)?, |
2945 | - $case as element(fots:test-case), |
2946 | - $envBaseURI as xs:anyURI, |
2947 | - $testSetBaseURI as xs:anyURI |
2948 | -) as xs:string? |
2949 | -{ |
2950 | - concat( env:var-decl-with-value($env, |
2951 | - $envBaseURI), |
2952 | - env:var-decl-with-value($case/fots:environment, |
2953 | - $testSetBaseURI), |
2954 | - env:var-decl-without-value($env, |
2955 | - $case/fots:environment)) |
2956 | -}; |
2957 | - |
2958 | - |
2959 | -declare %private function env:var-decl-with-value( |
2960 | - $env as element(fots:environment)?, |
2961 | - $baseURI as xs:anyURI |
2962 | -) as xs:string? |
2963 | -{ |
2964 | - string-join( |
2965 | - for $param in $env/fots:param |
2966 | - let $select := $param/@select |
2967 | - let $file := $env/fots:source[@uri = translate($select, "'", "")]/@file |
2968 | - let $type := $param/@as |
2969 | - let $varValue := if(starts-with($select, "'") and |
2970 | - ends-with($select, "'") and |
2971 | - exists($file)) |
2972 | - then concat('"', |
2973 | - resolve-uri($file, $baseURI), |
2974 | - '"') |
2975 | - else $select |
2976 | - where (exists($select) and |
2977 | -(: if there is an attribute 'declared' set to true, this means that the variable |
2978 | - is declared within the 'test' itself so no additional variable declaration |
2979 | - is needed :) |
2980 | - empty($param[@declared="true"])) |
2981 | - return concat("declare variable $", |
2982 | - $param/@name, |
2983 | - ((concat(" as ", $type)))[$type], |
2984 | - " := ", |
2985 | - $varValue, |
2986 | - ";") |
2987 | - ," ") |
2988 | -}; |
2989 | - |
2990 | - |
2991 | -declare %private function env:var-decl-without-value( |
2992 | - $env as element(fots:environment)?, |
2993 | - $envCase as element(fots:environment)? |
2994 | -) as xs:string? |
2995 | -{ |
2996 | - string-join( |
2997 | - (for $param in ($env/fots:param, $envCase/fots:param) |
2998 | - let $select := $param/@select |
2999 | - let $type := $param/@as |
3000 | - where (empty($select) and |
3001 | - empty($param[@declared="true"])) |
3002 | - return concat("declare variable $", |
3003 | - $param/@name, |
3004 | - ((concat(" as ", $type)))[$type], |
3005 | - " external;"), |
3006 | - for $source in ($env/fots:source, $envCase/fots:source) |
3007 | - let $role := $source/@role |
3008 | - where starts-with($role,"$") |
3009 | - return concat("declare variable ", |
3010 | - $role, |
3011 | - " external;")) |
3012 | - ," ") |
3013 | -}; |
3014 | - |
3015 | - |
3016 | -(:~ |
3017 | - : Returns the string for setting the context item if needed. |
3018 | - : @param $env environment. |
3019 | - : @param $envBaseURI test base URI of the environment. |
3020 | - : @return the string for setting the context item if needed. |
3021 | - :) |
3022 | -declare function env:set-context-item( |
3023 | - $env as element(fots:environment)?, |
3024 | - $envBaseURI as xs:anyURI? |
3025 | -) as xs:string? { |
3026 | - if (exists($env/fots:source[@role = "."])) |
3027 | - then string-join((env:declare-context-item($env, $envBaseURI), |
3028 | - 'xqxq:bind-context-item($queryID, $contextItem);') |
3029 | - ,"
") |
3030 | - else () |
3031 | -}; |
3032 | - |
3033 | - |
3034 | -declare %private function env:declare-context-item( |
3035 | - $env as element(fots:environment)?, |
3036 | - $envBaseURI as xs:anyURI? |
3037 | -) as xs:string |
3038 | -{ |
3039 | - let $ciURI := resolve-uri($env/fots:source[@role = "."]/@file, $envBaseURI) |
3040 | - return |
3041 | - if(empty($env/fots:source[@validation = "strict"])) |
3042 | - then concat('variable $contextItem := doc("', $ciURI, '");') |
3043 | - else string-join( |
3044 | - ("
", |
3045 | - "variable $contextItemQuery := xqxq:prepare-main-module('", |
3046 | - env:get-schema-import($env), |
3047 | - concat('validate { doc("', $ciURI, '")', "}',", " "), |
3048 | - "resolver:url-resolver#2, ());", |
3049 | - "variable $contextItem := xqxq:evaluate($contextItemQuery);") |
3050 | - ,"
") |
3051 | -}; |
3052 | - |
3053 | - |
3054 | -(:~ |
3055 | - : Returns the strings for variable binding in XQXQ. |
3056 | - : |
3057 | - : @param $env the environment of the catalog/test-set (given with 'ref'). |
3058 | - : @param $envBaseURI the relative URI for the environment. |
3059 | - : @return the strings for variable binding in XQXQ. |
3060 | - :) |
3061 | -declare function env:set-variables( |
3062 | - $env as element(fots:environment)?, |
3063 | - $envBaseURI as xs:anyURI |
3064 | -) as xs:string? |
3065 | -{ |
3066 | - if(empty($env)) |
3067 | - then () |
3068 | - else |
3069 | - let $srcNames := for $source in $env/fots:source |
3070 | - where starts-with(data($source/@role),"$") |
3071 | - return substring-after(data($source/@role),"$"), |
3072 | - $srcValues := for $srcName in $srcNames |
3073 | - return concat('doc("', |
3074 | - resolve-uri($env/fots:source[@role = concat("$",$srcName)]/@file, $envBaseURI), |
3075 | - '")') |
3076 | - return |
3077 | - string-join( |
3078 | - (for $srcName in $srcNames |
3079 | - let $index := index-of($srcNames, $srcName) |
3080 | - return |
3081 | - concat('xqxq:bind-variable( $queryID, xs:QName("', $srcName, '")', ', ', |
3082 | - $srcValues[$index], ');'), |
3083 | - for $param in $env/fots:param |
3084 | - let $select:= $param/@select |
3085 | - let $file := $env/fots:source[@uri = translate($select, "'", "")]/@file |
3086 | - let $varValue := if(starts-with($select, "'") and |
3087 | - ends-with($select, "'") and |
3088 | - exists($file)) |
3089 | - then concat('"', |
3090 | - resolve-uri($file, $envBaseURI), |
3091 | - '"') |
3092 | - else $select |
3093 | - let $varName := $param/@name |
3094 | - where (exists($select) and |
3095 | -(: if there is an attribute 'declared' set to true, this means that the variable |
3096 | - is declared within the 'test' itself :) |
3097 | - exists($param[@declared="true"])) |
3098 | - return |
3099 | - concat('xqxq:bind-variable( $queryID, xs:QName("', |
3100 | - $param/@name, |
3101 | - '")', ', ', |
3102 | - $varValue, ');')) |
3103 | - , "
") |
3104 | -}; |
3105 | - |
3106 | - |
3107 | -declare %private function env:get-schema-import ( |
3108 | - $env as element(fots:environment)? |
3109 | -) as xs:string |
3110 | -{ |
3111 | - if (empty($env)) |
3112 | - then "" |
3113 | - else |
3114 | - let $namespace := $env/fots:namespace[@uri = data($env/fots:schema/@uri)] |
3115 | - let $prefix as xs:string := if(exists($namespace)) |
3116 | - then xs:string(data($namespace/@prefix)) |
3117 | - else "p" |
3118 | - return |
3119 | - if($prefix = "") |
3120 | - then concat('import schema default element namespace "', |
3121 | - $env/fots:schema/@uri, |
3122 | - '";
') |
3123 | - else concat('import schema namespace ', |
3124 | - $prefix, |
3125 | - ' = "', |
3126 | - $env/fots:schema/@uri, |
3127 | - '";
') |
3128 | -}; |
3129 | - |
3130 | - |
3131 | -(:~ |
3132 | - : Returns the XQXQ URL resolver declaration. |
3133 | - : @param $case the test case. |
3134 | - : @param $env the environment. |
3135 | - : @param $envBaseURI URI of the environment. |
3136 | - : @param $testSetBaseURI URI to the test set that defines the test case. |
3137 | - : @return the XQXQ URL resolver declaration. |
3138 | - :) |
3139 | -declare function env:resolver( |
3140 | - $case as element(fots:test-case), |
3141 | - $env as element(fots:environment)?, |
3142 | - $envBaseURI as xs:anyURI?, |
3143 | - $testSetBaseURI as xs:anyURI |
3144 | -) as xs:string? |
3145 | -{ |
3146 | - let $envSchema := $env/fots:schema, |
3147 | - $tcSchema := $case/fots:environment/fots:schema, |
3148 | - $schemas := ($envSchema, $tcSchema), |
3149 | - $modules := $case/fots:module, |
3150 | - $resources := ($env/fots:resource, $case/fots:environment/fots:schema) |
3151 | - return |
3152 | - if (empty($schemas) and empty($modules) and empty($resources)) |
3153 | - then () |
3154 | - else string-join( |
3155 | - ("declare namespace resolver = 'http://www.zorba-xquery.com/modules/xqxq/url-resolver';", |
3156 | - $env:hof, |
3157 | - "declare function resolver:url-resolver($namespace as xs:string, $entity as xs:string) {", |
3158 | - "switch($entity)", |
3159 | - if (exists($schemas)) |
3160 | - then string-join(("case 'schema'", |
3161 | - " return switch($namespace)", |
3162 | - (for $schema in $envSchema |
3163 | - return concat(" case '", |
3164 | - data($schema/@uri), |
3165 | - "' return doc('", |
3166 | - resolve-uri($schema/@file, $envBaseURI), |
3167 | - "')"), |
3168 | - for $schema in $tcSchema |
3169 | - return concat(" case '", |
3170 | - data($schema/@uri), |
3171 | - "' return doc('", |
3172 | - resolve-uri($schema/@file, $testSetBaseURI), |
3173 | - "')")), |
3174 | - " default return ()"), |
3175 | - "
") |
3176 | - else (), |
3177 | - if (exists($modules)) |
3178 | - then string-join(("case 'module'", |
3179 | - " return switch($namespace)", |
3180 | - for $module in $modules |
3181 | - return concat(" case '", |
3182 | - data($module/@uri), |
3183 | - "' return unparsed-text('", |
3184 | - resolve-uri($module/@file, $testSetBaseURI), |
3185 | - "') "), |
3186 | - " default return ()"), |
3187 | - "
") |
3188 | - else (), |
3189 | - if (exists($resources)) then |
3190 | - string-join(("case ''", |
3191 | - " return switch($namespace)", |
3192 | - for $resource in $resources |
3193 | - return concat(" case '", |
3194 | - data($resource/@uri), |
3195 | - "' return unparsed-text('", |
3196 | - resolve-uri($resource/@file, $envBaseURI), |
3197 | - "'", |
3198 | - if(exists($resource/@encoding)) |
3199 | - then concat (",'", |
3200 | - data($resource/@encoding), |
3201 | - "'") |
3202 | - else (), |
3203 | - ") "), |
3204 | - " default return ()") |
3205 | - ,"
") |
3206 | - else () |
3207 | - , "default return ()","};"), |
3208 | - "
") |
3209 | -}; |
3210 | - |
3211 | - |
3212 | -(:~ |
3213 | - : Checks the dependencies according to the Zorba manifest. |
3214 | - : |
3215 | - : @param $deps the dependencies of the test set and test case |
3216 | - : @param $zorbaManifest Zorba manifest document. |
3217 | - : @return if true empty string, otherwise returns a string with the |
3218 | - : dependencies that were not matched. |
3219 | - :) |
3220 | -declare function env:check-dependencies( |
3221 | - $deps as element(fots:dependency)*, |
3222 | - $zorbaManifest |
3223 | -) as xs:string* |
3224 | -{ |
3225 | - if(empty($deps)) |
3226 | - then () |
3227 | - else |
3228 | - for $dep in $deps |
3229 | - let $satisfied := if(exists($dep/@satisfied)) |
3230 | - then data($dep/@satisfied) |
3231 | - else "true" |
3232 | - let $zorbaDep := $zorbaManifest//fots:dependency[ @type = $dep/@type and |
3233 | - @value = $dep/@value and |
3234 | - @satisfied = $satisfied] |
3235 | - return |
3236 | - if(empty($zorbaDep)) |
3237 | - then concat("Dependency (type=", |
3238 | - $dep/@type, |
3239 | - ", value=", |
3240 | - $dep/@value, |
3241 | - ", satisfied=", |
3242 | - $satisfied, |
3243 | - ") was not met. ") |
3244 | - else () |
3245 | -}; |
3246 | - |
3247 | - |
3248 | -(:~ |
3249 | - : Retrieves the environment from a test-set/catalog given an environment name. |
3250 | - : @param $catalog FOTS catalog file. |
3251 | - : @param $testSet test set. |
3252 | - : @param $envName name of the environment. |
3253 | - : @return the environment with the given name. |
3254 | - :) |
3255 | -declare function env:get-environment ( |
3256 | - $catalog, |
3257 | - $testSet as element (fots:test-set), |
3258 | - $envName as xs:string |
3259 | -) as element(fots:environment)? |
3260 | -{ |
3261 | - let $envTestSet := $testSet/test-set//environment[@name = $envName] |
3262 | - return |
3263 | - if (empty($envTestSet)) |
3264 | - then $catalog/catalog//environment[@name = $envName] |
3265 | - else $envTestSet |
3266 | -}; |
3267 | |
3268 | === added file 'test/fots_driver/errors.xq' |
3269 | --- test/fots_driver/errors.xq 1970-01-01 00:00:00 +0000 |
3270 | +++ test/fots_driver/errors.xq 2013-01-08 14:37:31 +0000 |
3271 | @@ -0,0 +1,36 @@ |
3272 | +(: |
3273 | + : Copyright 2006-2011 The FLWOR Foundation. |
3274 | + : |
3275 | + : Licensed under the Apache License, Version 2.0 (the "License"); |
3276 | + : you may not use this file except in compliance with the License. |
3277 | + : You may obtain a copy of the License at |
3278 | + : |
3279 | + : http://www.apache.org/licenses/LICENSE-2.0 |
3280 | + : |
3281 | + : Unless required by applicable law or agreed to in writing, software |
3282 | + : distributed under the License is distributed on an "AS IS" BASIS, |
3283 | + : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
3284 | + : See the License for the specific language governing permissions and |
3285 | + : limitations under the License. |
3286 | + :) |
3287 | + |
3288 | +(:~ |
3289 | + : Zorba FOTS driver errors |
3290 | + : @author Sorin Nasoi |
3291 | + :) |
3292 | + |
3293 | +module namespace err = |
3294 | + "http://www.zorba-xquery.com/fots-driver/errors"; |
3295 | + |
3296 | +(:~ |
3297 | + : Errors namespace URI. |
3298 | +:) |
3299 | +declare variable $err:errNS as xs:string := |
3300 | + "http://www.zorba-xquery.com/fots-driver/errors"; |
3301 | + |
3302 | +(:~ |
3303 | + : xs:QName with |
3304 | + : namespace URI = "http://www.w3.org/2010/09/qt-fots-catalog/errors" |
3305 | + : and local name "err:errNA" |
3306 | +:) |
3307 | +declare variable $err:errNA as xs:QName := fn:QName($err:errNS, "check:errNA"); |
3308 | |
3309 | === removed file 'test/fots_driver/errors.xq' |
3310 | --- test/fots_driver/errors.xq 2012-12-18 11:40:08 +0000 |
3311 | +++ test/fots_driver/errors.xq 1970-01-01 00:00:00 +0000 |
3312 | @@ -1,36 +0,0 @@ |
3313 | -(: |
3314 | - : Copyright 2006-2011 The FLWOR Foundation. |
3315 | - : |
3316 | - : Licensed under the Apache License, Version 2.0 (the "License"); |
3317 | - : you may not use this file except in compliance with the License. |
3318 | - : You may obtain a copy of the License at |
3319 | - : |
3320 | - : http://www.apache.org/licenses/LICENSE-2.0 |
3321 | - : |
3322 | - : Unless required by applicable law or agreed to in writing, software |
3323 | - : distributed under the License is distributed on an "AS IS" BASIS, |
3324 | - : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
3325 | - : See the License for the specific language governing permissions and |
3326 | - : limitations under the License. |
3327 | - :) |
3328 | - |
3329 | -(:~ |
3330 | - : Zorba FOTS driver errors |
3331 | - : @author Sorin Nasoi |
3332 | - :) |
3333 | - |
3334 | -module namespace err = |
3335 | - "http://www.zorba-xquery.com/fots-driver/errors"; |
3336 | - |
3337 | -(:~ |
3338 | - : Errors namespace URI. |
3339 | -:) |
3340 | -declare variable $err:errNS as xs:string := |
3341 | - "http://www.zorba-xquery.com/fots-driver/errors"; |
3342 | - |
3343 | -(:~ |
3344 | - : xs:QName with |
3345 | - : namespace URI = "http://www.w3.org/2010/09/qt-fots-catalog/errors" |
3346 | - : and local name "err:errNA" |
3347 | -:) |
3348 | -declare variable $err:errNA as xs:QName := fn:QName($err:errNS, "check:errNA"); |
3349 | |
3350 | === added file 'test/fots_driver/evaluate.xq' |
3351 | --- test/fots_driver/evaluate.xq 1970-01-01 00:00:00 +0000 |
3352 | +++ test/fots_driver/evaluate.xq 2013-01-08 14:37:31 +0000 |
3353 | @@ -0,0 +1,517 @@ |
3354 | +(: |
3355 | + : Copyright 2006-2011 The FLWOR Foundation. |
3356 | + : |
3357 | + : Licensed under the Apache License, Version 2.0 (the "License"); |
3358 | + : you may not use this file except in compliance with the License. |
3359 | + : You may obtain a copy of the License at |
3360 | + : |
3361 | + : http://www.apache.org/licenses/LICENSE-2.0 |
3362 | + : |
3363 | + : Unless required by applicable law or agreed to in writing, software |
3364 | + : distributed under the License is distributed on an "AS IS" BASIS, |
3365 | + : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
3366 | + : See the License for the specific language governing permissions and |
3367 | + : limitations under the License. |
3368 | + :) |
3369 | + |
3370 | +(:~ |
3371 | + : Zorba FOTS driver evaluate |
3372 | + : @author Sorin Nasoi |
3373 | + :) |
3374 | + |
3375 | +module namespace eval = |
3376 | + "http://www.zorba-xquery.com/fots-driver/evaluate"; |
3377 | + |
3378 | +import schema namespace output = |
3379 | + "http://www.w3.org/2010/xslt-xquery-serialization"; |
3380 | + |
3381 | +import module namespace xqxq = |
3382 | + "http://www.zorba-xquery.com/modules/xqxq"; |
3383 | +import module namespace schema = |
3384 | + "http://www.zorba-xquery.com/modules/schema"; |
3385 | + |
3386 | +import module namespace fots-err = |
3387 | + "http://www.zorba-xquery.com/fots-driver/errors" at "errors.xq"; |
3388 | +import module namespace util = |
3389 | + "http://www.zorba-xquery.com/fots-driver/util" at "util.xq"; |
3390 | + |
3391 | +declare namespace err = |
3392 | + "http://www.w3.org/2005/xqt-errors"; |
3393 | +declare namespace fots = |
3394 | + "http://www.w3.org/2010/09/qt-fots-catalog"; |
3395 | + |
3396 | +declare namespace ann = |
3397 | + "http://www.zorba-xquery.com/annotations"; |
3398 | + |
3399 | + |
3400 | +(:~ |
3401 | + : Checks if the result matches the assertions. |
3402 | + : @param $result actual result. |
3403 | + : @param $expResult expected result. |
3404 | + : @return the results of assertion evaluations. |
3405 | + :) |
3406 | +declare %ann:sequential function eval:result( |
3407 | + $result as item()*, |
3408 | + $expResult as element() |
3409 | +) as element()* { |
3410 | + let $err := eval:check-assertion($result, |
3411 | + $expResult, |
3412 | + (), |
3413 | + "") |
3414 | + return if(empty($err)) |
3415 | + then () |
3416 | + else |
3417 | + <fots:info> |
3418 | + <fots:expected-result>{$expResult}</fots:expected-result> |
3419 | + <fots:result>{$result}</fots:result> |
3420 | + <fots:errors>{$err}</fots:errors> |
3421 | + </fots:info> |
3422 | +}; |
3423 | + |
3424 | +(:~ |
3425 | + : Checks if the error found matches the expected error (if any). |
3426 | + : @param $result actual result. |
3427 | + : @param $expResult expected result. |
3428 | + : @param $code err:code. |
3429 | + : @param $errorDescription err:description. |
3430 | + : @return the results of error evaluation. |
3431 | + :) |
3432 | +declare %ann:sequential function eval:error( |
3433 | + $result as item()*, |
3434 | + $expResult as element(), |
3435 | + $code as xs:QName?, |
3436 | + $errorDescription as xs:string? |
3437 | +) as element()* { |
3438 | + if(empty($result)) then |
3439 | + let $err := eval:error-code($code, |
3440 | + $errorDescription, |
3441 | + $expResult) |
3442 | + return |
3443 | + if(empty($err)) |
3444 | + then () |
3445 | + else |
3446 | + <fots:info> |
3447 | + <fots:expected-result>{$expResult}</fots:expected-result> |
3448 | + <fots:result>{$result}</fots:result> |
3449 | + <fots:errors>{$err}</fots:errors> |
3450 | + </fots:info> |
3451 | + else |
3452 | + <fots:info> |
3453 | + <fots:expected-result>{$expResult}</fots:expected-result> |
3454 | + <fots:result>{$result}</fots:result> |
3455 | + <fots:errors>{concat("Expected error [", |
3456 | + data($expResult/@code), |
3457 | + "], found result.")}</fots:errors> |
3458 | + </fots:info> |
3459 | +}; |
3460 | + |
3461 | +declare %private %ann:sequential function eval:error-code( |
3462 | + $code as xs:QName?, |
3463 | + $errorDescription as xs:string?, |
3464 | + $expResult as element() |
3465 | +) as xs:string* { |
3466 | + let $assertName := local-name($expResult) |
3467 | + return |
3468 | + if( $assertName = "error") |
3469 | + then |
3470 | + if (exists($expResult[@code = "*"]) or |
3471 | + exists($expResult[@code = local-name-from-QName($code)])) |
3472 | + then () |
3473 | + else if(exists($code)) |
3474 | + then concat("Expected error: ", |
3475 | + data($expResult/@code), |
3476 | + ". Found error: ", |
3477 | + local-name-from-QName($code)) |
3478 | + else concat("Expected error: ", |
3479 | + data($expResult/@code), |
3480 | + ". Found empty result.") |
3481 | + else if (($assertName = "any-of") or ($assertName = "all-of")) |
3482 | + then eval:check-assertion((), |
3483 | + $expResult, |
3484 | + $code, |
3485 | + $errorDescription) |
3486 | + else concat("Expected result, found error ", |
3487 | + local-name-from-QName($code), |
3488 | + " - ", |
3489 | + $errorDescription) |
3490 | +}; |
3491 | + |
3492 | +declare %private %ann:sequential function eval:check-assertion( |
3493 | + $result as item()*, |
3494 | + $expResult as element(), |
3495 | + $code as xs:QName?, |
3496 | + $errorDescription as xs:string? |
3497 | +) as xs:string* { |
3498 | + let $test := local-name($expResult) |
3499 | + return switch($test) |
3500 | + case 'all-of' |
3501 | + return eval:assert-all-of($result, |
3502 | + $expResult, |
3503 | + $code, |
3504 | + $errorDescription) |
3505 | + case 'any-of' |
3506 | + return eval:assert-any-of($result, |
3507 | + $expResult, |
3508 | + $code, |
3509 | + $errorDescription) |
3510 | + case 'assert' |
3511 | + return eval:assert($result, |
3512 | + $expResult) |
3513 | + case 'assert-count' |
3514 | + return eval:assert-count($result, |
3515 | + $expResult) |
3516 | + case 'assert-deep-eq' |
3517 | + return eval:assert-deep-eq($result, |
3518 | + $expResult) |
3519 | + case 'assert-empty' |
3520 | + return eval:assert-empty($result) |
3521 | + case 'assert-eq' |
3522 | + return eval:assert-eq($result, |
3523 | + $expResult) |
3524 | + case 'assert-false' |
3525 | + return eval:assert-false($result) |
3526 | + case 'assert-permutation' |
3527 | + return eval:assert-permutation($result, |
3528 | + $expResult) |
3529 | + case 'assert-xml' |
3530 | + return eval:assert-xml($result, |
3531 | + $expResult) |
3532 | + case 'assert-serialization-error' |
3533 | + return eval:assert-serialization-error($result, |
3534 | + $expResult) |
3535 | + case 'assert-string-value' |
3536 | + return eval:assert-string-value($result, |
3537 | + $expResult) |
3538 | + case 'assert-true' |
3539 | + return eval:assert-true($result) |
3540 | + case 'assert-type' |
3541 | + return eval:assert-type($result, |
3542 | + $expResult) |
3543 | + case 'serialization-matches' |
3544 | + return eval:serialization-matches($result, |
3545 | + $expResult) |
3546 | + case 'error' |
3547 | + return eval:error($result, |
3548 | + $expResult, |
3549 | + $code, |
3550 | + $errorDescription) |
3551 | + default |
3552 | + return error($fots-err:errNA, |
3553 | + "
The requested assertion type is not implemented.") |
3554 | +}; |
3555 | + |
3556 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_any-of :) |
3557 | +declare %private %ann:sequential function eval:assert-any-of( |
3558 | + $result as item()*, |
3559 | + $expResult as element(), |
3560 | + $code as xs:QName?, |
3561 | + $errorDescription as xs:string? |
3562 | +) as xs:string? { |
3563 | + let $results := |
3564 | + for $tmp in $expResult/* |
3565 | + return <result>{ |
3566 | + for $r in eval:check-assertion($result, |
3567 | + $tmp, |
3568 | + $code, |
3569 | + $errorDescription) |
3570 | + return <item>{$r}</item> |
3571 | + } </result> |
3572 | + where every $result in $results satisfies $result/item |
3573 | + return concat("'Assert-any-of' returned: ", |
3574 | + string-join(util:serialize-result($results/data(item)), ' ')) |
3575 | +}; |
3576 | + |
3577 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_all-of :) |
3578 | +declare %private %ann:sequential function eval:assert-all-of( |
3579 | + $result as item()*, |
3580 | + $expResult as element(), |
3581 | + $code as xs:QName?, |
3582 | + $errorDescription as xs:string? |
3583 | +) as xs:string* { |
3584 | + for $tmp in $expResult/* |
3585 | + return eval:check-assertion($result, |
3586 | + $tmp, |
3587 | + $code, |
3588 | + $errorDescription) |
3589 | +}; |
3590 | + |
3591 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert :) |
3592 | +declare %private %ann:sequential function eval:assert( |
3593 | + $result as item()*, |
3594 | + $expResult as element() |
3595 | +) as xs:string? { |
3596 | + try { |
3597 | + { |
3598 | + variable $queryText := concat( |
3599 | + "xquery version '3.0';", |
3600 | + "declare namespace o = 'http://www.zorba-xquery.com/options/features';", |
3601 | + "declare option o:enable 'hof';", |
3602 | + "declare variable $result external; ", |
3603 | + xs:string($expResult)); |
3604 | + variable $queryKey := xqxq:prepare-main-module($queryText), |
3605 | + $queryKeyResult := xqxq:bind-variable($queryKey, |
3606 | + xs:QName('result'), |
3607 | + $result), |
3608 | + $queryResult := xqxq:evaluate($queryKey); |
3609 | + |
3610 | + if($queryResult) |
3611 | + then () |
3612 | + else concat("Assertion ", $expResult, " failed.") |
3613 | + } |
3614 | + } catch * { |
3615 | + concat("'assert' returned: fail with error ", |
3616 | + $err:code, " : ", $err:description) |
3617 | + } |
3618 | +}; |
3619 | + |
3620 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-count :) |
3621 | +declare %private function eval:assert-count( |
3622 | + $result as item()*, |
3623 | + $expResult as element() |
3624 | +) as xs:string? { |
3625 | + if(count($result) eq xs:integer($expResult)) |
3626 | + then () |
3627 | + else "'assert-count' returned: actual number of items is different than the expected number of items." |
3628 | +}; |
3629 | + |
3630 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-deep-eq :) |
3631 | +declare %private %ann:sequential function eval:assert-deep-eq( |
3632 | + $result as item()*, |
3633 | + $expResult as element() |
3634 | +) as xs:string? { |
3635 | + try { |
3636 | + { |
3637 | + variable $queryText := concat( |
3638 | + "xquery version '3.0';", |
3639 | + "declare namespace o = 'http://www.zorba-xquery.com/options/features';", |
3640 | + "declare option o:enable 'hof';", |
3641 | + "declare variable $x external;", |
3642 | + "let $y := (",string(data($expResult)),") return ", |
3643 | + "every $i in 1 to max((count($x),count($y))) satisfies deep-equal($x[$i],$y[$i])"); |
3644 | + variable $queryKey := xqxq:prepare-main-module($queryText), |
3645 | + $queryKeyResult := xqxq:bind-variable($queryKey, |
3646 | + xs:QName('x'), |
3647 | + $result), |
3648 | + $queryResult := xqxq:evaluate($queryKey); |
3649 | + if($queryResult) |
3650 | + then () |
3651 | + else "'assert-deep-eq' returned: actual result is not deep-equal to expected result." |
3652 | + } |
3653 | + } catch * { |
3654 | + concat("'assert-deep-eq' returned: fail with error ", |
3655 | + $err:code, " : ", $err:description) |
3656 | + } |
3657 | +}; |
3658 | + |
3659 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-empty :) |
3660 | +declare %private function eval:assert-empty( |
3661 | + $result as item()* |
3662 | +) as xs:string? { |
3663 | + if(empty($result)) |
3664 | + then () |
3665 | + else "'assert-empty' returned: result is not empty as expected." |
3666 | +}; |
3667 | + |
3668 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-eq :) |
3669 | +declare %private %ann:sequential function eval:assert-eq( |
3670 | + $result as item()*, |
3671 | + $expResult as element() |
3672 | +) as xs:string? { |
3673 | + try { |
3674 | + { |
3675 | + variable $type := if (empty($result[1]) or (count($result) gt 1)) |
3676 | + then () |
3677 | + else |
3678 | + let $tmp := xs:string(schema:schema-type($result[1])) |
3679 | +(: add exception for the types defined in schemas available in the environment of the tests :) |
3680 | + return |
3681 | + if (starts-with($tmp, 'xs:')) |
3682 | + then $tmp |
3683 | + else (); |
3684 | + variable $queryText := concat( |
3685 | + "declare variable $x external;", |
3686 | + "$x eq ", |
3687 | + if (starts-with(data($expResult), $type)) |
3688 | + then data($expResult) |
3689 | + else concat($type,"(", data($expResult), ")")); |
3690 | + variable $queryKey := xqxq:prepare-main-module($queryText); |
3691 | + |
3692 | + xqxq:bind-variable($queryKey, |
3693 | + xs:QName('x'), |
3694 | + $result); |
3695 | + variable $queryResult := xqxq:evaluate($queryKey); |
3696 | + if($queryResult) |
3697 | + then () |
3698 | + else "'assert-eq' returned: result doesn't match expected result." |
3699 | + } |
3700 | + } catch * { |
3701 | + concat("'assert-eq' returned: comparison failed with error ", |
3702 | + $err:code, " : ", $err:description) |
3703 | + } |
3704 | +}; |
3705 | + |
3706 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-true :) |
3707 | +declare %private function eval:assert-true( |
3708 | + $result as item()* |
3709 | +) as xs:string? { |
3710 | + if($result eq fn:true()) |
3711 | + then () |
3712 | + else "'assert-true' returned: query doesn't evaluate to true." |
3713 | +}; |
3714 | + |
3715 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-false :) |
3716 | +declare %private function eval:assert-false( |
3717 | + $result as item()* |
3718 | +) as xs:string? { |
3719 | + if($result eq fn:false()) |
3720 | + then () |
3721 | + else "'assert-false' returned: query doesn't evaluate to false." |
3722 | +}; |
3723 | + |
3724 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-permutation :) |
3725 | +declare %private %ann:sequential function eval:assert-permutation( |
3726 | + $result as item()*, |
3727 | + $expResult as element() |
3728 | +) as xs:string? { |
3729 | + try { |
3730 | + { |
3731 | + variable $queryText := concat( |
3732 | + "xquery version '3.0';", |
3733 | + "declare namespace o = 'http://www.zorba-xquery.com/options/features';", |
3734 | + "declare option o:enable 'hof';", |
3735 | + "declare variable $x external;", |
3736 | + "let $y := (",string(data($expResult)),") return ", |
3737 | + (: if count(intersection(M1,M2)) = count(union(M1,M2)) = count(M1) then the sequences are identical :) |
3738 | + "(count(distinct-values($x[ . = $y])) = count(distinct-values(($x, $y)))) = count(distinct-values($x))"); |
3739 | + variable $queryKey := xqxq:prepare-main-module($queryText), |
3740 | + $queryKeyResult := xqxq:bind-variable($queryKey, |
3741 | + xs:QName('x'), |
3742 | + $result), |
3743 | + $queryResult := xqxq:evaluate($queryKey); |
3744 | + if($queryResult) |
3745 | + then () |
3746 | + else "'assert-permutation' returned: result isn't a permutation of expected result." |
3747 | + } |
3748 | + } catch * { |
3749 | + concat("'assert-permutation' returned: fail with error ", |
3750 | + $err:code, " : ", $err:description) |
3751 | + } |
3752 | +}; |
3753 | + |
3754 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-xml :) |
3755 | +declare %private function eval:assert-xml( |
3756 | + $result as item()*, |
3757 | + $expResult as element() |
3758 | +) { |
3759 | +(:TODO call xml-canonicalization after bug #1076919 is implemented.:) |
3760 | + try { |
3761 | + let $serRes := util:serialize-result($result), |
3762 | + $result1 as xs:string := string-join($serRes,''), |
3763 | + $result2 as xs:string := string-join($serRes,' ') |
3764 | + return |
3765 | + if((normalize-space($result1) eq normalize-space(string($expResult))) or |
3766 | + (normalize-space($result2) eq normalize-space(string($expResult)))) |
3767 | + then () |
3768 | + else "'assert-xml' returned: result is different from the expected result." |
3769 | + } catch * { |
3770 | + concat("'assert-xml' returned: fail with error ", |
3771 | + $err:code, " : ", $err:description) |
3772 | + } |
3773 | +}; |
3774 | + |
3775 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-serialization-error :) |
3776 | +declare %private %ann:sequential function eval:assert-serialization-error( |
3777 | + $result as item()*, |
3778 | + $expResult as element() |
3779 | +) as xs:string? { |
3780 | + try { |
3781 | + let $serializedResult as xs:string := string-join( |
3782 | + util:serialize-result($result), '') |
3783 | + return |
3784 | + "'assert-serialization-error' returned: expected serialization error but got result." |
3785 | + } catch * { |
3786 | + eval:error((), |
3787 | + $expResult, |
3788 | + $err:code, |
3789 | + $err:description) |
3790 | + } |
3791 | +}; |
3792 | + |
3793 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_serialization-matches :) |
3794 | +declare %private function eval:serialization-matches( |
3795 | + $result as item()*, |
3796 | + $expResult as element() |
3797 | +) as xs:string? { |
3798 | + try { |
3799 | + let $serResult := string-join(util:serialize-result($result, |
3800 | + $util:serParamXml), |
3801 | + ''), |
3802 | + $serExpResult := string-join(util:serialize-result(data($expResult), |
3803 | + $util:serParamXml), |
3804 | + '') |
3805 | + let $matchesFlags := data($expResult/@flags) |
3806 | + return |
3807 | + if(exists($matchesFlags)) |
3808 | + then |
3809 | + if(matches($serResult, $serExpResult, $matchesFlags)) |
3810 | + then () |
3811 | + else concat("'serialization-matches' returned: result does not match expected result with flags '", |
3812 | + $matchesFlags, |
3813 | + "'.") |
3814 | + else |
3815 | + if(matches($serResult, $serExpResult)) |
3816 | + then () |
3817 | + else "'serialization-matches' returned: result does not match expected result." |
3818 | + } catch * { |
3819 | + concat("'serialization-matches' returned: fail with error ", |
3820 | + $err:code, " : ", $err:description) |
3821 | + } |
3822 | +}; |
3823 | + |
3824 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-string-value :) |
3825 | +declare %private function eval:assert-string-value( |
3826 | + $result as item()*, |
3827 | + $expResult as element() |
3828 | +) as xs:string? { |
3829 | + try { |
3830 | + let $serRes := string-join(util:serialize-result($result), ' '), |
3831 | + $res := if (empty($expResult[@normalize-space="true"])) |
3832 | + then $serRes |
3833 | + else normalize-space($serRes), |
3834 | + $expRes := if (empty($expResult[@normalize-space="true"])) |
3835 | + then xs:string($expResult) |
3836 | + else normalize-space(xs:string($expResult)) |
3837 | + return |
3838 | + if($res eq $expRes) |
3839 | + then () |
3840 | + else "'assert-string-value' returned: result different from expected result." |
3841 | + } catch * { |
3842 | + concat("'assert-string-value' returned: failed with error ", |
3843 | + $err:code, " : ", $err:description) |
3844 | + } |
3845 | +}; |
3846 | + |
3847 | +(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-type :) |
3848 | +declare %private %ann:sequential function eval:assert-type( |
3849 | + $result as item()*, |
3850 | + $expResult as element() |
3851 | +) as xs:string? { |
3852 | + try { |
3853 | + { |
3854 | + variable $queryText := concat( "declare variable $x external; $x instance of ", |
3855 | + data($expResult)); |
3856 | + variable $queryKey := xqxq:prepare-main-module($queryText), |
3857 | + $queryKeyResult := xqxq:bind-variable($queryKey, |
3858 | + xs:QName('x'), |
3859 | + $result), |
3860 | + $queryResult := xqxq:evaluate($queryKey); |
3861 | + if($queryResult) |
3862 | + then () |
3863 | + else concat("'assert-type' returned: result doesn't have type '", |
3864 | + data($expResult), "'") |
3865 | + } |
3866 | + } catch * { |
3867 | + concat("'assert-type' returned: failed with error ", |
3868 | + $err:code, " : ", $err:description) |
3869 | + } |
3870 | +}; |
3871 | |
3872 | === removed file 'test/fots_driver/evaluate.xq' |
3873 | --- test/fots_driver/evaluate.xq 2012-12-18 11:40:08 +0000 |
3874 | +++ test/fots_driver/evaluate.xq 1970-01-01 00:00:00 +0000 |
3875 | @@ -1,565 +0,0 @@ |
3876 | -(: |
3877 | - : Copyright 2006-2011 The FLWOR Foundation. |
3878 | - : |
3879 | - : Licensed under the Apache License, Version 2.0 (the "License"); |
3880 | - : you may not use this file except in compliance with the License. |
3881 | - : You may obtain a copy of the License at |
3882 | - : |
3883 | - : http://www.apache.org/licenses/LICENSE-2.0 |
3884 | - : |
3885 | - : Unless required by applicable law or agreed to in writing, software |
3886 | - : distributed under the License is distributed on an "AS IS" BASIS, |
3887 | - : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
3888 | - : See the License for the specific language governing permissions and |
3889 | - : limitations under the License. |
3890 | - :) |
3891 | - |
3892 | -(:~ |
3893 | - : Zorba FOTS driver evaluate |
3894 | - : @author Sorin Nasoi |
3895 | - :) |
3896 | - |
3897 | -module namespace eval = |
3898 | - "http://www.zorba-xquery.com/fots-driver/evaluate"; |
3899 | - |
3900 | -import schema namespace output = |
3901 | - "http://www.w3.org/2010/xslt-xquery-serialization"; |
3902 | - |
3903 | -import module namespace xqxq = |
3904 | - "http://www.zorba-xquery.com/modules/xqxq"; |
3905 | -import module namespace schema = |
3906 | - "http://www.zorba-xquery.com/modules/schema"; |
3907 | - |
3908 | -import module namespace fots-err = |
3909 | - "http://www.zorba-xquery.com/fots-driver/errors" at "errors.xq"; |
3910 | -import module namespace util = |
3911 | - "http://www.zorba-xquery.com/fots-driver/util" at "util.xq"; |
3912 | - |
3913 | -declare namespace err = |
3914 | - "http://www.w3.org/2005/xqt-errors"; |
3915 | -declare namespace fots = |
3916 | - "http://www.w3.org/2010/09/qt-fots-catalog"; |
3917 | - |
3918 | -declare namespace ann = |
3919 | - "http://www.zorba-xquery.com/annotations"; |
3920 | - |
3921 | -declare namespace features = |
3922 | - "http://www.zorba-xquery.com/options/features"; |
3923 | -declare option features:enable "hof"; |
3924 | - |
3925 | -(:~ |
3926 | - : Checks if the result matches the assertions. |
3927 | - : @param $result actual result. |
3928 | - : @param $expResult expected result. |
3929 | - : @param $showResult is true the verbose mode is assumed. |
3930 | - : @return the results of assertion evaluations. |
3931 | - :) |
3932 | -declare %ann:sequential function eval:result( |
3933 | - $result as item()*, |
3934 | - $expResult as element(), |
3935 | - $showResult as xs:boolean? |
3936 | -) as element()? { |
3937 | - let $err := eval:check-assertion($result, |
3938 | - $expResult, |
3939 | - (), |
3940 | - "", |
3941 | - $showResult) |
3942 | - return if(empty($err)) |
3943 | - then () |
3944 | - else |
3945 | - <out> |
3946 | - <expected-result>{$expResult}</expected-result> |
3947 | - { |
3948 | - if($showResult) |
3949 | - then (<result>{$result}</result>, |
3950 | - <errors>{$err}</errors>) |
3951 | - else () |
3952 | - } |
3953 | - </out> |
3954 | -}; |
3955 | - |
3956 | -(:~ |
3957 | - : Checks if the error found matches the expected error (if any). |
3958 | - : @param $result actual result. |
3959 | - : @param $expResult expected result. |
3960 | - : @param $code err:code. |
3961 | - : @param $errorDescription err:description. |
3962 | - : @param $showResult is true the verbose mode is assumed. |
3963 | - : @return the results of error evaluation. |
3964 | - :) |
3965 | -declare %ann:sequential function eval:error( |
3966 | - $result as item()*, |
3967 | - $expResult as element(), |
3968 | - $code as xs:QName?, |
3969 | - $errorDescription as xs:string?, |
3970 | - $showResult as xs:boolean? |
3971 | -) as xs:string* { |
3972 | - if(empty($result)) then |
3973 | - let $err := eval:error-code($code, |
3974 | - $errorDescription, |
3975 | - $expResult) |
3976 | - return $err |
3977 | - else |
3978 | - concat("Expected error 
", |
3979 | - data($expResult/@code), |
3980 | - ",
 found result ", |
3981 | - if ($showResult) |
3982 | - then string-join(util:serialize-result($result),' ') |
3983 | - else ()) |
3984 | -}; |
3985 | - |
3986 | -declare %private %ann:sequential function eval:error-code( |
3987 | - $code as xs:QName?, |
3988 | - $errorDescription as xs:string?, |
3989 | - $expResult as element() |
3990 | -) as xs:string* { |
3991 | - let $assertName := local-name($expResult) |
3992 | - return |
3993 | - if( $assertName = "error") |
3994 | - then |
3995 | - if (exists($expResult[@code = "*"]) or |
3996 | - exists($expResult[@code = local-name-from-QName($code)])) |
3997 | - then () |
3998 | - else concat("Expected error: ", |
3999 | - data($expResult/@code), |
4000 | - ". Found error: ", |
4001 | - local-name-from-QName($code)) |
4002 | - else if (($assertName = "any-of") or ($assertName = "all-of")) |
4003 | - then eval:check-assertion((), |
4004 | - $expResult, |
4005 | - $code, |
4006 | - $errorDescription, |
4007 | - fn:true()) |
4008 | - else concat("Expected result: 
", |
4009 | - data($expResult), |
4010 | - ".
 Found error ", |
4011 | - local-name-from-QName($code), |
4012 | - " - ", |
4013 | - $errorDescription) |
4014 | -}; |
4015 | - |
4016 | -declare %private %ann:sequential function eval:check-assertion( |
4017 | - $result as item()*, |
4018 | - $expResult as element(), |
4019 | - $code as xs:QName?, |
4020 | - $errorDescription as xs:string?, |
4021 | - $showResult as xs:boolean? |
4022 | -) as xs:string* { |
4023 | - let $test := local-name($expResult) |
4024 | - return switch($test) |
4025 | - case 'all-of' |
4026 | - return eval:assert-all-of($result, |
4027 | - $expResult, |
4028 | - $code, |
4029 | - $errorDescription, |
4030 | - $showResult) |
4031 | - case 'any-of' |
4032 | - return eval:assert-any-of($result, |
4033 | - $expResult, |
4034 | - $code, |
4035 | - $errorDescription, |
4036 | - $showResult) |
4037 | - case 'assert' |
4038 | - return eval:assert($result, |
4039 | - $expResult) |
4040 | - case 'assert-count' |
4041 | - return eval:assert-count($result, |
4042 | - $expResult) |
4043 | - case 'assert-deep-eq' |
4044 | - return eval:assert-deep-eq($result, |
4045 | - $expResult) |
4046 | - case 'assert-empty' |
4047 | - return eval:assert-empty($result) |
4048 | - case 'assert-eq' |
4049 | - return eval:assert-eq($result, |
4050 | - $expResult) |
4051 | - case 'assert-false' |
4052 | - return eval:assert-false($result) |
4053 | - case 'assert-permutation' |
4054 | - return eval:assert-permutation($result, |
4055 | - $expResult) |
4056 | - case 'assert-xml' |
4057 | - return eval:assert-xml($result, |
4058 | - $expResult) |
4059 | - case 'assert-serialization-error' |
4060 | - return eval:assert-serialization-error($result, |
4061 | - $expResult) |
4062 | - case 'assert-string-value' |
4063 | - return eval:assert-string-value($result, |
4064 | - $expResult) |
4065 | - case 'assert-true' |
4066 | - return eval:assert-true($result) |
4067 | - case 'assert-type' |
4068 | - return eval:assert-type($result, |
4069 | - $expResult) |
4070 | - case 'serialization-matches' |
4071 | - return eval:serialization-matches($result, |
4072 | - $expResult) |
4073 | - case 'error' |
4074 | - return eval:error($result, |
4075 | - $expResult, |
4076 | - $code, |
4077 | - $errorDescription, |
4078 | - $showResult) |
4079 | - default |
4080 | - return error($fots-err:errNA, |
4081 | - "
The requested assertion type is not implemented.") |
4082 | -}; |
4083 | - |
4084 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_any-of :) |
4085 | -declare %private %ann:sequential function eval:assert-any-of( |
4086 | - $result as item()*, |
4087 | - $expResult as element(), |
4088 | - $code as xs:QName?, |
4089 | - $errorDescription as xs:string?, |
4090 | - $showResult as xs:boolean |
4091 | -) as xs:string? { |
4092 | - let $results := |
4093 | - for $tmp in $expResult/* |
4094 | - return <result>{ |
4095 | - for $r in eval:check-assertion($result, |
4096 | - $tmp, |
4097 | - $code, |
4098 | - $errorDescription, |
4099 | - $showResult) |
4100 | - return <item>{$r}</item> |
4101 | - } </result> |
4102 | - where every $result in $results satisfies $result/item |
4103 | - return concat("
Assert-any-of returned: ", |
4104 | - string-join(util:serialize-result($results/data(item)), ' ')) |
4105 | -}; |
4106 | - |
4107 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_all-of :) |
4108 | -declare %private %ann:sequential function eval:assert-all-of( |
4109 | - $result as item()*, |
4110 | - $expResult as element(), |
4111 | - $code as xs:QName?, |
4112 | - $errorDescription as xs:string?, |
4113 | - $showResult as xs:boolean |
4114 | -) as xs:string* { |
4115 | - for $tmp in $expResult/* |
4116 | - return eval:check-assertion($result, |
4117 | - $tmp, |
4118 | - $code, |
4119 | - $errorDescription, |
4120 | - $showResult) |
4121 | -}; |
4122 | - |
4123 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert :) |
4124 | -declare %private %ann:sequential function eval:assert( |
4125 | - $result as item()*, |
4126 | - $expResult as element() |
4127 | -) as xs:string? { |
4128 | - try { |
4129 | - { |
4130 | - variable $queryText := concat( |
4131 | - "xquery version '3.0';", |
4132 | - "declare namespace o = 'http://www.zorba-xquery.com/options/features';", |
4133 | - "declare option o:enable 'hof';", |
4134 | - "declare variable $result external; ", |
4135 | - xs:string($expResult)); |
4136 | - variable $queryKey := xqxq:prepare-main-module($queryText), |
4137 | - $queryKeyResult := xqxq:bind-variable($queryKey, |
4138 | - xs:QName('result'), |
4139 | - $result), |
4140 | - $queryResult := xqxq:evaluate($queryKey); |
4141 | - |
4142 | - if($queryResult) |
4143 | - then () |
4144 | - else concat("Assertion ", $expResult, " failed") |
4145 | - } |
4146 | - } catch * { |
4147 | - concat("
Assertion '", |
4148 | - $expResult, |
4149 | - "'
 failed with error ", |
4150 | - $err:code, " : ", $err:description) |
4151 | - } |
4152 | -}; |
4153 | - |
4154 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-count :) |
4155 | -declare %private function eval:assert-count( |
4156 | - $result as item()*, |
4157 | - $expResult as element() |
4158 | -) as xs:string? { |
4159 | - if(count($result) eq xs:integer($expResult)) |
4160 | - then () |
4161 | - else "Actual number of items is different than the expected number of items." |
4162 | -}; |
4163 | - |
4164 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-deep-eq :) |
4165 | -declare %private %ann:sequential function eval:assert-deep-eq( |
4166 | - $result as item()*, |
4167 | - $expResult as element() |
4168 | -) as xs:string? { |
4169 | - try { |
4170 | - { |
4171 | - variable $queryText := concat( |
4172 | - "xquery version '3.0';", |
4173 | - "declare namespace o = 'http://www.zorba-xquery.com/options/features';", |
4174 | - "declare option o:enable 'hof';", |
4175 | - "declare variable $x external;", |
4176 | - "let $y := (",string(data($expResult)),") return ", |
4177 | - "every $i in 1 to max((count($x),count($y))) satisfies deep-equal($x[$i],$y[$i])"); |
4178 | - variable $queryKey := xqxq:prepare-main-module($queryText), |
4179 | - $queryKeyResult := xqxq:bind-variable($queryKey, |
4180 | - xs:QName('x'), |
4181 | - $result), |
4182 | - $queryResult := xqxq:evaluate($queryKey); |
4183 | - if($queryResult) |
4184 | - then () |
4185 | - else concat("
Result is not deep-equal to '", $expResult, "'
") |
4186 | - } |
4187 | - } catch * { |
4188 | - concat("
Assert-deep-eq '", |
4189 | - $expResult, |
4190 | - "'
 failed with error ", |
4191 | - $err:code, |
4192 | - " : ", |
4193 | - $err:description) |
4194 | - } |
4195 | -}; |
4196 | - |
4197 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-empty :) |
4198 | -declare %private function eval:assert-empty( |
4199 | - $result as item()* |
4200 | -) as xs:string? { |
4201 | - if(empty($result)) |
4202 | - then () |
4203 | - else "
Result is not empty as expected" |
4204 | -}; |
4205 | - |
4206 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-eq :) |
4207 | -declare %private %ann:sequential function eval:assert-eq( |
4208 | - $result as item()*, |
4209 | - $expResult as element() |
4210 | -) as xs:string? { |
4211 | - try { |
4212 | - { |
4213 | - variable $type := if (empty($result[1]) or (count($result) gt 1)) |
4214 | - then () |
4215 | - else |
4216 | - let $tmp := xs:string(schema:schema-type($result[1])) |
4217 | -(: add exception for the types defined in schemas available in the environment of the tests :) |
4218 | - return |
4219 | - if (starts-with($tmp, 'xs:')) |
4220 | - then $tmp |
4221 | - else (); |
4222 | - variable $queryText := concat( |
4223 | - "declare variable $x external;", |
4224 | - "$x eq ", |
4225 | - if (starts-with(data($expResult), $type)) |
4226 | - then data($expResult) |
4227 | - else concat($type,"(", data($expResult), ")")); |
4228 | - variable $queryKey := xqxq:prepare-main-module($queryText); |
4229 | - |
4230 | - xqxq:bind-variable($queryKey, |
4231 | - xs:QName('x'), |
4232 | - $result); |
4233 | - variable $queryResult := xqxq:evaluate($queryKey); |
4234 | - if($queryResult) |
4235 | - then () |
4236 | - else concat("
Assert-eq: Result '", |
4237 | - string-join(util:serialize-result($result),' '), |
4238 | - "' 
doesn't match expected item '", |
4239 | - xs:string($expResult), |
4240 | - "'.") |
4241 | - } |
4242 | - } catch * { |
4243 | - concat("
Comparison to '", |
4244 | - $expResult/text(), |
4245 | - "' failed with error: ", |
4246 | - $err:code, |
4247 | - " : ", |
4248 | - $err:description) |
4249 | - } |
4250 | -}; |
4251 | - |
4252 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-true :) |
4253 | -declare %private function eval:assert-true( |
4254 | - $result as item()* |
4255 | -) as xs:string? { |
4256 | - if($result eq fn:true()) |
4257 | - then () |
4258 | - else "
Query doesn't evaluate to true." |
4259 | -}; |
4260 | - |
4261 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-false :) |
4262 | -declare %private function eval:assert-false( |
4263 | - $result as item()* |
4264 | -) as xs:string? { |
4265 | - if($result eq fn:false()) |
4266 | - then () |
4267 | - else "
Query doesn't evaluate to false." |
4268 | -}; |
4269 | - |
4270 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-permutation :) |
4271 | -declare %private %ann:sequential function eval:assert-permutation( |
4272 | - $result as item()*, |
4273 | - $expResult as element() |
4274 | -) as xs:string? { |
4275 | - try { |
4276 | - { |
4277 | - variable $queryText := concat( |
4278 | - "xquery version '3.0';", |
4279 | - "declare namespace o = 'http://www.zorba-xquery.com/options/features';", |
4280 | - "declare option o:enable 'hof';", |
4281 | - "declare variable $x external;", |
4282 | - "let $y := (",string(data($expResult)),") return ", |
4283 | - (: if count(intersection(M1,M2)) = count(union(M1,M2)) = count(M1) then the sequences are identical :) |
4284 | - "(count(distinct-values($x[ . = $y])) = count(distinct-values(($x, $y)))) = count(distinct-values($x))"); |
4285 | - variable $queryKey := xqxq:prepare-main-module($queryText), |
4286 | - $queryKeyResult := xqxq:bind-variable($queryKey, |
4287 | - xs:QName('x'), |
4288 | - $result), |
4289 | - $queryResult := xqxq:evaluate($queryKey); |
4290 | - if($queryResult) |
4291 | - then () |
4292 | - else concat("
Result isn't a permutation of '", |
4293 | - $expResult, |
4294 | - "'
") |
4295 | - } |
4296 | - } catch * { |
4297 | - concat("
Assert-permutation failed with error: ", |
4298 | - $err:code, |
4299 | - " : ", |
4300 | - $err:description) |
4301 | - } |
4302 | -}; |
4303 | - |
4304 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-xml :) |
4305 | -declare %private function eval:assert-xml( |
4306 | - $result as item()*, |
4307 | - $expResult as element() |
4308 | -) { |
4309 | -(:TODO call xml-canonicalization after bug #1076919 is implemented.:) |
4310 | - try { |
4311 | - let $serRes := util:serialize-result($result), |
4312 | - $result1 as xs:string := string-join($serRes,''), |
4313 | - $result2 as xs:string := string-join($serRes,' ') |
4314 | - return |
4315 | - if((normalize-space($result1) eq normalize-space(string($expResult))) or |
4316 | - (normalize-space($result2) eq normalize-space(string($expResult)))) |
4317 | - then () |
4318 | - else concat("
Result '", |
4319 | - $result1, |
4320 | - "'
 is different from the expected result 
'", |
4321 | - string($expResult), |
4322 | - "'.") |
4323 | - } catch * { |
4324 | - concat("
Assert-xml failed with error:", |
4325 | - $err:code, |
4326 | - " : ", |
4327 | - $err:description) |
4328 | - } |
4329 | -}; |
4330 | - |
4331 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-serialization-error :) |
4332 | -declare %private %ann:sequential function eval:assert-serialization-error( |
4333 | - $result as item()*, |
4334 | - $expResult as element() |
4335 | -) as xs:string? { |
4336 | - try { |
4337 | - let $serializedResult as xs:string := string-join( |
4338 | - util:serialize-result($result), '') |
4339 | - return |
4340 | - concat("
Expected serialization error but got result: ", |
4341 | - $serializedResult) |
4342 | - } catch * { |
4343 | - eval:error((), |
4344 | - $expResult, |
4345 | - $err:code, |
4346 | - $err:description, |
4347 | - fn:true()) |
4348 | - } |
4349 | -}; |
4350 | - |
4351 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_serialization-matches :) |
4352 | -declare %private function eval:serialization-matches( |
4353 | - $result as item()*, |
4354 | - $expResult as element() |
4355 | -) as xs:string? { |
4356 | - let $serResult := string-join(util:serialize-result($result, |
4357 | - $util:serParamXml), |
4358 | - ''), |
4359 | - $serExpResult := string-join(util:serialize-result(data($expResult), |
4360 | - $util:serParamXml), |
4361 | - '') |
4362 | - let $matchesFlags := data($expResult/@flags) |
4363 | - return |
4364 | - if(exists($matchesFlags)) |
4365 | - then |
4366 | - if(matches($serResult, $serExpResult, $matchesFlags)) |
4367 | - then () |
4368 | - else concat("
Expected '", |
4369 | - $serResult, |
4370 | - "'
 does not match 
'", |
4371 | - $serExpResult, |
4372 | - "' with flags '", |
4373 | - $matchesFlags, |
4374 | - "'") |
4375 | - else |
4376 | - if(matches($serResult, $serExpResult)) |
4377 | - then () |
4378 | - else concat("
Expected ", |
4379 | - $serResult, |
4380 | - "'
 does not match 
'", |
4381 | - $serExpResult, |
4382 | - "'") |
4383 | -}; |
4384 | - |
4385 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-string-value :) |
4386 | -declare %private function eval:assert-string-value( |
4387 | - $result as item()*, |
4388 | - $expResult as element() |
4389 | -) as xs:string? { |
4390 | - try { |
4391 | - let $serRes := string-join(util:serialize-result($result), ' '), |
4392 | - $res := if (empty($expResult[@normalize-space="true"])) |
4393 | - then $serRes |
4394 | - else normalize-space($serRes), |
4395 | - $expRes := if (empty($expResult[@normalize-space="true"])) |
4396 | - then xs:string($expResult) |
4397 | - else normalize-space(xs:string($expResult)) |
4398 | - return |
4399 | - if($res eq $expRes) |
4400 | - then () |
4401 | - else concat("
Expected '", |
4402 | - $expRes, |
4403 | - "'
 found 
'", |
4404 | - $res, |
4405 | - "'") |
4406 | - } catch * { |
4407 | - concat("
String-value failed with error: ", |
4408 | - $err:code, |
4409 | - " : ", |
4410 | - $err:description) |
4411 | - } |
4412 | -}; |
4413 | - |
4414 | -(: http://dev.w3.org/2011/QT3-test-suite/catalog-schema.html#elem_assert-type :) |
4415 | -declare %private %ann:sequential function eval:assert-type( |
4416 | - $result as item()*, |
4417 | - $expResult as element() |
4418 | -) as xs:string? { |
4419 | - try { |
4420 | - { |
4421 | - variable $queryText := concat( "declare variable $x external; $x instance of ", |
4422 | - data($expResult)); |
4423 | - variable $queryKey := xqxq:prepare-main-module($queryText), |
4424 | - $queryKeyResult := xqxq:bind-variable($queryKey, |
4425 | - xs:QName('x'), |
4426 | - $result), |
4427 | - $queryResult := xqxq:evaluate($queryKey); |
4428 | - if($queryResult) |
4429 | - then () |
4430 | - else concat("
Result doesn't have type '", |
4431 | - data($expResult), |
4432 | - "'") |
4433 | - } |
4434 | - } catch * { |
4435 | - concat("
Assert-type failed with error: ", |
4436 | - $err:code, |
4437 | - " : ", |
4438 | - $err:description) |
4439 | - } |
4440 | -}; |
4441 | |
4442 | === added file 'test/fots_driver/feedback.xq' |
4443 | --- test/fots_driver/feedback.xq 1970-01-01 00:00:00 +0000 |
4444 | +++ test/fots_driver/feedback.xq 2013-01-08 14:37:31 +0000 |
4445 | @@ -0,0 +1,331 @@ |
4446 | +(: |
4447 | + : Copyright 2006-2011 The FLWOR Foundation. |
4448 | + : |
4449 | + : Licensed under the Apache License, Version 2.0 (the "License"); |
4450 | + : you may not use this file except in compliance with the License. |
4451 | + : You may obtain a copy of the License at |
4452 | + : |
4453 | + : http://www.apache.org/licenses/LICENSE-2.0 |
4454 | + : |
4455 | + : Unless required by applicable law or agreed to in writing, software |
4456 | + : distributed under the License is distributed on an "AS IS" BASIS, |
4457 | + : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
4458 | + : See the License for the specific language governing permissions and |
4459 | + : limitations under the License. |
4460 | + :) |
4461 | + |
4462 | +(:~ |
4463 | + : Zorba FOTS driver feedback |
4464 | + : @author Sorin Nasoi |
4465 | + :) |
4466 | + |
4467 | +module namespace feedback = |
4468 | + "http://www.zorba-xquery.com/fots-driver/feedback"; |
4469 | + |
4470 | +declare namespace ann = |
4471 | + "http://www.zorba-xquery.com/annotations"; |
4472 | + |
4473 | +declare namespace fots = |
4474 | + "http://www.w3.org/2010/09/qt-fots-catalog"; |
4475 | + |
4476 | +declare namespace err = |
4477 | + "http://www.w3.org/2005/xqt-errors"; |
4478 | + |
4479 | +declare function feedback:check-pass( |
4480 | + $result as item()*, |
4481 | + $testCaseName as xs:string?, |
4482 | + $testSetName as xs:string?, |
4483 | + $expectedFailure as element(Test)? |
4484 | +) as xs:boolean { |
4485 | +(: if the exact error code was not found, report the test as 'Pass' |
4486 | + with an attribute correctError=false :) |
4487 | + let $resultTestRun as xs:boolean := |
4488 | + (empty($result) or |
4489 | + (exists($result) and |
4490 | + contains(string-join($result/fots:errors,''), "Expected error:") and |
4491 | + contains(string-join($result/fots:errors,''), "Found error:"))) |
4492 | + |
4493 | + let $expectedFailure as xs:boolean := |
4494 | + if (exists($expectedFailure)) |
4495 | + then fn:true() |
4496 | + else fn:false() |
4497 | + |
4498 | +(:if test PASSED and was expected to FAIL OR test FAILED and wasn't expected to |
4499 | + FAIL => report as FAIL, a.k.a. regression; |
4500 | + otherwise report as PASS:) |
4501 | + return ($resultTestRun eq not($expectedFailure)) |
4502 | +}; |
4503 | + |
4504 | +declare %ann:sequential function feedback:pass( |
4505 | + $case as element(fots:test-case), |
4506 | + $result as item()*, |
4507 | + $zorbaQuery as xs:string, |
4508 | + $env as element(fots:environment)?, |
4509 | + $duration as xs:dayTimeDuration, |
4510 | + $verbose as xs:boolean, |
4511 | + $expectedFailure as xs:boolean |
4512 | +) as element(fots:test-case)? { |
4513 | + if ($expectedFailure) |
4514 | + then feedback:pass-expected-FOTS-failure( $case, |
4515 | + $result, |
4516 | + $zorbaQuery, |
4517 | + $env, |
4518 | + $verbose) |
4519 | + else feedback:pass( $case, |
4520 | + $result, |
4521 | + $zorbaQuery, |
4522 | + $env, |
4523 | + $duration, |
4524 | + $verbose) |
4525 | +}; |
4526 | + |
4527 | +(:~ |
4528 | + : Feedback on a test case that failed but is marked as EXPECTED_FOTS_FAILURE. |
4529 | + : |
4530 | + : @param $case test case. |
4531 | + : @return the test case after certain information was added. |
4532 | + :) |
4533 | +declare %private %ann:sequential function feedback:pass-expected-FOTS-failure( |
4534 | + $case as element(fots:test-case), |
4535 | + $result as item()*, |
4536 | + $zorbaQuery as xs:string, |
4537 | + $env as element(fots:environment)?, |
4538 | + $verbose as xs:boolean |
4539 | +) as element(fots:test-case)? { |
4540 | + variable $info := "Test case failed but it is marked with EXPECTED_FOTS_FAILURE in test/fots/CMakeLists.txt"; |
4541 | + |
4542 | + if($verbose) |
4543 | + then { |
4544 | + let $tmp := $case |
4545 | + return { |
4546 | + insert node |
4547 | + attribute result{'pass'} |
4548 | + as last into $tmp; |
4549 | + |
4550 | + insert node |
4551 | + attribute comment{$info} |
4552 | + as last into $tmp; |
4553 | + |
4554 | + insert node |
4555 | + <fots:info> |
4556 | + {$env} |
4557 | + <fots:query>{$zorbaQuery}</fots:query> |
4558 | + {($result/fots:expected-result, |
4559 | + $result/fots:result, |
4560 | + $result/fots:errors)} |
4561 | + </fots:info> |
4562 | + as last into $tmp; |
4563 | + |
4564 | + delete node $tmp/fots:description; |
4565 | + delete node $tmp/fots:created; |
4566 | + delete node $tmp/fots:result; |
4567 | + |
4568 | + $tmp |
4569 | + } |
4570 | + } |
4571 | + else <fots:test-case name="{data($case/@name)}" |
4572 | + result="pass" |
4573 | + comment="{$info}" /> |
4574 | +}; |
4575 | +(:~ |
4576 | + : Gives feedback on a test case run with success. |
4577 | + : |
4578 | + : @param $case test case. |
4579 | + : @return the test case after certain information was added. |
4580 | + :) |
4581 | +declare %private %ann:sequential function feedback:pass( |
4582 | + $case as element(fots:test-case), |
4583 | + $result as item()*, |
4584 | + $zorbaQuery as xs:string, |
4585 | + $env as element(fots:environment)?, |
4586 | + $duration as xs:dayTimeDuration, |
4587 | + $verbose as xs:boolean |
4588 | +) as element(fots:test-case)? { |
4589 | + if($verbose) |
4590 | + then { |
4591 | + let $tmp := $case |
4592 | + return { |
4593 | + insert node |
4594 | + attribute result{'pass'} |
4595 | + as last into $tmp; |
4596 | + |
4597 | + if(exists($result/fots:errors)) then |
4598 | + insert node |
4599 | + attribute correctError{'false'} |
4600 | + as last into $tmp; |
4601 | + else (); |
4602 | + |
4603 | + if(exists($result/fots:errors)) then |
4604 | + insert node |
4605 | + attribute comment{$result/fots:errors} |
4606 | + as last into $tmp; |
4607 | + else (); |
4608 | + |
4609 | + insert node |
4610 | + attribute executionTime{$duration} |
4611 | + as last into $tmp; |
4612 | + |
4613 | + insert node |
4614 | + <fots:info> |
4615 | + {$env} |
4616 | + <fots:query>{$zorbaQuery}</fots:query> |
4617 | + {$result/descendant::*} |
4618 | + </fots:info> |
4619 | + as last into $tmp; |
4620 | + |
4621 | + delete node $tmp/description; |
4622 | + delete node $tmp/created; |
4623 | + delete node $tmp/fots:result; |
4624 | + |
4625 | + $tmp |
4626 | + } |
4627 | + } |
4628 | + else if(empty($result/fots:errors)) |
4629 | + then <fots:test-case name="{data($case/@name)}" |
4630 | + result="pass" |
4631 | + executionTime="{$duration}" /> |
4632 | + else <fots:test-case name="{data($case/@name)}" |
4633 | + result="pass" |
4634 | + correctError="{empty($result/fots:errors)}" |
4635 | + executionTime="{$duration}" /> |
4636 | +}; |
4637 | + |
4638 | +(:~ |
4639 | + : Gives feedback on a test case run without success. |
4640 | + : |
4641 | + : @param $case test case. |
4642 | + : @return the test case after certain information was added. |
4643 | + :) |
4644 | +declare %ann:sequential function feedback:fail( |
4645 | + $case as element(fots:test-case), |
4646 | + $result as item()*, |
4647 | + $zorbaQuery as xs:string, |
4648 | + $testSetName as xs:string?, |
4649 | + $env as element(fots:environment)?, |
4650 | + $duration as xs:dayTimeDuration, |
4651 | + $verbose as xs:boolean, |
4652 | + $expectedFailure as xs:boolean |
4653 | +) as element(fots:test-case)? { |
4654 | + trace($testSetName, "test set name"); |
4655 | + trace("above test case failed", "result"); |
4656 | + |
4657 | + variable $info := "Test case passed but it is marked with EXPECTED_FOTS_FAILURE in test/fots/CMakeLists.txt"; |
4658 | + |
4659 | + if ($verbose) |
4660 | + then { |
4661 | + let $tmp := $case |
4662 | + return { |
4663 | + insert node |
4664 | + attribute result{'fail'} |
4665 | + as last into $tmp; |
4666 | + |
4667 | + if ($expectedFailure) |
4668 | + then |
4669 | + insert node |
4670 | + attribute comment{$info} |
4671 | + as last into $tmp; |
4672 | + else (); |
4673 | + |
4674 | + insert node |
4675 | + <fots:info> |
4676 | + {$env} |
4677 | + <fots:query>{$zorbaQuery}</fots:query> |
4678 | + {($result/fots:expected-result, |
4679 | + $result/fots:result, |
4680 | + $result/fots:errors)} |
4681 | + </fots:info> |
4682 | + as last into $tmp; |
4683 | + |
4684 | + delete node $tmp/fots:description; |
4685 | + delete node $tmp/fots:created; |
4686 | + delete node $tmp/fots:result; |
4687 | + |
4688 | + $tmp |
4689 | + } |
4690 | + } |
4691 | + else if ($expectedFailure) |
4692 | + then <fots:test-case name="{data($case/@name)}" |
4693 | + result="fail" |
4694 | + comment="{$info}" |
4695 | + executionTime="{$duration}"/> |
4696 | + |
4697 | + else <fots:test-case name="{data($case/@name)}" |
4698 | + result="fail" |
4699 | + executionTime="{$duration}"/> |
4700 | +}; |
4701 | + |
4702 | +(:~ |
4703 | + : Gives feedback on a test case that is not run (because it Seg Faults, hangs). |
4704 | + : |
4705 | + : @param $case test case. |
4706 | + : @return the test case. |
4707 | + :) |
4708 | +declare %ann:sequential function feedback:not-run( |
4709 | + $case as element(fots:test-case), |
4710 | + $verbose as xs:boolean |
4711 | +) as element(fots:test-case)? { |
4712 | + trace(data($case/@name), "processing test case :"); |
4713 | + trace("Above test case was not run.",""); |
4714 | + |
4715 | + if($verbose) |
4716 | + then { |
4717 | + let $tmp := $case |
4718 | + return { |
4719 | + insert node |
4720 | + attribute result{'notRun'} |
4721 | + as last into $tmp; |
4722 | + |
4723 | + delete node $tmp/fots:description; |
4724 | + delete node $tmp/fots:created; |
4725 | + |
4726 | + $tmp |
4727 | + } |
4728 | + } |
4729 | + else |
4730 | + <fots:test-case name="{data($case/@name)}" |
4731 | + result="notRun" /> |
4732 | +}; |
4733 | + |
4734 | +(:~ |
4735 | + : Gives feedback on a test case that is not run when dependencies are not met. |
4736 | + : |
4737 | + : @param $case test case. |
4738 | + : @param $dependencyError test error returned by the dependency checking. |
4739 | + : @return the test case. |
4740 | + :) |
4741 | +declare %ann:sequential function feedback:not-applicable( |
4742 | + $case as element(fots:test-case), |
4743 | + $env as element(fots:environment)?, |
4744 | + $dependencyError as xs:string, |
4745 | + $verbose as xs:boolean |
4746 | +) as element(fots:test-case)? { |
4747 | + trace(data($case/@name), "processing test case :"); |
4748 | + trace($dependencyError, "Dependency error :"); |
4749 | + |
4750 | + if($verbose) |
4751 | + then { |
4752 | + let $tmp := $case |
4753 | + return { |
4754 | + insert node |
4755 | + attribute result{'not applicable'} |
4756 | + as last into $tmp; |
4757 | + |
4758 | + insert node |
4759 | + attribute comment{$dependencyError} |
4760 | + as last into $tmp; |
4761 | + |
4762 | + insert node |
4763 | + <fots:info>{$env}</fots:info> |
4764 | + as last into $tmp; |
4765 | + |
4766 | + delete node $tmp/fots:description; |
4767 | + delete node $tmp/fots:created; |
4768 | + |
4769 | + $tmp |
4770 | + } |
4771 | + } |
4772 | + else |
4773 | + <fots:test-case name="{data($case/@name)}" |
4774 | + result="not applicable" |
4775 | + comment="{$dependencyError}" /> |
4776 | +}; |
4777 | |
4778 | === added file 'test/fots_driver/fots-driver.xq' |
4779 | --- test/fots_driver/fots-driver.xq 1970-01-01 00:00:00 +0000 |
4780 | +++ test/fots_driver/fots-driver.xq 2013-01-08 14:37:31 +0000 |
4781 | @@ -0,0 +1,601 @@ |
4782 | +(: |
4783 | + : Copyright 2006-2011 The FLWOR Foundation. |
4784 | + : |
4785 | + : Licensed under the Apache License, Version 2.0 (the "License"); |
4786 | + : you may not use this file except in compliance with the License. |
4787 | + : You may obtain a copy of the License at |
4788 | + : |
4789 | + : http://www.apache.org/licenses/LICENSE-2.0 |
4790 | + : |
4791 | + : Unless required by applicable law or agreed to in writing, software |
4792 | + : distributed under the License is distributed on an "AS IS" BASIS, |
4793 | + : WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
4794 | + : See the License for the specific language governing permissions and |
4795 | + : limitations under the License. |
4796 | + :) |
4797 | + |
4798 | +(:~ |
4799 | + : Zorba FOTS driver |
4800 | + : @author Sorin Nasoi |
4801 | + :) |
4802 | + |
4803 | +module namespace driver = |
4804 | + "http://www.zorba-xquery.com/fots-driver"; |
4805 | + |
4806 | +import module namespace functx = |
4807 | + "http://www.functx.com/"; |
4808 | + |
4809 | +import module namespace xqxq = |
4810 | + "http://www.zorba-xquery.com/modules/xqxq"; |
4811 | +import module namespace datetime = |
4812 | + "http://www.zorba-xquery.com/modules/datetime"; |
4813 | + |
4814 | +import module namespace eval = |
4815 | + "http://www.zorba-xquery.com/fots-driver/evaluate" at "evaluate.xq"; |
4816 | +import module namespace feedback = |
4817 | + "http://www.zorba-xquery.com/fots-driver/feedback" at "feedback.xq"; |
4818 | +import module namespace env = |
4819 | + "http://www.zorba-xquery.com/fots-driver/environment" at "environment.xq"; |
4820 | +import module namespace util = |
4821 | + "http://www.zorba-xquery.com/fots-driver/util" at "util.xq"; |
4822 | +import module namespace fots-err = |
4823 | + "http://www.zorba-xquery.com/fots-driver/errors" at "errors.xq"; |
4824 | + |
4825 | + |
4826 | +declare namespace err = |
4827 | + "http://www.w3.org/2005/xqt-errors"; |
4828 | +declare namespace fots = |
4829 | + "http://www.w3.org/2010/09/qt-fots-catalog"; |
4830 | + |
4831 | +declare namespace ann = |
4832 | + "http://www.zorba-xquery.com/annotations"; |
4833 | + |
4834 | +(:~ |
4835 | + : Loops through the FOTS catalog and returns all available test set names. |
4836 | + : @param $fotsPath path to the FOTS catalog file. |
4837 | + : @param $testSetPrefixes name/criteria for the test sets |
4838 | + : (empty string means all). |
4839 | + : @return available FOTS test sets. |
4840 | + :) |
4841 | +declare %ann:nondeterministic function driver:list-test-sets( |
4842 | + $fotsPath as xs:string, |
4843 | + $testSetPrefixes as xs:string* |
4844 | +) as xs:string* { |
4845 | + let $doc := doc(resolve-uri($fotsPath)) |
4846 | + return |
4847 | + if(string-join($testSetPrefixes,'') = '') |
4848 | + then |
4849 | + for $testSet in $doc/fots:catalog/fots:test-set |
4850 | + return data($testSet/@name) |
4851 | + else |
4852 | + for $prefix in $testSetPrefixes |
4853 | + for $testSet in $doc/fots:catalog/fots:test-set[starts-with(@name, $prefix)] |
4854 | + return data($testSet/@name) |
4855 | +}; |
4856 | + |
4857 | +declare %private function driver:matches-dependency( |
4858 | + $dependencies as element(fots:dependency)*, |
4859 | + $filter as xs:string |
4860 | +) as xs:boolean { |
4861 | + let $filter := tokenize($filter, '_') |
4862 | + let $depValue := $filter[1] |
4863 | + let $depSatisfied as xs:string := if(exists($filter[2]) and |
4864 | + ($filter[2] = 'true' or $filter[2]='false')) |
4865 | + then $filter[2] |
4866 | + else 'true' |
4867 | + return |
4868 | + if(xs:boolean($depSatisfied)) |
4869 | + |
4870 | + (: $depSatisfied = 'true' :) |
4871 | + then (exists($dependencies[@value = $depValue and |
4872 | + @satisfied = $depSatisfied]) or |
4873 | + exists($dependencies[@value = $depValue and empty(@satisfied)])) |
4874 | + |
4875 | + (: $depSatisfied = 'false' :) |
4876 | + else exists($dependencies[@value = $depValue and |
4877 | + @satisfied = $depSatisfied]) |
4878 | +}; |
4879 | + |
4880 | +declare %private function driver:list-assertions( |
4881 | + $case as element(fots:test-case) |
4882 | +) as xs:string* { |
4883 | + distinct-values(for $assert in $case/fots:result/descendant-or-self::* |
4884 | + return local-name-from-QName(node-name($assert))) |
4885 | +}; |
4886 | + |
4887 | +(:~ |
4888 | + : Loops through the given test set and returns the test cases that have the |
4889 | + : given dependencies defined. |
4890 | + : @param $testSet test set document. |
4891 | + : @param $dependency defined dependency |
4892 | + : (empty string means all test cases). |
4893 | + : @param $assert lists of tests that contain a certain assert-type(empty |
4894 | + : string means all tests). |
4895 | + : @return matching test case names. |
4896 | + :) |
4897 | +declare %private function driver:list-test-cases( |
4898 | + $testSetDoc as document-node(), |
4899 | + $dependency as xs:string*, |
4900 | + $assert as xs:string* |
4901 | +) as xs:string* { |
4902 | + if(string-join($dependency,'') = '') |
4903 | + then $testSetDoc//fots:test-case/@name |
4904 | + else for $testCase in $testSetDoc//fots:test-case |
4905 | + let $matchDep := driver:matches-dependency(($testSetDoc/fots:test-set/fots:dependency, |
4906 | + $testCase/fots:dependency), |
4907 | + $dependency) |
4908 | + let $matchAssert := (($assert = '') or |
4909 | + exists(functx:value-intersect( |
4910 | + driver:list-assertions($testCase), |
4911 | + $assert))) |
4912 | + where ($matchDep and $matchAssert) |
4913 | + return $testCase/@name |
4914 | + |
4915 | +}; |
4916 | + |
4917 | +(:~ |
4918 | + : Loops through the given test sets and returns the corresponding test cases. |
4919 | + : @param $fotsPath path to the FOTS catalog file. |
4920 | + : @param $testSetPrefixes name/criteria for the test sets |
4921 | + : (empty string means all test cases). |
4922 | + : @param $dependency type of dependency that has to be met |
4923 | + : (empty string means all test cases). |
4924 | + : @param $assert lists of tests that contain a certain assert-type(empty |
4925 | + : string means all tests). |
4926 | + : @return available FOTS test cases. |
4927 | + :) |
4928 | +declare %ann:nondeterministic function driver:list-test-cases( |
4929 | + $fotsPath as xs:string, |
4930 | + $testSetPrefixes as xs:string*, |
4931 | + $dependency as xs:string*, |
4932 | + $assert as xs:string* |
4933 | +) as xs:string* { |
4934 | + let $doc := doc(resolve-uri($fotsPath)), |
4935 | + $baseUri:= resolve-uri(util:parent-folder($fotsPath)) |
4936 | + return |
4937 | + if(string-join($testSetPrefixes,'') = '') |
4938 | + then |
4939 | + for $testSet in $doc/fots:catalog/fots:test-set |
4940 | + let $testSetDoc := doc(resolve-uri($testSet/@file, $baseUri)) |
4941 | + return driver:list-test-cases($testSetDoc, $dependency, $assert) |
4942 | + else |
4943 | + for $prefix in $testSetPrefixes |
4944 | + for $testSet in $doc/fots:catalog/fots:test-set[starts-with(@name, $prefix)] |
4945 | + let $testSetDoc := doc(resolve-uri($testSet/@file, $baseUri)) |
4946 | + return driver:list-test-cases($testSetDoc, $dependency, $assert) |
4947 | +}; |
4948 | + |
4949 | +(:~ |
4950 | + : Loops through the given test sets and returns the corresponding test cases. |
4951 | + : @param $fotsPath path to the FOTS catalog file. |
4952 | + : @param $testSetPrefixes name/criteria for the test sets |
4953 | + : (empty string means all test cases). |
4954 | + : @param $testCasePrefixes name/criteria for the test cases |
4955 | + : (empty string means all test cases). |
4956 | + : @param $dependency type of dependency that has to be met |
4957 | + : (empty string means all test cases). |
4958 | + : @param $assert lists of tests that contain a certain assert-type(empty |
4959 | + : string means all tests). |
4960 | + : @return available FOTS test cases. |
4961 | + :) |
4962 | +declare %ann:nondeterministic function driver:list-test-cases( |
4963 | + $fotsPath as xs:string, |
4964 | + $testSetPrefixes as xs:string*, |
4965 | + $testCasePrefixes as xs:string*, |
4966 | + $dependency as xs:string*, |
4967 | + $assert as xs:string* |
4968 | +) as xs:string* { |
4969 | + let $doc := doc(resolve-uri($fotsPath)), |
4970 | + $baseUri:= resolve-uri(util:parent-folder($fotsPath)), |
4971 | + $testCaseNames := driver:list-test-cases($fotsPath, |
4972 | + $testSetPrefixes, |
4973 | + $dependency, |
4974 | + $assert) |
4975 | + return |
4976 | + for $prefix in $testCasePrefixes |
4977 | + return |
4978 | + for $name in $testCaseNames |
4979 | + where starts-with($name, |
4980 | + $prefix) |
4981 | + return $name |
4982 | +}; |
4983 | + |
4984 | +(:~ |
4985 | + : Loops through all the test cases and returns those that have a 'test' node |
4986 | + : that matches given pattern using given flags. |
4987 | + : @param $fotsPath path to the FOTS catalog file. |
4988 | + : @param $pattern pattern. |
4989 | + : @param $flags flags. |
4990 | + : @return available FOTS test cases matching given pattern and flags. |
4991 | + :) |
4992 | +declare %ann:nondeterministic function driver:list-matching-test-cases( |
4993 | + $fotsPath as xs:string, |
4994 | + $pattern as xs:string, |
4995 | + $flags as xs:string? |
4996 | +) as xs:string* { |
4997 | + let $doc := doc(resolve-uri($fotsPath)), |
4998 | + $baseUri:= resolve-uri(util:parent-folder($fotsPath)) |
4999 | + return |
5000 | + for $testSet in $doc/fots:catalog/fots:test-set |
Sorin: Take a look at test/fots/ README. TXT for an explanation of the integration I've done. Please try it out and let me know if you have problems.
I don't think this is ready for merge yet since there is no integration with EXPECTED_FAILURE() or anything like it, which is why I haven't voted on it myself.
A couple questions:
1. Can the result="" attribute of a <test-case> in FOTS driver output have values other than "pass" or "fail"? Currently I am determining whether a CTest test passes based on this output.
2. Would it be useful (for developers) to also allow CTest tests based on FOTS dependencies? If so, is it possible to use cli.xq to get a list of tests for a dependency, and to execute all tests for a dependency?