Bug #5093
closedAssertionError during trace code injection
100%
Description
Certain instructions require operands of a specific expression type. Injecting trace code around such an operand can cause an AssertionError. An example is test case -s:iterate -t:iterate-033, when run with the -T option.
The solution is to change ExpressionTool.injectCode()
to refrain from injecting an expression if the operand has the property isConstrainedClass()
.
Updated by Michael Kay over 2 years ago
With this change, the XSLT3 tests run to completion with the -T option set, but on the 11 branch I'm seeing 76 test failures:
accept : 16
arrays : 1
on-empty : 37
override : 1
regex : 1
seqtor : 1
si-LRE : 2
si-assert : 1
si-for-each-group : 7
source-document : 2
streamable : 2
su-absorbing : 3
use-package : 2
Some of these, such as on-empty are fairly predictable - injecting trace expressions can change the semantics,
These are probably old problems, I think it's some time since we ran all the tests with the -T option.
Updated by Michael Kay over 2 years ago
Similar results running the tests with -T on the 10.x branch:
Failures by Test Set:
accept : 16
arrays : 1
on-empty : 37
override : 4
regex : 1
seqtor : 1
si-LRE : 2
si-assert : 1
si-for-each-group : 7
source-document : 2
streamable : 2
su-absorbing : 3
use-package : 1
Finished in 111s
Result: 11584 successes, 78 failures, 37 incorrect ErrorCode, 2947 not run
Updated by Michael Kay over 2 years ago
- Status changed from New to Resolved
- Applies to branch 10, trunk added
- Fix Committed on Branch 10, trunk added
Fix applied to ExpressionTool. It fixes the iterate-013 test that was crashing, but not the others reported in comment #3 that generated test failures.
Updated by O'Neil Delpratt over 2 years ago
- Status changed from Resolved to Closed
- % Done changed from 0 to 100
- Fixed in Maintenance Release 10.6 added
Bug fix applied in the Saxon 10.6 maintenance release
Please register to edit this issue