You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

This page is draft materials for an eventual OGF Experience Document describing interoperability testing with IBM DFDL.

Not everything here will make it into the final report. Some things will be too minor to note.

Public DFDL Schemas

These schemas are published, and are interoperable:

  • NACHA
  • ISO8583
  • QuasiXML
  • GeoNames

The following schemas are published, are intended to be portable/interoperable, but do not yet work across implementations due to DAFFODIL features/bugs

  • IBM4690TLOG
  • EDIFACT

The following schemas are published, but need minor adjustments for portability, including possibly documentation edits on the DFDLSchemas web site materials.

The following schemas are published, but make use of features available in only Daffodil, and so are not expected to interoperate:

  • PNG
  • PCAP
  • mil-std-2045
  • BMP
  • GIF
  • NITF
  • JPEG
  • shapeFile

The following schemas are listed on DFDLSchemas, but are available only under license from IBM, and are not candidates for interoperability testing:

  • HIPAA-5010
  • HL7-v2.7 (note: an earlier no-longer-published revision may be available for testing)
  • SWIFT-MT

Non-Public DFDL Schemas

These schemas are available only to those with access to DI2E.net or Forge.mil; however, as that is a substantial community of users, we also document interoperability for these schemas here:

Unknown/To-be-Evaluated

These schemas should be able to be portable, but have not yet been evaluated.

  • agnosc_remedy
  • army_drrs
  • common_event_format
  • uscg_ucop
  • USMTF

Portable (works on Daffodil and IBM DFDL)

  • TBD

Expected Non-Portable - works only on Daffodil due to use of Daffodil-specific features

  • VMF
  • GMTIF

Eventually Public - These schemas are restricted access pending permission to make public. Their status w.r.t., portability is unknown:

  • iCalendar
  • IMF
  • IPFIX

Test Suites

Test Suite 'daffodil-test-ibm1'

This test suite is part of the Daffodil source tree, but can be run against IBM DFDL using a cross tester.

Daffodil tests that fail on IBM DFDL, but NOT due to interoperability concerns:

These Daffodil tests fail on IBM_DFDL, but should not. They fail because of DAFFODIL-2026 - a limitation in Daffodil's TDML Tester

  • test_simple_type_properties_text_calendar_13_03
  • test_simple_type_properties_text_calendar_13_04
  • test_simple_type_properties_bin_calendar_13_01
  • test_simple_type_properties_bin_calendar_13_02
  • test_simple_type_properties_text_calendar_13_01
  • test_alignment_bytes_12_05

Incompatibilities

These tests fail for lack of support of identical separator and terminator in IBM DFDL. All these are the same issue. This issue is considered minor, and is not a barrier to interoperability in practical schemas.

  • test_length_delimited_12_01
  • test_length_delimited_12_04
  • test_multiple_delimiters
  • test_length_delimited_12_02
  • test_length_delimited_12_03
  • test_nested_separator_delimited_baseline_ibm

Needs Further Investigation

Currently (2018-12-10) These tests fail on IBM DFDL with a NPE during schema compilation. No trace output is produced  - Need study to determine cause. The origin of these tests was the very earliest part of the Daffodil project at Univ. of Illinois NCSA.

  • test_AF000, test_AF001, test_AF002
  • test_AW000, test_AW001
  • test_AX000
  • test_AY000
  • test_AZ000

Daffodil Test Suite 'daffodil-test'

This is a larger test suite.

Of 3172 tests, 1866 are skipped either because they are negative tests (which are not being evaluated because diagnostic messages vary so widely), or because they use DFDL features known not to be implemented by IBM DFDL such as dfdl:inputValueCalc and dfdl:outputValueCalc, or hidden groups.

That leaves 1306 tests.

202 tests pass as of 2018-12-10. 

1104 fail as of 2018-12-10

Common Test Failures To Be Resolved

The vast bulk of the failures can be explained by a small number of structural problems with the test suite or test infrastructure:

  • daf:error - function obviously not supported by IBM DFDL.
  • Many daffodil tests put constructs on global elements that are not allowed on global elements by DFDL.
  • Many tests have namespace errors - root elements of infosets are not in the proper namespace.  (commonly this is the ex or http://example.com namespace)
  • Missing properties (textBooleanTrueRep/FalseRep being undefined is one)
  • Mixing of invalid schema errors in the same test suites with other tests.
    • Different defineSchema inside a TDML file are not being isolated - compile errors in one stop all tests in that TDML file from compiling.
    • This is a TDML Runner issue.
  • Incorrect property syntax: extraEscapedCharacter="%#WSP*; ..." for example
  • Missing properties: textBidi, textPadKind, textTrimKind, escapeSchemeRef, documentFinalTerminatorCanBeMissing, and many others are missing from  test environments.

Incompatibilities

  • test_timeFunctions01 - IBM DFDL does not support dfdl:calendarTimeZone="" (empty string, meaning 'no time zone')
    • This is problematic because the default format most tests use has this property defined this way.
    • TBD: Perhaps tests should choose from the normal daffodil default formats, and one designed for compatibility??
  • dfdl:calendarPattern contains more than 3 "S" symbols. (Should be a warning? - possible bug in cross-test rig)
  • separator and escapeCharacter cannot include the same value - this is tolerated by Daffodil. (Allows a delimiter to be escaped by doubling it.)

Incompatibilities Which May be Daffodil Bugs

  • When type is long, int, short or byte, DFDL property 'binaryNumberRep' must not be 'bcd' as this cannot have a negative value. (testBCDCharset01)
    • IBM DFDL insists on signed types not being BCD since it has no way to represent negative values.
  • Daffodil tolerates not having emptyValueDelimiterPolicy set, if it can show there is no concept of "empty" for the definition. This is not portable because the rules in DFDL are simpler than this. The property simply is required if terminator is defined. (or initiator), regardless of whether there is any notion of empty for a type.
  • truncateSpecifiedLengthString - missing
  • trailingSkip - missing
  • alignment - missing



  • No labels