Project

Profile

Help

Support #5665

closed

Xslt30TestSuiteDriverHE for Saxon 11 HE seems to consider higher-order functions as unavailable

Added by Martin Honnen over 1 year ago. Updated over 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Test Driver
Sprint/Milestone:
Start date:
2022-08-27
Due date:
% Done:

0%

Estimated time:
Legacy ID:
Applies to branch:
11
Fix Committed on Branch:
11
Fixed in Maintenance Release:
Platforms:
Java

Description

I have been looking into the test driver, both online at https://saxonica.plan.io/projects/saxonmirrorhe/repository/he/revisions/he_mirror_saxon_11_4/entry/src/main/java/net/sf/saxon/testdriver/Xslt30TestSuiteDriverHE.java#L141 and in the resources zip, I wonder why those lines say

   public boolean unavailableInXX(String type, String value) {
        if (type.equals("feature") && value.equals("higher_order_functions")) {
            return true;
        }

given that HE 10 and 11 support higher-order functions.

Has the test driver for HE not been updated for HE 10 and 11 or is that check needed for some other restriction?

Actions #1

Updated by Michael Kay over 1 year ago

I think this is dead code. The method unavailableInXX is used only when the -XX option to the test driver is used, and this option dates from when we had a version of the XX compiler that could be invoked from Java (with the Javascript parts, that is, the XPath parser) running under Nashorn. It also reflects the fact that at that time, SaxonJS didn't support higher-order functions.

We should probably get rid of this code now, because I doubt we will ever reinstate the ability to run the XX compiler from Java.

But it's true that the HE test driver isn't running HOF tests. This is because Xslt30TestDriverHE at line 1242 has

needsEE.add("feature/higher_order_functions");

which is wrong and should be deleted.

I can confirm that if we change this, the tests run and (for those I've tested) they all pass.

QT3TestDriverHE has the same problem: lines 282-3 read

           } else if ("higherOrderFunctions".equals(value)) {
                return (edition.equals("PE") || edition.equals("EE")) ^ inverse;

which needs to change to:

            } else if ("higherOrderFunctions".equals(value)) {
                return !inverse;
Actions #2

Updated by Michael Kay over 1 year ago

  • Status changed from New to In Progress
  • Assignee set to Michael Kay
  • Fix Committed on Branch 11 added

I have fixed the test drivers so the HE drivers now run the HOF tests (also, 1.0 backwards compatibility tests).

Under 11.x, this is giving 0 test failures for QT3, 5 test failures for XSLT 3.

  docbook-001 - reports "Can't make chunks with Saxonica's processor"

  error-3175a - error not reported

  mode-1506 - reports "SXST0068  Request for streaming ignored: this Saxon configuration does not support streaming"

  sort-079 - incorrect handling of ignorable characters in collation

  system-property-014b : expected result out="no", actual result out="4yes"
Actions #3

Updated by Michael Kay over 1 year ago

Fixed error-3175a with a change to the way the test driver handles the dynamic_evaluation dependency.

The same change also fixes system-property-014b.

Actions #4

Updated by Michael Kay over 1 year ago

Fixed mode-1506 by adding a dependency on streaming to the test metadata.

Actions #5

Updated by Michael Kay over 1 year ago

Current status is that we're getting three failures:

  • docbook-001
  • sort-079
  • unparsed-text-2002

I think the failure in unparsed-text-2002 is unrelated to this issue, and occurs because of recent changes to the W3C web site.

Actions #6

Updated by Michael Kay over 1 year ago

  • Status changed from In Progress to Closed

I think we can now close this.

Please register to edit this issue

Also available in: Atom PDF